Skip to content
Back to skills

Checkout Audit

ASecurity

Audit an ecommerce checkout flow against the 2026 conversion playbook. Average cart abandonment is 70.22% (Baymard 2026 meta-analysis); the top causes are unexpected shipping costs (48%), forced account creation (24%), complicated forms (18%), and security concerns (17%). The audit measures: step count + page count, express-checkout availability + above-fold positioning (Apple Pay +22.3% conversion, Shop Pay +50% returning, Google Pay), guest checkout, address autofill (Google Places, Stripe ...

  • 15 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-airustgoreactexpressgitapibackendsecurity

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add tinh2/skills-hub-registry --skill checkout-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Checkout Audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Checkout Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tinh2-checkout-audit/badge)](https://www.skillsdirectory.com/skills/tinh2-checkout-audit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: checkout-audit
description: Audit an ecommerce checkout flow against the 2026 conversion playbook. Average cart abandonment is 70.22% (Baymard 2026 meta-analysis); the top causes are unexpected shipping costs (48%), forced account creation (24%), complicated forms (18%), and security concerns (17%). The audit measures: step count + page count, express-checkout availability + above-fold positioning (Apple Pay +22.3% conversion, Shop Pay +50% returning, Google Pay), guest checkout, address autofill (Google Places, Stripe Address Element), payment-method coverage (cards, ACH, BNPL, digital wallets, regional methods), form-field count (every field reduces conversion ~7%), shipping-cost transparency, account-creation timing (offer AFTER purchase, not as gate), error UX, mobile-vs-desktop drop-off symmetry, accessibility, PCI scope, and HOLD payment friction (Apple Pay, Google Pay, Shop Pay = 4 clicks vs 120 clicks traditional). Outputs prioritized P0-P3 fixes with expected lift per Baymard 2026 + Stripe data. TRIGGER on "checkout audit", "checkout optimization", "Shopify checkout", "Stripe checkout", "Apple Pay", "Shop Pay", "guest checkout", "abandoned checkout", "checkout drop-off", "express checkout", "Baymard".
version: "1.0.0"
category: analysis
platforms:
  - CLAUDE_CODE
---

# Checkout Conversion Audit

You audit a checkout funnel against the 2026 conversion playbook. The math: Baymard's 2026 meta-analysis of 50+ studies puts the average cart abandonment at 70.22%. Best-in-class checkouts achieve 30-40%. The gap is mostly fixable.

Baseline opportunity sizes:

- One-page checkout: -20% abandonment vs multi-step
- Express checkout above fold: 2× conversion vs at-end (Stripe)
- Apple Pay enabled: +22.3% conversion, +22.5% revenue
- Shop Pay returning customer: +50%
- Apple/Google Pay clicks: 4 vs 120 traditional

============================================================
=== PRE-FLIGHT ===
============================================================

- [ ] **Site URL** + ability to walk through checkout (test card, sandbox mode).
- [ ] **Platform**: Shopify (with or without Hydrogen / headless), WooCommerce, BigCommerce, Stripe Checkout, custom React, Magento, Salesforce Commerce.
- [ ] **Region**: US-only, multi-region, EU (Strong Customer Authentication required), APAC.
- [ ] **Mobile share**: typically 60-75%. Drives priority on mobile-specific findings.
- [ ] **Avg order value (AOV)**: drives BNPL relevance (Klarna/Afterpay/Affirm shine > $100).

Recovery:

- Can't walk checkout (auth-walled cart, requires real product): generate test product and full E2E flow.
- Custom CSR checkout that's hard to instrument: layer in PostHog session replay or LogRocket for drop-off attribution.

============================================================
=== PHASE 1: FUNNEL STEP MAP ===
============================================================

Walk the checkout, recording every step + every required field + every click:

```yaml
funnel:
  - step: cart
    fields_required: []
    clicks_to_advance: 1
    drop_off_observed: 10-15% # baseline
  - step: contact
    fields_required: [email]
    clicks_to_advance: 1
    drop_off_observed: 8-12%
  - step: shipping_address
    fields_required:
      [first_name, last_name, address1, city, state, zip, country, phone]
    clicks_to_advance: 1
    drop_off_observed: 15-25% # biggest leakage in poor flows
  - step: shipping_method
    fields_required: []
    clicks_to_advance: 1
    drop_off_observed: 5-10%
  - step: payment
    fields_required: [card_number, exp, cvc, billing_address]
    clicks_to_advance: 1
    drop_off_observed: 10-15%
  - step: review_and_pay
    fields_required: []
    clicks_to_advance: 1
```

Each step = a drop-off opportunity. Goal: ≤ 3 steps mobile, ≤ 4 steps desktop.

VALIDATION: Step map captures real flow, not assumed. Field count per step is exact.

============================================================
=== PHASE 2: EXPRESS CHECKOUT AUDIT ===
============================================================

| Express Method                 | Required for                                     | Position                                                       |
| ------------------------------ | ------------------------------------------------ | -------------------------------------------------------------- |
| **Apple Pay**                  | All Safari/iOS users (60%+ of US mobile)         | ABOVE shipping form, not "or pay another way"                  |
| **Google Pay**                 | All Android Chrome users                         | Adjacent to Apple Pay                                          |
| **Shop Pay**                   | Shopify stores (massive returning-customer lift) | Top of checkout                                                |
| **PayPal**                     | Cross-platform; older demo + cross-border        | Express button OR payment-method                               |
| **Amazon Pay**                 | Amazon-loyal demo (saves 2-step)                 | Optional, evaluate per AOV                                     |
| **Klarna / Afterpay / Affirm** | AOV > $50                                        | Both cart AND payment step (cart messaging boosts add-to-cart) |

**Audit checks**:

- [ ] Express buttons render BEFORE shipping form (above the fold)
- [ ] Apple Pay button correctly displays on Safari + iOS (test in actual Safari, not Chrome dev tools — Apple Pay uses Webkit API)
- [ ] No "and / or" framing that buries express options
- [ ] Express buttons have correct styling (Apple's brand guidelines specific)

VALIDATION: Express checkout available at the FIRST point of checkout, not buried at the bottom.

============================================================
=== PHASE 3: GUEST CHECKOUT + ACCOUNT TIMING ===
============================================================

Forced account creation is the #2 abandonment cause (24% per Baymard).

**Required**:

- [ ] Guest checkout offered prominently, NOT as a small link.
- [ ] Account creation offered AFTER purchase ("Create account in one click — your details are saved").
- [ ] Returning user lookup by email/phone (offer to sign in, but allow guest).
- [ ] Single email field, not "email" + "confirm email" (12% drop when duplicated).

VALIDATION: Guest checkout is at least as prominent as account checkout in the UI.

============================================================
=== PHASE 4: FORM FIELD MINIMIZATION ===
============================================================

Every additional field drops conversion ~7% (Baymard). Audit each field:

**Eliminate**:

- Phone number unless required for shipping (carrier delivery notifications use email)
- Company name unless B2B
- Address line 2 default-hidden (show on click)
- Birthdate unless age-restricted product

**Auto-fill / inference**:

- City + state from ZIP (US: zipcode-to-city API)
- Country from IP geolocation (let user change)
- Billing same-as-shipping (default checked)

**Smart validation**:

- Inline error messages, not page reload
- Email format check on blur
- Credit card type auto-detect (no manual selector)
- Address validation via Google Places / Stripe Address Element (typeahead reduces error rate 50%)

VALIDATION: Total checkout field count ≤ 8 for a US guest flow.

============================================================
=== PHASE 5: PAYMENT METHOD COVERAGE ===
============================================================

Region-aware payment menu:

| Region | Must-have methods                                                                                            |
| ------ | ------------------------------------------------------------------------------------------------------------ |
| US     | Card (Visa/MC/Amex/Discover), Apple Pay, Google Pay, Shop Pay (if Shopify), PayPal, ACH for high-AOV         |
| EU     | Card, Apple/Google Pay, iDEAL (NL), Bancontact (BE), SOFORT (DE/AT), Giropay (DE), Klarna, SEPA Direct Debit |
| LatAm  | Card, OXXO (MX), Boleto (BR), Pix (BR), MercadoPago                                                          |
| APAC   | Card, Apple/Google Pay, Alipay (CN), WeChat Pay (CN), GrabPay (SEA), PayNow (SG), UPI (IN)                   |
| MENA   | Card, Apple Pay, COD prominent (for trust)                                                                   |

VALIDATION: Region detection (IP / billing country) drives payment menu. Don't show iDEAL to US buyers; don't show Pix to EU.

============================================================
=== PHASE 6: COST TRANSPARENCY ===
============================================================

Unexpected shipping costs = #1 abandonment cause (48% per Baymard). Audit:

- [ ] Shipping estimate shown ON cart page (not first-revealed at checkout)
- [ ] Free shipping threshold messaging ("Spend $15 more for free shipping")
- [ ] Tax included or labeled clearly (some regions show tax-inclusive prices)
- [ ] Customs / import fees disclosed for international (DDP vs DDU)
- [ ] No "service fees" or "convenience fees" introduced at the last step

VALIDATION: Order total shown at checkout matches order total shown on cart. No surprise additions > 5%.

============================================================
=== PHASE 7: MOBILE-SPECIFIC AUDIT ===
============================================================

Mobile checkout has different failure modes:

- [ ] Tap targets ≥ 44×44 px
- [ ] Inputs have correct `inputmode` (numeric for card, email for email, tel for phone)
- [ ] No zoom-on-focus on inputs (set `font-size: 16px` minimum)
- [ ] Native autofill compatible (`autocomplete` attributes correct per WHATWG)
- [ ] Sticky CTA bar at bottom (always-visible "Complete order")
- [ ] No mid-checkout app-install prompts
- [ ] CardScan via device camera (iOS / Android Pay Request API)

VALIDATION: Test on actual iOS Safari + Android Chrome, not desktop dev tools.

============================================================
=== PHASE 8: PRIORITIZED PUNCH LIST ===
============================================================

Generate `checkout_audit_{date}.md`:

```markdown
# Checkout Audit — {site} — {date}

## Current state

- Steps: N
- Express checkout: Apple Pay {present/missing}, Google Pay {present/missing}, Shop Pay {present/missing}
- Guest checkout: {prominent/buried/missing}
- Field count: N
- Mobile checkout: {smooth/issues}
- Estimated current abandonment: {x}%

## P0 — Highest impact

- [ ] Add Apple Pay above fold. Expected lift: +22% conversion. Effort: 2 hours via Stripe Payment Element.
- [ ] Enable guest checkout. Expected lift: +25% from forced-account abandonment population. Effort: 4 hours.

## P1 — High impact

- [ ] Reduce form fields from 14 to 8. Expected lift: +35%. Effort: 8 hours UX + backend.
- [ ] Show shipping estimate on cart page. Expected lift: +20% (eliminates #1 abandonment cause). Effort: 6 hours.

## P2 — Medium

- [ ] Move from 4-step to 1-page checkout. Expected lift: +20%. Effort: 2-4 days.
- [ ] Add Klarna/Afterpay/Affirm for AOV > $50. Expected AOV lift: +15%. Effort: 1 week.

## P3 — Polish

- [ ] Sticky bottom CTA on mobile. Effort: 2 hours.

## Re-audit after fixes

Re-run `/checkout-audit` after each P0/P1 ships.
```

VALIDATION: Each item has expected lift (numeric) + effort + concrete fix.

============================================================
=== SELF-REVIEW ===
============================================================

- **Complete**: All 8 phases run? Step map + express + guest + fields + payment + cost + mobile + punch list?
- **Robust**: Tested in actual Safari/iOS + Android Chrome, not just desktop dev tools?
- **Clean**: Punch list prioritized by impact × effort, not by alphabet?
- **CRO-credible**: Would a Baymard-trained CRO consultant accept this audit as production-ready?

Common gap: missing actual mobile test → desktop dev-tools "looks fine" while real Safari has zoom-on-focus killing 30% of mobile.

============================================================
=== LEARNINGS CAPTURE ===
============================================================

`~/.claude/skills/checkout-audit/LEARNINGS.md`.

============================================================
=== STRICT RULES ===
============================================================

- Never audit without walking the actual flow. Code review alone misses runtime issues.
- Never report "fix XYZ" without measuring impact. Every recommendation needs an expected lift.
- Never recommend disabling guest checkout to "capture more leads." Capture lift is < lift from removing the gate.
- Never display payment methods irrelevant to the user's region.
- Always test on real mobile devices, not browser device emulation.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…