Q2 2026
Ticket Elimination Plan
~360 engineering-attributable tickets per month. Two workstreams, five deliverables, ~330 eliminated — residual under invariant enforcement.
- ~360
- tickets/month attributable
Two groups by what customers experience. Each maps to a workstream with deliverables shipping this quarter. The target is zero.
Customer has a debt issue the system is wrong about. Can't pay, blocked without debt, banned at $0.
Customer bought something and it didn't work. Stuck on Free, double-charged, can't activate.
- ~200
- tickets/month ask the same question
Where is the Pay Now button? The problem isn't the button's behavior — it's the button itself. It's an alternative payment path that shouldn't exist. Honest invoicing makes invoices correct from the start — when debt goes uncollectible, a credit note adjusts the bottom line immediately. Nothing to recover means no recovery flow. The button stops existing.
The full strategy: why invoices are wrong, how credit notes fix them, what the Dunning Brain enables. Three phases shipping Q2.
- ~160
- tickets/month — paid but broken
Customer buys a plan. Card is charged. Dashboard still says Free. The subscription model provisions entitlements before payment confirms — when payment fails after activation, a chain of compensating transactions fires and fails silently. The fix: create subscriptions as incomplete, collect payment with the customer present, never provision until paid. No intermediate state means no rollback.
Today, we collect the payment method before checkout — before we know what the customer is buying. Every layer of compensating logic since exists to paper over that architectural mistake. The fix: collect payment at the moment of purchase.
Concept page: the problem, the solution, the unlock chain. Confirm payment before commit — everywhere.
These workstreams fix mechanisms, not cohorts. Drift is a flow — ~9,000 accounts at any time, churning ±50–200 per day. The mechanisms that generate drift are what the schedule below eliminates.
- 73K+
- accounts with lying invoices (see Account Populations)
- ~9,000
- in active drift at any time
- ~700
- failed activations per month
Racing dunning code paths. Lying invoice amounts. Pay-bad-debt that doesn't unflag. Tens of thousands of accounts with metadata encoding real debt.
Commit-before-pay ordering. Invoice void gap. PM gate blocking. ~700/month failed activations growing from ~200.
These workstreams share infrastructure and gate each other. The table shows what ships first, what it depends on, and what it unlocks.
| Deliverable | Depends On | Enables | Δ/mo | Ships |
|---|---|---|---|---|
| Brain Phase 1 | — | State endpoint → HI cleanup, Phase 2, Invariants | −100 | Apr 18 |
| Continuation Workflow | Act 1 (Q1) | Activation failures eliminated → LP tickets killed | −141 | Q1 |
| Brain Phase 2 | Brain Phase 1 | Webhook routing → dunning recovery path unlocked | −68 | May 9 |
| PM Gate Removal | Continuation (Q1 ✓) | Checkout unblocked → LP residual killed | −20 | Jun |
| Invariant Enforcement | Brain Phase 1 | Banned-with-$0, void-after-retry → HI residual killed | −31 | Jun |
Four Critical-rated risks across both workstreams. Each has an owner and a mitigation. These are the items that derail the quarter if they materialize.
| Risk | Workstream | Owner | Mitigation |
|---|---|---|---|
| Undiscovered handlers | HI | CN M1 lead | Surface audit + code search. Any missed handler breaks silently. |
| Premature deletion | HI | Brain lead | Brain Phase 3 gated on Phase 2 test suite. No deletion without coverage. |
| Premature gate removal | SC | Engine lead | Continuation must be proven first. Gate removal without payment ordering causes drift. |
| Unknown 1210 consumers | SC | Frontend Eng | Audit all frontend + API consumers of error 1210 before PM Phase 2. Missed = broken UX. |
Five invariants ship alongside their parent deliverables. Each enforced at three tiers: inline (code path), batch (BQ query), and alert (PagerDuty). The −31 residual in the burndown represents edge cases caught by batch enforcement — banned-with-$0, void-after-retry, and residual drift.
| # | Invariant | Ships With | Property |
|---|---|---|---|
| I1 | No entitlement without payment | Continuation Workflow | Every active sub has a successful PaymentIntent. |
| I2 | Every uncollectible has a CN | Credit Notes M2 | Post-migration: credit note exists, amount_remaining = debt. |
| I3 | Blocked customer has recovery | Brain Phase 2 | Every bad-debt account has a payable invoice. |
| I4 | No PM gate rejections | PM Gate Removal | Zero 402/1210 responses. client_secret returned. |
| I5 | Dunning state consistent | Brain Phase 1 | 6 stores agree on dunning status. |
- 4–5
- engineers across both workstreams
- 2
- Honest Invoicing (1 brain + 1 CN)
- 2–3
- Smart Checkout (2 backend + 1 frontend)
Both chains interleaved in ship order. The running total shows cumulative impact.
| Deliverable | Ships | Ticket Categories Killed | Δ/mo | Running |
|---|---|---|---|---|
| Brain Phase 1 + Cleanup | Apr 18 | ~85 RC5 (stale flags) · ~15 bad-debt (wrong state) | −100 | 360 → 260 |
| Continuation Workflow | Q1 ✓ | ~80 RC4 (activation) · ~30 sub-lifecycle · 17 drift · 14 dup-charge | −141 | 260 → 119 |
| Brain Phase 2 (lifting) | May 9 | ~37 RC5 (recovery) · ~25 payment-block · ~6 bad-debt | −68 | 119 → 51 |
| PM Gate Removal | Mid–Late Q2 | ~20 payment-block (PM gate) | −20 | 51 → 31 |
| Invariant Enforcement | Late Q2 | Banned-with-$0 · void-after-retry · residual edge cases | −31 | 31 → 0 |
Ticket category breakdown by source. Grounded from Jira digest and Salesforce RC analysis.
| Source | Category | Monthly | Root Cause |
|---|---|---|---|
| Salesforce | RC5_NO_PAY_NOW | 122 | No Pay Now button — UI hidden, stale flags, wrong state |
| Salesforce | RC4_PAYMENT_FAILURE (activation subset) | ~80 | Paid but still Free — activation fails, customer stuck |
| Jira | payment-block | ~45 | Mixed — PM gate, checkout blocked, bad debt state |
| Jira | subscription-lifecycle (activation subset) | ~30 | Paid but still Free + R2/Workers activation |
| Jira | bad-debt | ~21 | No Pay Now — wrong state, can't recover |
| Jira | entitlement-drift | ~17 | Paid but still Free — paid not provisioned |
| Jira | duplicate-charge (subset) | ~14 | Rollback race conditions |
Two workstreams. Smart Checkout fixes the payment path. Honest invoicing eliminates the debt path. ~360 tickets/month → ~330 eliminated. Residual under invariant enforcement.