Claude-Skills form-cro

install
source · Clone the upstream repo
git clone https://github.com/borghei/Claude-Skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/borghei/Claude-Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/business-growth/form-cro" ~/.claude/skills/borghei-claude-skills-form-cro && rm -rf "$T"
manifest: business-growth/form-cro/SKILL.md
source content

Form CRO

Production-grade form optimization framework covering field-cost analysis, layout engineering, multi-step form architecture, validation UX patterns, mobile-specific optimization, and structured A/B test design. Applicable to lead capture, contact, demo request, application, survey, and checkout forms. For signup/registration flows, use signup-flow-cro.


Table of Contents


Initial Assessment

Required Context

QuestionWhy It Matters
What type of form? (lead capture, contact, demo, application, checkout)Different types have different optimal field counts
How many fields currently?Establishes baseline friction level
What is the current completion rate?Benchmark for improvement
Where do users abandon? (if field-level analytics exist)Identifies the specific friction point
Mobile vs desktop split?Mobile forms need separate optimization
What happens with submitted data?Determines which fields are truly necessary
Which fields are actually used in follow-up?Often reveals 30-50% of fields are never used
Any compliance requirements? (GDPR, HIPAA)Constrains what can be removed

Field-Cost Analysis Framework

Every field has a cost measured in abandonment. The question is not "what data would be nice to have" but "what data is worth the conversion loss."

Field Cost Matrix

Field TypeEstimated Abandonment CostJustification Threshold
EmailBaseline (near zero for gated content)Always justified for lead forms
First name+2-3% dropJustified if personalization drives follow-up
Last name+2-3% dropRarely justified for first touch
Phone number+5-10% dropOnly if sales will call within 24 hours
Company name+3-5% dropJustified for B2B qualification
Company size+3-5% dropJustified only if routing decisions depend on it
Job title+3-5% dropCan often be enriched post-submission
Industry+2-3% dropCan often be enriched post-submission
Message/textarea+5-8% dropJustified for contact forms, not for lead capture
Budget+8-12% dropOnly justified for high-intent demo/sales forms
Custom question+3-5% per questionMust directly affect lead routing or qualification

The Enrichment Test

Before including any field, ask: Can this be enriched after submission?

FieldEnrichable?MethodKeep in Form?
Company nameYes (from email domain)Clearbit, Apollo, manual lookupRemove
Company sizeYes (from company name)Enrichment APIRemove
IndustryYes (from company name)Enrichment APIRemove
Job titlePartially (from LinkedIn)Manual enrichmentRemove unless critical for routing
Phone numberNoMust be providedKeep only if sales calls immediately
BudgetNoMust be statedKeep only for high-intent forms

Recommended Field Sets by Form Type

Form TypeMinimum FieldsOptimal FieldsMaximum Fields
Newsletter signupEmailEmailEmail + First name
Content downloadEmailEmail + First nameEmail + Name + Company
Contact formEmail + MessageEmail + Name + MessageEmail + Name + Subject + Message
Demo requestEmail + CompanyEmail + Name + Company + Role+ Phone + Use case + Team size
Application formVaries by requirement--All required fields (justified individually)

Multi-Step vs Single-Step Decision

Decision Criteria

FactorSingle-StepMulti-Step
Total fields< 5 fields> 5 fields
Field complexitySimple text inputsMix of dropdowns, checkboxes, conditional fields
User motivationLow-commitment (newsletter, content)High-commitment (demo, application)
Qualification needNo routing neededDifferent paths based on answers
Mobile proportion< 30% mobile> 50% mobile

Multi-Step Best Practices

Step structure:

  • Step 1: Easiest fields (email, name) -- lowest friction to start
  • Step 2: Qualifying information (company, role, use case)
  • Step 3: Specific details (budget, timeline, message)

Progress indication:

  • Show progress bar with step count ("Step 2 of 3")
  • Show completion percentage
  • Label each step with what it covers ("Your Details", "Company Info", "Project Details")

Psychological commitment:

  • Once a user completes Step 1, they are 40-60% more likely to complete the form (sunk cost effect)
  • Capture the email in Step 1 so you can follow up even if they abandon later

Back navigation:

  • Always allow users to go back to previous steps
  • Preserve entered data when navigating between steps
  • Never reset the form on back navigation

Field Design Patterns

Field Labels

