A subscription migration made renewals look like acquisition revenue.

Paid-channel revenue rose while first orders did not. Existing renewals had entered the acquisition branch.

Representative businessSubscription wellness brand
MarketUnited States · DTC + subscription
SystemsShopify · Recharge / Skio · Klaviyo · warehouse
Decision ownersGrowth lead + Retention lead
Decision at risk

Did prospecting improve, or were renewals reassigned to paid acquisition?

Whether prospecting budget should increase after attributed acquisition revenue rises post-migration.

Illustrative subscription event tapeOrder lifecycle

Before / lineage broken

Initial orderS-014
RenewalParent ?
RenewalParent ?
Fallback branchAll → acquisition

After / lineage restored

Initial orderS-014Acquisition
RenewalS-014Retention
RenewalS-014Retention
Lifecycle rule1 order = 1 state

The taxonomy separates acquisition from retention; it does not prove advertising causality or forecast LTV.

Cause isolated

The migration replaced the stable subscription key, so renewals lost their parent lineage and defaulted to new acquisition.

Bounded change

Restore subscription lineage and route every eligible order through a mutually exclusive lifecycle taxonomy.

Acceptance check

Initial, renewal, reactivation, refund, and cancellation records tie to source and each order receives one state.

See what changed in the numbers.

Synthetic worked example

These dashboard reconstructions use constructed data. The pixelated identity field demonstrates redaction; it does not conceal a real client. The daily chart values and example check results are available in the accompanying CSV.

01 / Original reportPNG
Synthetic before dashboard: $91,000 over seven days. First orders plus misrouted renewals.
First orders plus misrouted renewals
02 / Corrected reportPNG
Synthetic after dashboard: $54,600 over seven days. First eligible orders only.
First eligible orders only

Revenue classified as acquisition

USD · same seven days
Before correction After correction
20k15k10k5k0kDay 1Day 2Day 3Day 4Day 5Day 6Day 7
Renewals are removed from the acquisition branch and restored to retention. Both series cover the same orders and period. The difference changes acquisition reporting, not the money customers paid or the incremental effect of advertising.

This is a restatement of the same period, not a time-series experiment or a claim of revenue growth caused by Calyxra.

Illustrative verification checkRenewals misrouted in a 30-order lifecycle sample

Before9 of 30

After0 of 30

The check results are separate constructed fixtures, not measurements inferred from the revenue chart or logs from a client engagement.

Inspect the seven-day dataset
Synthetic fixture · USD · both columns refer to the same period
DayBefore correctionAfter correction
1$10,000$6,000
2$12,000$7,200
3$11,000$6,600
4$14,000$8,400
5$13,000$7,800
6$15,000$9,000
7$16,000$9,600
Total$91,000$54,600
Download the source CSV

What gets checked, changed and handed back.

In this scenario, the migration replaced the stable subscription identifier. Renewal orders lost their parent relationship and followed the dashboard's fallback branch for new acquisition.

Decision Risk Score methodology

Evidence required

  • Migration mapping and affected window
  • Subscription, charge, order, and customer keys
  • Initial, renewal, reactivation, refund, and cancellation samples
  • Order tags and downstream classification logic

Correction sequence

  1. Restore one durable lineage key from subscription to charge and Shopify order.
  2. Define initial, renewal, reactivation, refund, and cancellation states.
  3. Backfill the agreed affected window using the versioned taxonomy.
  4. Allow acquisition only for the first eligible order.
  5. Expose unmapped records rather than silently defaulting them to new.

Closure criteria

  • Parent subscription lineage persists through each eligible recurring order.
  • Lifecycle categories are exhaustive and mutually exclusive.
  • A pre-existing subscriber is never marked new solely because of migration.
  • Renewal totals reconcile to the subscription source.
  • The corrected dashboard runs in parallel without unexplained classification drift.
Decision reopened

Reset CAC, payback, and retention reporting before increasing prospecting spend.

Interpretation boundary

Lifecycle repair does not prove advertising caused the subscription or predict lifetime value. Broader identity and forecasting work remains separate.

Request a 2-day incident review.

A focused diagnostic: evidence map, initial findings, and a proposed fix scope. Two business days from agreed scope, payment where applicable, and complete required data. We confirm feasibility and fee before work starts. Implementation and longer verification windows are scoped separately.

Request my incident review