# No negative option enrollment where inaction = charges

- **Pattern:** `ab-002541` (`subscription-compliance.enrollment.no-negative-option`)
- **Severity:** low
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-002541
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-002541)

## Why it matters

Negative option enrollment — where inaction, a pre-selected default, or a bundled account-creation agreement triggers a subscription — is the original target of the FTC Negative Option Rule and California ARL. A pre-checked 'Add Pro subscription' checkbox is an opt-out mechanism masquerading as user consent. A free trial that silently converts to paid using a payment method from a prior unrelated transaction is the most-complained-about pattern in the FTC's negative option enforcement history. Both patterns are documented in the FTC Dark Patterns Report (2022) as straightforward violations.

## Severity rationale

Low because the pattern often produces technically revocable subscriptions, but its presence is a per-enrollment regulatory violation with accumulated liability proportional to subscriber count.

## Remediation

Audit every form in the enrollment flow for pre-selected subscription elements. Replace any `defaultChecked` subscription checkbox with an explicit unchecked default:

```tsx
{/* BEFORE — negative option: pre-checked */}
{/* <input type="checkbox" name="addSubscription" defaultChecked /> */}

{/* AFTER — requires explicit opt-in */}
<label className="subscription-addon">
  <input
    type="checkbox"
    name="addSubscription"
    defaultChecked={false}
  />
  <span>Add Pro subscription — <strong>$29/month</strong>, cancel anytime.</span>
</label>
```

For free-to-paid trial flows in `app/api/checkout/route.ts`, collect payment information at trial signup to make intent explicit. Do not convert a free account to paid using a payment method sourced from a prior unrelated transaction — that requires fresh payment authorization.

## Detection

- **ID:** `no-negative-option`
- **Severity:** `low`
- **What to look for:** Check for any pattern where a user is enrolled in a subscription without taking an explicit positive action to subscribe. Common negative option patterns: (1) a free trial that auto-converts to paid without the user being required to confirm the conversion — check whether users must enter payment information at the start of the trial or only at conversion; (2) a pre-selected subscription add-on in a checkout flow that the user must actively uncheck to avoid; (3) an account setting where a "Pro features" toggle is enabled by default and the user is charged if they do not disable it; (4) a subscription enrollment buried in account creation ("By creating an account you agree to our Pro Trial which converts to $29/month"). Check any form where subscription-related checkboxes, toggles, or selections are pre-checked or pre-enabled. Count all instances found and enumerate each.
- **Pass criteria:** No subscription enrollment occurs through inaction or pre-selected options. Every subscription requires a positive, explicit user action (checking a box, clicking a labeled subscribe button, entering payment information with clear intent). No subscription is added to a cart or order without the user specifically selecting it. At least 1 implementation must be confirmed.
- **Fail criteria:** A subscription is pre-selected in a checkout form as a default. A free trial converts to paid without requiring any re-confirmation from the user (and without the user entering payment at trial start to make intent clear). A subscription is buried in account creation terms.
- **Skip (N/A) when:** The application has no subscription or recurring billing.
- **Detail on fail:** Example: `"'Add Pro subscription ($29/month)' checkbox is pre-checked in the checkout flow. Users must actively uncheck it to avoid the subscription."` or `"Free trial requires no payment information at signup; at trial end, the system attempts to charge a payment method from a previous purchase without the user taking any action to subscribe."`.
- **Remediation:** Audit every checkout and enrollment flow for pre-selection:

  ```tsx
  // BEFORE — negative option: pre-checked subscription add-on
  // <input type="checkbox" name="addSubscription" defaultChecked />

  // AFTER — subscription starts unchecked; user must opt in
  <label className="subscription-addon">
    <input
      type="checkbox"
      name="addSubscription"
      defaultChecked={false}  // explicit: starts unchecked
    />
    <span>
      Add Pro subscription — <strong>$29/month</strong>, billed monthly, cancel anytime.
    </span>
  </label>
  ```

  For free-to-paid trial flows, require payment information at trial signup (making intent explicit) and send a reminder before the trial ends. Do not silently convert a free account to paid using a payment method from a prior unrelated transaction.

---

## External references

- external ftc-negative-option-rule-2025 — https://www.ftc.gov/legal-library/browse/rules/negative-option-rule
- external california-arl — https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?sectionNum=17602.&lawCode=BPC
- external ftc-dark-patterns-report-2022 — https://www.ftc.gov/reports/bringing-dark-patterns-to-light

Taxons: regulatory-conformance, user-experience

HTML version: https://auditbuffet.com/patterns/ab-002541