PatternWhen to UseExample
Above-field labelsDefault for most formsLabel sits above the input
Inline labels (floating)Space-constrained layoutsLabel moves from inside to above on focus
Left-aligned labelsWide desktop formsLabel to the left of field
Placeholder-only labelsNeverDisappears on input, accessibility failure

Field Types

Data NeededBest Input TypeAvoid
Email
type="email"
with validation
Plain text input
Phone
type="tel"
with format mask
Plain text input
CountrySearchable dropdownLong static dropdown
Company sizeButton group (1-10, 11-50, 51-200, 200+)Free text input
Interest/topicCheckbox group (max 6 options)Multi-select dropdown
MessageTextarea (3-4 rows visible)Single-line text input
DateNative date pickerThree separate dropdowns

Conditional Fields

Show additional fields based on earlier answers. This reduces visible complexity while capturing necessary data.

Example: "What is your primary goal?" dropdown shows "Budget range" only if they select "Ready to buy" or "Evaluating solutions."

Rules:

  • Conditional fields appear with smooth animation (not instant jump)
  • Only 1-2 conditional fields per trigger
  • Conditional fields are never required (the trigger answer may change)

Validation UX

Real-Time vs Submit-Time Validation

Validation TypeWhen to Use
Real-time (on blur)Email format, phone format, required fields
On submitComplex validation, server-side checks
Inline suggestionsCompany name auto-complete, address lookup

Error Message Design

PatternGoodBad
PositionBelow the field, in contextTop of form, disconnected
Tone"Please enter a valid email address""Error: Invalid input"
Specificity"Phone must include area code""Invalid phone number"
ColorRed text + red border on fieldRed banner at top of page
IconError icon next to messageNo visual indicator

Success Indicators

  • Green checkmark on valid fields (especially email and phone)
  • Positive microcopy: "Looks good!" on valid email
  • Do NOT flash green/red on every keystroke -- validate on blur (when user leaves the field)

CTA and Submit Button Optimization

Button Copy Framework

Form TypeWeak CopyStrong CopyStrongest Copy
Content downloadSubmitDownload GuideGet My Free Guide
Demo requestSubmitRequest DemoSchedule My Demo
Contact formSendSend MessageGet in Touch
NewsletterSubscribeJoin NewsletterGet Weekly Tips
Free trialSign UpStart Free TrialStart Building Free

Rules:

  • Use first person ("Get My..." not "Get Your...")
  • Specify what they get, not what they do
  • Include "Free" when applicable
  • Keep under 5 words

Button Design

ElementBest Practice
ColorHigh contrast against form background, consistent with brand CTA color
SizeFull-width on mobile, min 44px height for touch targets
PositionImmediately below last field, no gap
Loading stateShow spinner + "Sending..." to prevent double-submit
Disabled stateDisabled until required fields are valid (with clear visual distinction)

Mobile Form Optimization

Mobile-Specific Rules

RuleImplementation
Touch targetsMinimum 44x44px for all interactive elements
Keyboard types
type="email"
for email,
type="tel"
for phone,
type="number"
for numeric
Auto-focusFocus first field on page load (with keyboard open)
Sticky submitPin submit button to bottom of viewport on long forms
Input spacingMinimum 8px between fields to prevent mis-taps
Dropdown alternativesUse button groups or radio buttons instead of dropdowns on mobile
Auto-fillSupport browser auto-fill for standard fields (name, email, phone, address)

Mobile vs Desktop Form Differences

AspectDesktopMobile
Layout1 or 2 columnsAlways 1 column
Field countUp to 8Max 5 per step
DropdownStandard dropdownBottom sheet or full-screen picker
Help textHover tooltipsAlways-visible inline text
ValidationOn blurOn blur + on submit summary

Trust and Context Elements

Trust Signals Near Forms

SignalPlacementImpact
Privacy assuranceBelow submit button"We'll never share your email"
Security badgesNext to form containerSSL, SOC2, GDPR compliance
TestimonialAdjacent to formSocial proof reduces hesitation
Response timeBelow submit button"We respond within 2 hours"
Subscriber/user countAbove or within form"Join 10,000+ subscribers"

Context Reinforcement

ElementPurposeExample
Form headerRemind what they get"Get your free SEO audit report"
Bullet list above formReinforce value"You'll get: Full site analysis, Priority fix list, 30-min review call"
Expected next stepSet expectations"After submitting, we'll email your report within 24 hours"

Form Type Playbooks

Lead Capture (Gated Content)

Goal: Maximize completions while capturing qualified leads.

  • Fields: Email only (or Email + First name maximum)
  • CTA: Value-specific ("Get My Report", "Download Checklist")
  • Trust: "No spam, unsubscribe anytime"
  • Post-submit: Immediate download + thank you page + follow-up email

Demo Request

Goal: Capture qualified prospects ready for sales conversation.

  • Fields: Email + Name + Company (+ Phone and Team size optional)
  • CTA: "Schedule My Demo"
  • Trust: "30-minute call, no commitment"
  • Post-submit: Calendar booking page or confirmation with scheduling link
  • Consider: Embedded calendar (Calendly/Cal.com) instead of form

Contact Form

Goal: Enable communication while routing to correct team.

  • Fields: Email + Name + Subject dropdown + Message
  • CTA: "Send Message"
  • Trust: "We respond within [X] hours"
  • Post-submit: Confirmation with expected response time
  • Consider: Adding department/topic routing dropdown

Quote Request

Goal: Capture enough detail for accurate quoting.

  • Fields: Multi-step form with project details
  • CTA: "Get My Quote"
  • Trust: "Free quote, no obligation"
  • Post-submit: Quote delivery timeline + human follow-up

A/B Test Framework

High-Impact Tests (Run First)

TestHypothesisSuccess Metric
Remove phone fieldRemoving phone increases completion by 5-10%Completion rate
Single-step to multi-stepMulti-step increases completion for 6+ field formsCompletion rate + submission quality
CTA copy changeValue-specific copy increases clicks by 10-20%Click-through rate
Add social proofTestimonial near form increases trustCompletion rate

Medium-Impact Tests

TestHypothesisSuccess Metric
Field order changeEasiest fields first increases step-1 completionStep completion rates
Inline validationReal-time feedback reduces form errorsError rate + completion rate
Add progress barVisual progress on multi-step increases completionCompletion rate
Embedded calendar vs formCalendar reduces friction for demo requestsBooking rate

Measurement Rules

  • Run each test for minimum 2 weeks or 200 conversions per variant (whichever is longer)
  • Track both quantity (completion rate) and quality (lead score, SQL rate)
  • A test that increases completions but decreases lead quality is not a win

Metrics and Measurement

Key Metrics

MetricFormulaBenchmark
Form completion rateSubmissions / Form views20-40% for lead forms, 5-15% for long forms
Field-level drop-offAbandonment per fieldIdentify the highest-drop field
Time to completeAvg seconds from first interaction to submit< 60s for simple forms, < 3min for complex
Error rateUsers who see error / total users< 10%
Mobile completion rateMobile submissions / Mobile form viewsShould be within 20% of desktop rate

Instrumentation Requirements

Track these events in your analytics:

  • Form view (impression)
  • Form interaction (first field focus)
  • Per-field completion (on blur, per field)
  • Form submission attempt
  • Form submission success
  • Form validation error (per field)

Output Artifacts

ArtifactFormatDescription
Form Audit ReportIssue/Impact/Fix/Priority tablePer-field analysis with estimated abandonment cost
Recommended Field SetJustified listRequired vs optional vs enrichable fields with rationale
Field Layout SpecificationAnnotated outlineOrder, grouping, label style, validation rules, mobile adaptations
CTA Copy Options3-option tableButton text variants with reasoning and expected impact
A/B Test PlanPrioritized tableTop 5 tests with hypothesis, variant, metric, and priority
Mobile Optimization ChecklistCheckbox listMobile-specific fixes with implementation notes

Related Skills

  • signup-flow-cro -- Use when the form is an account creation or trial registration flow. Form-cro is for lead capture, contact, and demo forms.
  • popup-cro -- Use when the form lives inside a modal or popup. Form-cro handles the form itself; popup-cro handles the trigger, timing, and container.
  • page-cro -- Use when the page surrounding the form needs optimization (headline, value prop, layout).
  • onboarding-cro -- Use when post-form-submission activation is the bottleneck, not the form itself.

Tool Reference

1. form_scorer.py

Purpose: Score a form against CRO best practices across field count, field types, CTA quality, mobile readiness, and trust signals.

python scripts/form_scorer.py form_config.json
python scripts/form_scorer.py form_config.json --json
FlagRequiredDescription
form_config.json
YesJSON file with form fields, CTA, and context metadata
--json
NoOutput results as JSON

2. field_cost_analyzer.py

Purpose: Calculate the estimated abandonment cost of each form field and recommend fields to remove, keep, or make enrichable.

python scripts/field_cost_analyzer.py form_fields.json
python scripts/field_cost_analyzer.py form_fields.json --json
FlagRequiredDescription
form_fields.json
YesJSON file with form fields and their types
--json
NoOutput results as JSON
--monthly-visitors
NoMonthly form visitors for dollar impact estimate (default: 1000)
--current-rate
NoCurrent form completion rate as percentage (default: 25)
--value-per-lead
NoDollar value per lead for ROI calculation (default: 50)

3. ab_test_calculator.py

Purpose: Calculate A/B test sample size, duration, and statistical significance for form optimization experiments.

python scripts/ab_test_calculator.py --baseline 25 --lift 10 --traffic 500
python scripts/ab_test_calculator.py --baseline 25 --lift 10 --traffic 500 --json
FlagRequiredDescription
--baseline
YesCurrent conversion rate as percentage (e.g., 25 for 25%)
--lift
YesMinimum detectable lift as percentage (e.g., 10 for 10% relative lift)
--traffic
YesDaily traffic (visitors per day to the form)
--confidence
NoConfidence level as percentage (default: 95)
--json
NoOutput results as JSON

Troubleshooting

ProblemLikely CauseSolution
Form completion rate below 15%Too many fields or high-friction fields presentRun field_cost_analyzer.py to identify and remove high-cost fields; target email-only for first-touch lead forms
Mobile completion rate 50%+ lower than desktopForm not optimized for touch inputEnsure 44px touch targets, single-column layout, native keyboard types; replace dropdowns with button groups on mobile
Users start but do not finish the formFriction in middle fields (phone, budget, message)Move high-friction fields to later steps in a multi-step form; capture email in step 1
High error rate on email or phone fieldsValidation too aggressive or unclear error messagesValidate on blur (not keystroke); use specific error copy ("Please include @ in email") not generic ("Invalid input")
A/B test results are inconclusive after 4 weeksInsufficient sample size or too small a lift targetUse ab_test_calculator.py to confirm required sample size; consider testing bigger changes (field removal vs copy tweak)
CTA clicks are low despite good page trafficCTA copy is generic or button is not prominent enoughReplace "Submit" with value-specific copy ("Get My Report"); ensure CTA is full-width on mobile, high-contrast color

Success Criteria

  • Form completion rate above 25% for lead capture forms (above 35% is excellent)
  • Mobile completion rate within 20% of desktop rate
  • Error rate below 10% of form interactions
  • Field-level drop-off identifies specific friction points with clear remediation
  • Each form field has documented justification (business need or enrichable post-submission)
  • A/B tests run for minimum 200 conversions per variant before declaring winner
  • Post-form-submission follow-up occurs within 24 hours for demo and contact forms

Scope & Limitations

  • In scope: Form field optimization, CTA copy, validation UX, mobile optimization, trust signal placement, A/B test design, field cost analysis
  • Out of scope: Page-level CRO (use page-cro), popup trigger optimization (use popup-cro), signup/registration flows (use signup-flow-cro), post-submission nurture sequences
  • Data dependency: Field-level analytics (per-field drop-off) provide the most actionable data but require analytics instrumentation
  • Compliance constraint: GDPR/HIPAA may require specific fields that cannot be removed; document compliance requirements before optimizing
  • Statistical validity: A/B test recommendations require sufficient traffic volume; low-traffic forms may need longer test durations or alternative evaluation methods

Integration Points

  • page-cro -- When the form converts well but the surrounding page does not drive form interactions, optimize the page-level elements first
  • popup-cro -- When the form is inside a popup or modal, trigger timing and container design are handled by popup-cro
  • signup-flow-cro -- For account creation and registration forms (not lead capture), use signup-flow-cro which handles multi-step auth flows
  • onboarding-cro -- When post-form-submission activation is the bottleneck, not the form completion rate itself
  • free-tool-strategy -- Free tools often include lead capture forms; use form-cro to optimize the capture form within the tool