THE EMAIL OFFER LAYER — FULL FORENSIC RECORD

5 August 2026 · read-only investigation · nothing was changed in ActiveCampaign.

Naming law observed throughout: every automation is written as <number> <FULL NAME>. A bare number never appears. Window law observed throughout: no number appears without its window. Send/click figures are lifetime-to-date per campaign unless stated; entrant deltas are 27 Jul → 5 Aug 2026 (9 days); Stripe series covers 1 Sep 2024 → 5 Aug 2026.


📋 SESSION RECORD — 6 August 2026

Aga asked for every PART 5 action to carry an arrow that unfolds its detail and verifies its claims, then authorised execution on two of them. This is what happened. The plain-English version is first; the technical record is under the arrow below it.

In plain English

You had 13 recommended email fixes. I checked every one against the real systems instead of trusting the document — and the document had already gone stale in a day.

Three of the 13 were simply wrong. One said we'd only ever had 2 discount codes in 8 years; we have 1,109. One said our email audience had collapsed by 81%; it hadn't — that was one sequence's emails naturally tailing off, counted twice. One said "fix this before we move people"; we'd already moved 11,000 of them a week earlier.

One real problem was still live, and I fixed it. Our biggest sales email — 15,495 people — promised "nothing charged till day 8" while the page it sent them to charges immediately. Yesterday's clean-up had genuinely fixed the body of that email; what it missed was the hidden preview line that shows in the inbox before anyone opens anything. That line is now correct, and I swept all 32 automations to confirm nothing like it survives anywhere.

The reason it hid is worth knowing: every checking tool we own reads the email body and the plain-text version — none of them read the preview line. Two of those tools now do.

Where the money is. 14,609 people are sitting in a sequence that never asks them to buy anything. The email that fixes it already exists — written, finished, even tagged for that exact sequence. It just isn't plugged in. I tried to plug it in and the platform won't let me choose where the step goes, so that is one click for you in the builder. Nothing was sent and nothing was left changed.

And your two decisions closed the strategy question this whole document was circling: welcome sequences end in a launch sequence, and 50% off is the annual price — run as both evergreen and calendar.

The technical record — what was opened, what changed, what is left
Verified against, not from
ActiveCampaign — 32 automations, 258 messages, HTML / plaintext / preheader_text held separately · Stripe — 1,109 coupons enumerated to exhaustion · the live /50promo/ page and all three of its checkouts · the repo, the tracked queue and the fleet ledger.
Executed
  • Message 11515 fixed (750 TMA | Welcome Sequence After Quiz E6). The trial promise lived in the hidden preheader div and the separate preheader_text field. Replaced with "50% off, 60-day guarantee — and an honest reason to start now", matching the fleet's own 5 Aug substitution. Full backup, whole object echoed back, read back from the API to verify.
  • Estate-wide sweep: all 32 automations, all three surfaces, restricted to emails that link the charge-immediately offer — zero trial claims remain.
  • email_lint.py now reads the preheader (_with_preheader() folds it in as a hidden div so every existing rule sees it, without rewriting any rule). Proven to block a preheader-only claim and pass a clean one. ac_email_read.py's --grep now searches all three surfaces.
Attempted and cleanly reverted

Wiring campaign 3150 into 758 Nurture Sequence 2. The API creates steps but ignores ordernum — position is set by parent, and every block in that arc is parented to the START block, so the step lands at position 2 or returns HTTP 500. One attempt sat at position 2 for ~60 seconds; it was caught on read-back, deleted, and confirmed sent to nobody on the campaign's own counters (send_amt=0, sdate=None) — not on the delete returning 200. Both 758 Nurture Sequence 2 and the probe automation read back as exact matches to their backups.

Structural findings
  • 🟢 Every welcome and nurture arc already ends in an "enter another automation" step, all pointing at 751 Nurture Sequence 1. Aga's ruling is therefore a repoint, not a build.
  • 759 Nurture Sequence 3's zero entrants is not a severed chain758 Nurture Sequence 2's last step has 0 sends, so nobody has reached the hand-off yet.
  • send_collision_check.py with the offer declared returns PASS — an evergreen 50%-off drip and a 50%-off campaign are "the SAME offer family — one conversation, not a collision".
Left open
  1. One builder click — campaign 3150 into 758 Nurture Sequence 2 after email 7 (NIC-87).
  2. 756 Part 1 - Abandoned Cart Reminder must not be unpaused first — its missing unsubscribe link is still live and the compliant rebuild is parked, not applied (AGA-115).
  3. The published copy of this document is still the 5 Aug version — it needs estate_sync.py to catch up.

PART 1 — WHAT WAS ASKED, AND WHAT I DID

1.1 The question

Aga, 5 Aug 2026:

"One of the biggest findings of why our revenue fell 40% in June was that we stopped offering annual plans. In the past a lot of these sales came from the email, and we made a lot of changes to the emails. For example, in the past we had, after the welcome sequence, an evergreen launch sequence with 50% off — now we don't, I believe. Can you review the changes we did in email marketing, and analyse our welcome sequence after quiz and see if it's still offering 50% off or not? Analyse all sequences and see if any are offering 50% off. This is critical, do a deep analysis."

Added during the work:

1.2 How the work was run

PhaseWhoWhat
1tma-email-architect seatOffer-coverage matrix across all 33 automations, reading real bodies
2Me, inlineArchaeology — the evergreen arc, the orphans, the blackout
3Me, inlineDated change timeline from AC metadata, git, fleet ledger
4tma-email-revenue-analyst seat24 months of Stripe, the $78.50 price-point series
5MeReconciliation, correction, this document

1.3 Every source actually opened

SourceHow
ActiveCampaign — 33 automations, all send steps, real campaigns, real message bodiestools/retention/ac_email_read.py <id> · --full · --grep
ActiveCampaign — 1,457 campaigns with cdate/sdate/ldate/send_amt/clicks/unsubsGET /api/3/campaigns?orders[cdate]=ASC, paginated
ActiveCampaign — all 13,082 messages in the accountGET /api/3/messages, paginated
ActiveCampaign — contact creation per month, 2023-01 → 2026-08GET /api/3/contacts?filters[created_after]=…&filters[created_before]=…
ActiveCampaign — automation blocks, wait durations, campaign→automation reverse mapGET /api/3/automations/<id>/blocks
Stripe — 9,271 charges, 5,464 succeeded+paid, both accounts, invoices expandedGET /v1/charges?expand[]=data.invoice, paginated
Stripe — 784 subscription objects, coupon objectsGET /v1/subscriptions/{id} · GET /v1/invoices/{id}
The live offer page and its checkoutscurl + WebFetch on /50promo/ and app.themovementathlete.com/register/*/promo/
The fleet's own instrumenttools/email-analytics/sequence_scoreboard.py + its 3 Aug/4 Aug/5 Aug snapshots

Currency: all 5,464 succeeded Stripe charges are USD. Nothing mixed. All Stripe figures are GROSS — before fees and refunds.


PART 2 — THE ANSWER TO AGA'S QUESTION

2.1 Is 750 TMA | Welcome Sequence After Quiz still offering 50% off?

YES. The real ask is email 6 of 10 — campaign 3103, message 11515, "Marcus waited 11 years. He started last Thursday." Body: "50% off any plan (monthly or annual) — Nothing charged until day 8 — 60-day money-back guarantee." CTA "Claim Your 50% Off →". Reinforced at email 9 (message 11693) and email 10 (message 11656).

Emails 1–5 make no ask at all — every CTA is an app-store download. 750 TMA | Welcome Sequence After Quiz has zero links to /start-training/.

Urgency: deliberately none. The copy says "I'm not going to invent a deadline… this is the new-member window."

2.2 🔴 A correction to my own earlier claim

I first reported that 750 TMA | Welcome Sequence After Quiz offered 50% off at day 12 through campaign 3107, "Gareth Case Study | 50% OFF | 48h LEFT", on 15,913 sends.

That email's HTML contains no offer and no deadline. It is 12,663 characters of pure story. The "50% OFF / FINAL 48 HOURS" text exists only in the plaintext alternative, which almost no recipient renders. The campaign name is stale relative to its own body.

Root cause of my error: the reader tool's text extraction concatenates the HTML and plaintext surfaces, so a keyword search reports an offer that most recipients never see.

The estate-wide scale of this defect: of 236 live emails, 47 are divergent between the two renderings, and 34 carry a deadline ONLY in the plaintext.

Rule adopted: never assert an email carries an offer without grepping the HTML href surface specifically — --grep 'href="https://themovementathlete\.com/50promo'.

Also refuted by this pass: the earlier estate claim that 973 Nurture Sequence 1 NEW COPY FROM CLAUDE has "zero offer links". It has 3 HTML hrefs — they simply sit in emails nobody reaches.

2.3 Which sequences carry a 50%-off offer, live

AutomationEnteredOffer in HTML?Where the ask sits
750 TMA | Welcome Sequence After Quiz19,755✅ YESemail 6 of 10
751 Nurture Sequence 124,016✅ YES (6 hrefs)email 7 of 12
756 Part 1 - Abandoned Cart Reminder0✅ YESemail 1 of 1 — but nobody enters
759 Nurture Sequence 30✅ YES (8 hrefs)never entered
760 School of Strength (NEW)29YES — full launch arcemail 10 of 13
764 Nurture Sequence 40✅ YESnever entered
967 TMA | Welcome Sequence After LEAD MAGNET567⚠️ only 2 of 15 messagesemail 2, variant-dependent
973 Nurture Sequence 1 NEW COPY FROM CLAUDE11,056✅ 3 hrefs — in the never-sent tailemail 18 of 23
976 Cancelled Win-Back331✅ YES — cleanest offer in the estate$9.99, real 48h close

Carry no offer, correctly: 975 Onboarding | After The Purchase · 977 Sunset / Re-permission · 986 Welcome Lifetime Members · 991 NEW Re-Engagement - For people who stopped opening Before Sunset.

Carry no offer and should: 758 Nurture Sequence 2 · 978 TMA 28-Day Challenge — Evergreen · 992 TMA | Welcome Sequence AFTER APPSIGNUP AB TEST Aug4th.


PART 3 — THE FINDINGS, IN ORDER OF WHAT THEY COST

3.1 🔴 50% off IS our annual price — there is no full-price annual motion

In 24 months, ZERO new annual subscriptions sold at $157. All 496 $157 charges are renewals.

Consequence: when the 50% offer stops going out, the annual line stops. There is nothing to fall back on. Never model annual revenue for new customers off the $157 list price.

3.2 🔴 The broadcasts stopped — this owns the June–July collapse

DateWhat
31 May 2026Last 50%-off broadcast ever sent — TMA Memorial Sale 2026 - E10
June 2026Zero offer broadcasts. Content sends only
2–12 Jul 2026Lifetime sale at $297 — a different product. 63 sales, $18,711
20 Jul 2026Last broadcast of any kind. Silence since

The longest dry gap in new annual sales across the entire 24-month window is 18 Jun → 17 Jul 2026 — 29 days. Nothing else is close. Last $78.50 ever charged: 26 Jul 2026.

3.3 The money

50%-off annual line ($78.50 + $79.99), new sales only, GROSS:

WindowRateCash
Feb–Apr 2025 clean baseline12.7/mo$1,002/mo
Feb–Apr 2026 clean baseline13.3/mo$1,053/mo
2026-05 🎁 Memorial promo36$2,829
2026-069$708 (−33%)
2026-072$157 (−85%)
2026-08 (1–5 only)0$0

Denominator discipline. The previously quoted "annual = 64.3% of cash" is 90-day NEW-SUBSCRIPTION cash (65.3% reproduces). Against all Stripe cash in that window — including renewals and the $19,997 lifetime promo — $78.50 is 7.7%. Both true, not interchangeable. July's "annual share 6.3%" is an artefact of the lifetime promo inflating the denominator, not a mix collapse.

3.4 🔴 The quiz paywall is EXONERATED for this line

$78.50 is the /50promo/ email price. No quiz variant has ever offered annual at any price. A paywall that never carried annual cannot have stopped selling it. The 29-day dry gap also hit $79.99, $109.90 and $141.30 — none of which are quiz prices either.

What the paywall change does explain is why nothing backfilled the gap. Not why it opened.

3.5 🔴 The offer layer was disconnected, not deleted

AutomationEnteredThe problem
758 Nurture Sequence 214,619Zero offer on any surface. 11 emails, 18 CTAs, all to /start-training/. Its only offer-shaped hit is the phrase "No deadlines". And 973 Nurture Sequence 1 NEW COPY FROM CLAUDE's contacts are being migrated INTO it — moving 14,619 people from a weak late offer to none at all
988 TMA | Welcome Sequence AFTER APPSIGNUP336Zero HTML offer hrefs. Its /50promo/ mentions are plaintext-only. 42 links to /start-training/
992 TMA | Welcome Sequence AFTER APPSIGNUP AB TEST Aug4th19Zero visible offer of any kind. 45 links to /start-training/
760 School of Strength (NEW)29A complete evergreen 50%-off launch arc — education → offer at E10 → "8 hours left""This closes at midnight." Real deadlines, 6 /50promo/ hrefs. Twenty-nine people have ever entered it
759 Nurture Sequence 3 + 764 Nurture Sequence 40 / 053 offer-carrying emails, ACTIVE, never entered. The chain 973 Nurture Sequence 1 NEW COPY FROM CLAUDE758 Nurture Sequence 2759 Nurture Sequence 3764 Nurture Sequence 4 is severed after 758 Nurture Sequence 2

The estate HAS an evergreen 50%-off launch sequence. It is switched on, fully built with real deadline mechanics — and it receives essentially no traffic, while 14,619 contacts sit in a sequence that never asks for the sale. That is a routing failure, not a copy failure, and it is far cheaper to fix.

988 TMA | Welcome Sequence AFTER APPSIGNUP and 992 TMA | Welcome Sequence AFTER APPSIGNUP AB TEST Aug4th replaced the old app-download-then-sell funnel. Neither has a clickable offer. That is the most likely single mechanism for a step-change loss of email revenue.

3.6 🔴 How the nurture rewrite buried the ask

973 Nurture Sequence 1 NEW COPY FROM CLAUDE went live 21 May 2026; every on-ramp was repointed off 751 Nurture Sequence 1 by 7 June.

751 Nurture Sequence 1973 Nurture Sequence 1 NEW COPY FROM CLAUDE
Arc length48 days78 days
First askemail 7 of 12 (day 43)email 18 of 23 (day 75)
Reached the offer14,033 — 67% of entrants0
CTR on the offer email1.25% — best in the estatenever delivered
New entrants, 27 Jul → 5 Aug+7+1,675

Measured send-decay down 973 Nurture Sequence 1 NEW COPY FROM CLAUDE: day 0 = 10,262 → day 32 = 6,748 → day 35 = 3,657 → day 38 = 1,688 → day 43 = 39 → day 46 = 21 → day 49 onward = 0. The offer sits at day 75.

Since roughly 7 June, essentially every new lead has been routed into the nurture arc whose offer cannot fire.

HTML href counts, plaintext excluded:

/start-training//50promo/blog articles
751 Nurture Sequence 12666
973 Nurture Sequence 1 NEW COPY FROM CLAUDE237

The rewrite cut trial-door links by 92% and made blog articles the largest CTA destination in the sequence. More links now point at articles than at the trial door and the offer page combined.

Every offer in the estate except 990 Monthly→Annual Upgrade Engine (Jul 2026) routes to the legacy /register/ estate via /50promo/ — the estate that fires GTM-PPGJXHH, which is not in our GTM account.

3.8 🔴 The audience is collapsing — a separate emergency

Recipients per content send: 8,937 (5 Jun) → 8,101 (19 Jun) → 7,015 (30 Jun) → 6,748 (14 Jul) → 3,657 (17 Jul) → 1,688 (20 Jul)−81% in six weeks — then nothing at all.

An offer is worthless without an audience, and nobody owns this number.

🔴 CORRECTION — appended 5 Aug 2026 (evening), after live re-verification. The series above is NOT a separate emergency and is not "the audience". Every one of those six sends is a drip email inside 973 Nurture Sequence 1 NEW COPY FROM CLAUDE — verified live, each campaign carries automation=973 (5 Jun 8,942 · 19 Jun 8,101 · 30 Jun 7,015 · 14 Jul 6,748 · 17 Jul 3,657 · 20 Jul 1,688). It is §3.6's cohort send-decay measured a second time on calendar dates: the May–June entrant wave moving through a 78-day arc whose sends stop at ~day 49. The list did not shrink 81%. Measured the same day: the 2 Jul lifetime launch reached 44,747 leads full-list; the engaged-leads segment held ~12,000–13,500 through 12 Jul; Core (opened/clicked ≤90d) ≈ 5,090. The real §3.8 emergency is the famine — no broadcast since 12 Jul — plus arcs that dead-end before their offer (§3.6). Ownership is now assigned: the audience number (Core/Mid/Dormant tier sizes, weekly) belongs to tma-broadcast-cadence-owner.

3.9 🔴 The instrument is blind — why this ran 11 weeks unnoticed

tools/email-analytics/sequence_scoreboard.py:107:

AUTO_PREFIX = re.compile(r"^\s*(\d{3})\b")   # campaign name must START with the automation number

Only campaigns whose name opens with the automation number are counted — e.g. the campaign 967 LEADS WELCOME — E1 · The Method inside 967 TMA | Welcome Sequence After LEAD MAGNET. Every offer email is named editorially — "Gareth Case Study | 50% OFF | 48h LEFT", "The honest case for joining now." — so all of them are silently dropped.

The 5 Aug scoreboard therefore reports only on 967 TMA | Welcome Sequence After LEAD MAGNET, 982 Lifetime Upgrade, 986 Welcome Lifetime Members, 988 TMA | Welcome Sequence AFTER APPSIGNUP and 990 Monthly→Annual Upgrade Engine (Jul 2026) — and names the "worst eligible slot" inside sequences with 2,495 and 1,707 sends.

750 TMA | Welcome Sequence After Quiz, 751 Nurture Sequence 1 and 973 Nurture Sequence 1 NEW COPY FROM CLAUDE — 54,826 combined entrants and 100% of our offer emails — do not appear at all.

The EVOLUTION LAW uses this scoreboard to decide what may be worked on. So the law has been aimed at the wrong sequences.

3.10 The 15-month blackout — Aga's "AC deleted a lot", dated

No campaign in the account has a send date between 13 July 2024 and 20 October 2025.

🔴 But contacts were NOT deleted. Creation ran continuously and above trend right through the blackout — ~14,000 new contacts arrived between Aug 2024 and Sep 2025. 57,618 remain today.

So the honest reading is worse than "we lost data": ~14,000 leads arrived, and the record shows nothing was sent to them.

Before the blackout, TMA ran a named sale every 4–8 weeks to a ~105,000-lead list — Jan Promo, Feb 50%, Spring Sale, Memorial Sale, Summer Sale, 4th of July, Black Friday, Dec Flash Sale. Today's broadcasts reach 12,000–45,000.

3.11 The evergreen arc that was built and never wired

Written Oct–Nov 2025, wired into no automation, 0 sends ever:

CampaignBuiltStatus
*"Cart Abandonment50% Off This is awkward..."* (2997)2025-10-22active, orphan
"📢📢 50% Discount gone at midnight…" (3085)2025-10-26draft, orphan
"The training built for you — now half price" (3150)2025-10-28active, orphan
*"50% offSwitch from bodyweight to weightlifting"* (3371)2025-11-07draft, orphan
"Last chance: Your personalized training at half price 💥💸" (3479)2025-11-14draft, orphan
"😱50% off expires at midnight (final warning) ❗❗" (3495)2025-11-14draft, orphan
"The cart is closed (but this isn't goodbye)😢" (3499)2025-11-14draft, orphan

Campaign 3495 carries the most explicit annual sell we have ever written"Pay full price later → $157/year… Lock in 50% off now → $78.50" — and has never reached a human.

Campaign 2997 carries the UTM utm_campaign=756-part-1-abandoned-cart-reminder — it was written for 756 Part 1 - Abandoned Cart Reminder, which has entered = 0.

Of 705 campaigns created since Oct 2025, only 293 are wired into any automation. 48 offer/urgency campaigns are wired to nothing and have never sent. (For one-off broadcast promos an unsent draft is normal — the damning subset is the seven evergreen items above, which are automation-shaped.)


PART 4 — LIVE DEFECTS FOUND IN PASSING

None of these is the offer question. All are shipping right now.

#DefectExposure
1Trial copy against immediate-charge checkouts. 750 TMA | Welcome Sequence After Quiz E6/E10 promise "Nothing charged until day 8"; 751 Nurture Sequence 1 says "7 days free"; 759 Nurture Sequence 3 says "7-day free trial — then 50% off". All route to /50promo/register/*/promo/, titled "Register and pay", pk_live_…, showing $78.50/$24.98/$497 and zero trial language~19,755 contacts have entered 750 TMA | Welcome Sequence After Quiz
2A promised price that cannot be bought. 751 Nurture Sequence 1, 759 Nurture Sequence 3, 764 Nurture Sequence 4 all promise "first month $12.49". /50promo/ sells no monthly plan at all. The $12.48 checkout exists but is never linkedEvery click lands on a page that cannot sell the promise
3975 Onboarding | After The Purchase ships internal agent scaffolding to PAYING CUSTOMERS — visible text POST-WRITE CARD EMAIL_TYPE: Onboarding argument_made: … system_anchors_used: [autoregulation] and >=24/30 (08q) and >=180/200257 buyers entered
4757 Part 2 - Abandoned Cart Reminder is ACTIVE and sends four EMPTY emails — subjects 'r', 'r', 'e', 'e', bodies blank on both surfaces0 entered — armed, not yet fired
5756 Part 1 - Abandoned Cart Reminder has NO unsubscribe link. Also renders raw markdown (**THE BRUTAL REALITY:**)CAN-SPAM / GDPR + deliverability, the moment it fires
6987 LIFETIEM SALE | EXITPOPUP- Tag Added:lifetime_checkout_exit_new sells an EXPIRED promo"closes Sunday 12 July, midnight ET", 24 days stale, at $297 — and its button 302s to /start-training/, which sells lifetime at $497Promise $297, deliver $497. 29 entered
7983 J4 Lifetime· Checkout Abandoner still sends "closes Monday at midnight — or earlier, if seat 150 sells first"Expired scarcity
8984 Shoulder Mobility Week and 985 Shoulder Mobility Course Launch ship a literal placeholder"The price more than doubles [DEADLINE] at 11:59 PM EST"Both ACTIVE
9967 TMA | Welcome Sequence After LEAD MAGNET split-test is unreadable — of three E2 variants, message 12289 has the offer in plaintext onlyOne arm cannot convert
10751 Nurture Sequence 1 (24,016) and 973 Nurture Sequence 1 NEW COPY FROM CLAUDE (11,056) are BOTH ACTIVE with near-identical lineage (973's campaigns are literally named - (Copy-3087))Double-entry / collision risk
11987 LIFETIEM SALE | EXITPOPUP… and 983 J4 Lifetime· Checkout Abandoner carry the Glasgow/Clyde address line the locked footer forbidsTemplate compliance
12Lifetime price is inconsistent across live surfaces — $297, $497, $498, $997 anchor. /50promo/ alone serves two contradictory price tablesBuyer confusion

🔴 RE-VERIFIED LIVE, 6 August 2026. The line that used to stand here — "Nothing below has been executed. All are proposals for Aga" — is no longer true and has been struck. Between the evening of 5 Aug and this pass, three actions were executed, two were ruled on by Aga, seven were filed as tracked queue rows, and one was refuted by the document's own correction. Every claim in every action below was re-opened against the live artefact — ActiveCampaign, Stripe, the live pages, the repo — never against this document. Each action now carries an arrow: open it for the claim as written, the verdict, what was actually opened to check it, what it returned, and what to do now.

5.0 What changed, and the order to work in

The re-check moved the priority order materially. Three things drove it:

Do#ActionStatus at 6 Aug
1st3Give 758 Nurture Sequence 2 a priced offerONE BUILDER CLICK API cannot place the step — 14,609 live contacts, no ask
2nd0Stop the live defectsTRIAL COPY FIXED 6 AUG only 756's parked rebuild left
3rd1One 50%-off broadcastQUEUED AGA-111, Aga ruled 6 Aug
4th2Route traffic into 760 School of Strength (NEW)QUEUED AGA-113, Aga ruled 6 Aug
5th4Welcome arcs → launch sequenceAGA RULED 6 AUG action withdrawn; NIC-88 proceeds + hand-off built
6th11Decide 756 Part 1 - Abandoned Cart ReminderQUEUED AGA-115 — rebuild is parked, not applied
7th6Per-campaign coupon codePREMISE REFUTED but cheaper than stated
8th12Standing promo cadenceAGA RULED 6 AUG evergreen and calendar, one price
7Fix AUTO_PREFIXDONE 5 AUG
8HTML-first audit ruleADOPTED IN CODE counts need restating
5Move the ask in 973 Nurture Sequence 1 NEW COPY FROM CLAUDELARGELY MOOT 7 people left in it
10Wire the orphaned deadline arcFOLD INTO 2 + 3
9Diagnose the −81% audience collapseREFUTED · RETIRE

5.1 The thirteen actions, each one re-verified

0 Stop the live defects in Part 4TRIAL-COPY DEFECT FIXED 6 AUG 756 REBUILD STILL PARKED
Claimed, 5 Aug

Stop trial copy on charge-immediately links · 975 Onboarding | After The Purchase's leaked scaffolding · 756 Part 1 - Abandoned Cart Reminder's missing unsubscribe · 987 LIFETIEM SALE | EXITPOPUP- Tag Added:lifetime_checkout_exit_new's $297→$497 mismatch. Effort: Low.

Verdict

Executed on the evening of 5 Aug — 79 verified API message writes — and most of it holds. Two defects survived, and one of them is on the single highest-volume offer email we own.

What I opened
GET /api/3/automations/<id>/blockscampaignsmessages for all 24 wired automations (258 messages, HTML and plaintext held separately) · GET /api/3/automations/983 and /987 · curl on /50promo/ and all three of its checkouts · tools/ops/FLEET_LOG.jsonl · docs/company/ANALYTICS/PART4_FIX_MANIFEST_2026-08-05.md.
What it returned — defect by defect
Part 4 defectState at 6 Aug
#3 975 Onboarding | After The Purchase scaffoldingFIXED 0 hits across all 18 messages, both surfaces. 🔴 And the original finding was overstated: the scaffolding sat in HTML comments — the 257 buyers never saw it. Stripped anyway (4 msgs)
#6 / #7 / #11 the two lifetime automationsFIXED 983 J4 Lifetime· Checkout Abandoner and 987 LIFETIEM SALE | EXITPOPUP- Tag Added:lifetime_checkout_exit_new both return HTTP 404. Deleted by Aga 5 Aug; recorded in the registry. Account is now 32 automations
#2 the $12.49 promiseFIXED zero hits estate-wide on either surface. Replaced with "50% off all plans" per Aga's ruling
#8 the [DEADLINE] placeholderFIXED zero hits estate-wide
#11 the Glasgow/Clyde footerFIXED and it was far wider than reported — stripped from 55 messages across 6 automations, where Part 4 had flagged 2
#4 757 Part 2 - Abandoned Cart Reminder's four empty emailsCONTAINED the 4 messages are still genuinely empty (html_len=0, subjects 'r' 'r' 'e' 'e') — but the automation is status 2, PAUSED. Part 4's "is ACTIVE" was wrong
#5 756 Part 1 - Abandoned Cart Reminder has no unsubscribeSTILL LIVE 0 unsubscribe tokens, 3 raw markdown bolds still rendering (**THE BRUTAL REALITY:**). mdate is 2025-10-22 — untouched. A compliant rebuild exists and passed lint, but it is parked, not applied. Contained only because 756 is paused → see action 11
#1 trial copy on a charge-immediately link🔴 STILL LIVE see below — this one matters
#12 lifetime price inconsistencySTILL LIVE /50promo/ serves $997→$498 in one card and $997→$297 in another, on one page. The $297 sits beside escaped Divi builder markup (u003cbru003e), so [UNVERIFIED] whether that table paints
🔴 The defect that survived, and why

Message 11515 — 750 TMA | Welcome Sequence After Quiz email 6, 15,495 sends, the biggest offer email in the estate — still reads "50% off, nothing charged till day 8". Its only offer link is themovementathlete.com/50promo?utm_campaign=750-tma-welcome-sequence-….

I fetched all three checkouts that page sells. Every one returns HTTP 200, title "Register and pay", a live pk_live_… key, and zero occurrences of "trial", "free trial", "nothing charged" or "day 8".

Why it survived: the 5 Aug sweep verified charged until day 8 = 0 and was satisfied. The copy says till, not until. The message's mdate is 2025-10-26 — it was never rewritten. A verification grep that does not match the copy reads exactly like a clean pass.

Do this now

One single-slot copy fix through /email-fleet on message 11515 — either drop the day-8 promise, or point the email at a checkout that genuinely carries a trial. Then re-grep on the word actually used, not the word expected.

1 Send one 50%-off broadcast to the engaged listQUEUED · AGA-111 · AGA RULED 6 AUG
Claimed, 5 Aug

Biggest single cash lever and the clean falsifier — read the $78.50 count for 72h and causation is settled either way. Effort: Low.

Verdict

Premise confirmed and sharpened. Aga ruled on 6 Aug to build it for her approval; it is filed as AGA-111. One date in the original is wrong, and there is a caveat on "biggest lever" that she should see before she presses send.

What I opened
GET /api/3/campaigns?orders[sdate]=DESC, paginated, filtered to campaigns with no parent automation and send_amt > 0 — i.e. real broadcasts, not drips. 659 of them. Plus tools/retention/send_collision_check.py and the fleet ledger.
What it returned
  • Last 50%-off broadcast: 31 May 2026TMA Memorial Sale 2026 - E10 - Sunday - LAst EMAil, 16,593 recipients. ✅ Exactly as stated.
  • 🔴 Last broadcast of ANY kind: 12 July 2026, not 20 July. The 20 Jul send was a drip inside 973 Nurture Sequence 1 NEW COPY FROM CLAUDE, per this document's own §3.8 correction. That is 25 days of complete silence as of today.
  • The audience is there. The 2 Jul launch reached 44,747; the engaged-leads tier held 12,023–13,460 right through 12 Jul. Core (opened/clicked ≤90d) ≈ 5,090.
  • send_collision_check.py was run 6 Aug: within caps for a Core broadcast.
🔴 The caveat on "biggest single cash lever"

Our most recent launch converted badly. Across 2–12 Jul, the lead-side sends total 274,788 for 594 clicks — a 0.216% CTR — and 1,195 unsubscribes (0.43%). The Memorial arc's closing days ran near 0.9% unsub.

That does not kill the action — it prices it. This is still the cheapest falsifier we have, and 25 days of silence is its own risk. But expect a modest click volume, and read the $78.50 count rather than the open rate.

Do this now

Aga's approval on AGA-111 is the only blocker. Send to Core (~5,090), not the full 44,747 — the collision check already cleared that shape. Then read $78.50 for 72 hours.

2 Route traffic into 760 School of Strength (NEW)QUEUED · AGA-113 · AGA RULED 6 AUG
Claimed, 5 Aug

The complete evergreen 50%-off launch arc already exists and has 29 lifetime entrants. We do not need to build an evergreen launch — we need to point people at the one we own. Cheapest cash in this document. Effort: Low.

Verdict

Fully confirmed, every element. Aga ruled on 6 Aug: route 760 School of Strength (NEW) as the bridge AND commission a new Jeff-Walker-PLF arc alongside it. Filed as AGA-113.

What I opened
All 13 send steps of 760 School of Strength (NEW) resolved campaign → message, HTML surface only · tools/email-analytics/offer_reach_check.py (live estate run, 6 Aug) · the automations list meta.starts block.
What it returned
ClaimLive at 6 Aug
Complete arc13 emails, education → offer → close
Offer genuine in the HTML6 /50promo/ hrefs, in the HTML surface, at emails 10, 11 and 12
Real deadline mechanics"8 hours left. One decision to make." · "This closes at midnight. The honest case." — 3 and 6 deadline phrases respectively, in the HTML
29 lifetime entrants29 — and only 2 currently in flight
The ask actually landsreach 79.3% — verdict OK. Only 750 (81.0%) and 967 (98.7%) do better
🔴 One correction to Part 6, in this action's favour

Part 6 lists "entry triggers cannot be read; builder view only" as [UNVERIFIED]. That is half wrong: the automations list endpoint returns a meta.starts array giving the trigger TYPE per series. 760 School of Strength (NEW) shows submit + subscribe.

Reading is possible. Writing still is not — so repointing the trigger remains Aga's click in the builder. That is the whole of the work.

Do this now

Aga repoints one entry trigger. Before it goes live, fix the Marcus persona collision found 6 Aug — the same member story opens 750 TMA | Welcome Sequence After Quiz E6 and 760 School of Strength (NEW) E1.

3 Put a real HTML offer into 758 Nurture Sequence 2🔴 #1 ACTION · ONE BUILDER CLICK
Claimed, 5 Aug

Put a real HTML offer into 758 Nurture Sequence 2 BEFORE migrating anyone else into it — as built, the migration moves 14,619 people from a weak offer to none. Effort: Low.

Verdict

🔴 The window this action asked for has closed. The migration ran to completion while the recommendation sat unactioned — so this is no longer a precaution, it is the largest live exposure on the board.

What I opened
tools/retention/migrate_973_to_758_log.csv (21,269 rows) and its state file · GET /api/3/contactAutomations?filters[seriesid]=… for live occupancy · all 11 send steps of 758 Nurture Sequence 2 · GET /api/3/campaigns/3150.
What it returned
  • The migration is done. added_to_758 = 10,252 · removed_from_973 = 11,014 · first row 29 Jul, last row 5 Aug 15:40. It was Aga-approved on 29 Jul as a nurture consolidation.
  • 758 Nurture Sequence 2 now holds 14,620 records, of which 14,609 are ACTIVE. It is where essentially the whole nurture population now lives.
  • It still has zero offer. 11 emails, 0 offer hrefs, 18 /start-training/ hrefs — exactly as reported. The fleet's own instrument grades it TRIAL-DOOR ONLY.
🟢 And it is cheaper to fix than this document assumed

The offer email already exists. Campaign 3150, "The training built for you — now half price", is finished HTML carrying 2 real /50promo/ hrefs already tagged utm_campaign=758-nurture-seq, and its automation field still reads 758.

It was written for this sequence and simply is not wired as a send step. §3.11 filed it as an orphan; live, it is an orphan of this exact automation.

So this is a wiring job, not a writing job — one step added to a live arc, which is single-slot and EVOLUTION-LAW compliant.

🔧 ATTEMPTED IN CODE, 6 Aug 2026 — and it needs one builder click

Aga authorised execution. I tried the API properly and it cannot place the step. Nothing was sent and nothing was left changed758 Nurture Sequence 2 reads back as an exact match to its pre-attempt backup (24 blocks), and campaign 3150 still shows send_amt = 0, sdate = None.

What was established, in order:

  • Block creation IS supportedPOST /api/3/automationBlocks works; proved on 757 Part 2 - Abandoned Cart Reminder (paused, 0 contacts) and cleaned up to an exact restore.
  • 🔴 ordernum in the payload is ignored. Position is set by parent — the new block lands immediately after whichever block is named. Proved by passing a deliberately bogus ordernum=99 and watching it land in the parent's slot.
  • 🔴 Every block in 758 Nurture Sequence 2 is parented to the START block — a flat structure. So naming a parent cannot express "after email 7": the API drops the step at position 2, and naming the email-7 block instead returns HTTP 500.
  • The first attempt did land a step at position 2 for about a minute. It was caught by the read-back, deleted, and sent to nobody — verified on the campaign's own counters, not on the delete succeeding.
✅ The collision question is settled, though

send_collision_check.py was run against Aga's promo week with the offer declared: VERDICT PASS. An evergreen 50%-off drip inside this sequence and a 50%-off campaign are "the SAME offer family — one conversation, not a collision". So wiring this does not damage the promo, and the two do not need to be sequenced apart.

Do this now — one click, in the builder

In 758 Nurture Sequence 2, drag a "Send an email" step in immediately after email 7 ("Ross owns a gym. His training was killing him."), preceded by a 5-day wait to match the arc's rhythm, and point it at the existing campaign 3150 — "The training built for you — now half price". Do not write anything: the email is finished and already tagged utm_campaign=758-nurture-seq.

Why email 7 and not the end: the last step has 0 sends — nobody has reached the end of this arc yet. At email 7, roughly 11,700 of the 14,609 have not passed that point, so they collect the ask as they arrive. Tracked as NIC-87; AGA-112 is already ratified, so nothing gates it.

4 Add HTML offer hrefs to the two app-signup welcome arcsSUPERSEDED BY AGA'S RULING, 6 AUG
Claimed, 5 Aug

Add HTML offer hrefs to 988 TMA | Welcome Sequence AFTER APPSIGNUP and 992 TMA | Welcome Sequence AFTER APPSIGNUP AB TEST Aug4th — these replaced the app-download-then-sell funnel and carry no clickable offer. Effort: Low.

Verdict

The measurements are exact. But the action's scope is too narrow, and it prescribes the opposite fix to the queue row now standing against it. Aga has to pick one.

What I opened
Every message in both arcs, HTML hrefs counted separately from plaintext · offer_reach_check.py live run · queue row NIC-88 in marketing/seo/SEO_HUMAN_QUEUE.json.
What it returned
ArcEnteredOffer hrefs (HTML)/start-training/Verdict
988 TMA | Welcome Sequence AFTER APPSIGNUP336042GHOST OFFER
992 TMA | Welcome Sequence AFTER APPSIGNUP AB TEST Aug4th34045GHOST OFFER
🔴 766 Facebook Lead Form | LM: Building Muscle After 40 |9130GHOST OFFER — not in this action at all

The href counts reproduce exactly — 42 and 45. Both arcs carry the 50%-off wording in plaintext only (19 and 15 messages respectively), which almost nobody renders.

🔴 The action misses the biggest instance. 766 Facebook Lead Form | LM: Building Muscle After 40 | has the identical defect with 913 entrants — more than 988 and 992 combined.

🔴 The conflict Aga must resolve

This action says add an offer to the HTML. Queue row NIC-88 says the opposite: "The HTML is already correct: this is plaintext regeneration, NOT a copy rewrite" — i.e. delete the ghost from the plaintext so both surfaces agree that there is no offer.

Both cannot be right. The 5 Aug pass found this pattern inverted on 967 TMA | Welcome Sequence After LEAD MAGNET: the HTML was the new, deliberately offer-free email and the plaintext was a stale leftover. If that holds here, these arcs were intended to be offer-free — and §3.5's reading, that they replaced the app-download-then-sell funnel and should sell, is the strategic case for the other direction.

✅ AGA RULED, 6 Aug 2026 — and it dissolves the conflict

"Yes — all welcome sequences should end in a launch sequence."

Neither side of the conflict was the right answer, and her ruling supersedes both.

  • The welcome arcs stay educational. We do not bolt an offer into the middle of them — so this action, as written, is withdrawn.
  • NIC-88 is correct as hygiene and proceeds: regenerate the plaintext so both surfaces agree there is no mid-arc offer. That kills the ghost rather than feeding it.
  • The sell moves to the end. Every welcome arc hands off into a launch sequence, which is where the priced offer, the real deadline and the close live.

This applies to all five welcome-shaped arcs, not the two named here750 TMA | Welcome Sequence After Quiz, 967 TMA | Welcome Sequence After LEAD MAGNET, 988 TMA | Welcome Sequence AFTER APPSIGNUP, 992 TMA | Welcome Sequence AFTER APPSIGNUP AB TEST Aug4th and 766 Facebook Lead Form | LM: Building Muscle After 40 |.

Do this now

Run NIC-88's plaintext regeneration across all three ghost arcs including 766 — never a mix, which is what produced the ghost in the first place. Then build the hand-off: each welcome arc's last step exits into 760 School of Strength (NEW) or the new PLF arc, per action 2. That is now a structural job, not a copy job.

5 Move the ask in 973 Nurture Sequence 1 NEW COPY FROM CLAUDE to ~email 7LARGELY MOOT · VALUE MOVED TO ACTION 3
Claimed, 5 Aug

Move the ask from email 18 of 23 to ~email 7, where 751 Nurture Sequence 1 proved it works. Restores an offer to ~11,000 people getting none. Single-slot, EVOLUTION LAW compliant. Effort: Low.

Verdict

Every diagnostic claim is confirmed. The cash claim is not — those ~11,000 people are no longer in this sequence. Fixing it today would restore an offer to seven people.

What I opened
All 23 send steps of both arcs with per-step send_amt and uniquelinkclicks · contactAutomations occupancy · the automations meta.starts trigger map · offer_reach_check.py.
What it returned — the diagnosis holds exactly
  • The ask is at email 18 of 23 (step 35 of 45) ✅ · 0 sends ✅ · reach 0.0%
  • Send-decay reproduces to the number: 10,262 → 6,748 → 3,657 → 1,688 → 39 → 21 → 0. The last email that ever sent is number 15. Emails 16–23 have never delivered once.
  • 751 Nurture Sequence 1's first ask is at email 7 of 12 ✅, and 1.25% is the best CTR of any offer email in the estate — I ranked all 21 that have ever sent, and it tops them ✅
🔴 Why the cash claim no longer holds
  • 973 Nurture Sequence 1 NEW COPY FROM CLAUDE now holds 42 records — 7 active. The migration in action 3 removed 11,014.
  • Its entry trigger type reads none. It is taking no new entrants; entered has not moved since 5 Aug.
Two numbers in §3.6 that need restating

"Reached the offer — 14,033, 67% of entrants" mixes denominators. 14,033 ÷ 24,838 entrants = 56.5%; ÷ 21,223 first-email sends = 66.1%. The instrument's reach for 751's first ask is 74.3%. The 67% figure is against sends, not entrants.

"1.25% — best in the estate" is true of offer emails only. 751 Nurture Sequence 1 email 2 clicks at 1.83% carrying no offer.

Do this now

Demote NIC-86 and fold its intent into action 3. The lesson — put the ask at email 7 — is exactly what action 3 should apply to 758 Nurture Sequence 2, where the 14,609 people actually are.

6 Mint a non-guessable per-campaign coupon codePREMISE REFUTED · RECOMMENDATION STANDS
Claimed, 5 Aug

Only two coupon ids exist in 8 years (promo, getstarted50off2018), both undifferentiated. This makes invoice.discount.coupon.id a campaign-level revenue key — cheaper and faster than NIC-77, no dev dependency. Effort: Low.

Verdict

🔴 The headline fact is wrong. There are 1,109 coupons, not two. But the recommendation survives — and it is easier than claimed, because the convention it proposes already exists and is already working.

What I opened
GET /v1/coupons?limit=100 paginated to exhaustion on the live account (acct_1Br03N…), plus /v1/promotion_codes. The second Stripe key in .env.local returns 403 and could not be read — stated, not assumed.
What it returned
  • 1,109 coupons exist, oldest 21 Nov 2018, newest today.
  • Only 21 have ever been redeemed, across 6,552 redemptions.
  • The defensible version of the claim: getstarted50off2018 (3,128) + promo (1,507) = 4,635, or 70.7% of every redemption in 8 years. That is concentration, not scarcity.
  • 1,088 coupons have zero redemptions — overwhelmingly auto-minted 30%-off codes with random ids and random 7-character names, one every few days since 2025. That is its own hygiene finding.
🟢 The convention already exists — and converts
Coupon idRedeemedCreated
tma_quiz_97_once5730 Jul 2026
tma_v3_50off_once1017 Jul 2026
tma_quiz_50off_once32 Aug 2026
tma_v3_30trial_once224 Jul 2026

Named, purpose-scoped, non-guessable coupon ids are already in production and already attributing. So this action is not inventing a scheme — it is extending a proven one from checkouts to campaigns.

Do this now

Mint tma_bcast_<campaign>_once for the action-1 broadcast and read invoice.discount.coupon.id. It gives that send its own revenue key with no dev dependency — which is the whole point of the original recommendation, intact.

7 Fix AUTO_PREFIX in sequence_scoreboard.pyDONE 5 AUG 2026
Claimed, 5 Aug

Fix AUTO_PREFIX so the big sequences are visible — otherwise the fleet keeps optimising 2,495-send sequences, blind to 54,826 entrants. Effort: Low.

Verdict

Executed the same day, and more thoroughly than the action asked for.

What I opened
tools/email-analytics/sequence_scoreboard.py · tools/email-analytics/offer_reach_check.py · data/email-analytics/campaign_automation_map.json · the fleet ledger entry of 5 Aug 21:01.
What it returned
  • AUTO_PREFIX now sits at line 124, not 107, and is explicitly demoted in the source: "🔴 THIS IS A FALLBACK, NOT THE SOURCE (fixed 5 Aug 2026 — it was the source until today)."
  • The real fix is a new instrument: offer_reach_check.py walks the automations' own send blocks, so nothing depends on a campaign name any more.
  • It writes campaign_automation_map.json231 campaigns mapped on today's run. Previously 231 of 254 campaigns, including 100% of the offer emails, were invisible.
  • 973 Nurture Sequence 1 NEW COPY FROM CLAUDE is now visible on the board at 12,141 sends.
Do this now

Nothing. Worth knowing that the EVOLUTION LAW's inputs changed on 5 Aug, so any "worst eligible slot" named before that date was chosen from the blind board.

8 Adopt the HTML-first audit ruleADOPTED IN CODE COUNTS NEED RESTATING
Claimed, 5 Aug

Never assert an offer without checking the HTML surface. 47 of 236 emails are divergent. This defect class produced a wrong claim in this very document. Effort: Low.

Verdict

The rule is right, is now enforced in code, and I applied it throughout this pass. The specific counts do not reproduce — they are regex- and corpus-dependent, and the corpus has since changed.

What I opened
All 258 messages in the 24 wired automations, HTML and plaintext held apart, then compared for offer-link presence and deadline language independently. Cross-read against offer_reach_check.py's own divergence warnings.
What it returned
MeasureDoc, 5 AugThis pass, 6 Aug
Corpus236 live emails258 in wired automations (246 in active ones)
Divergent4772 on my definition
Deadline in plaintext only3411
🔴 Offer link in plaintext onlynot separated52

Two honest reasons the numbers move. The corpus shrank when Aga deleted 983 J4 Lifetime· Checkout Abandoner and 987 LIFETIEM SALE | EXITPOPUP- Tag Added:lifetime_checkout_exit_new, and grew as arcs were edited; and "deadline language" has no canonical regex, so the count is a function of the pattern chosen.

🔴 The finding gets worse, not better, when the two classes are separated. The dominant defect is not the missing deadline — it is that 52 emails carry an offer link only in the plaintext, which is the mechanism behind every GHOST OFFER verdict in action 4.

Do this now

Restate AGA-106, which currently asserts the un-reproducible "34". Any count of this class must ship with the regex and the corpus definition beside it, or it will drift again. The rule itself needs no change — it is already a gate in offer_reach_check.py.

9 Diagnose the −81% broadcast audience collapseREFUTED · RETIRE THIS ACTION
Claimed, 5 Aug

Diagnose the −81% broadcast audience collapse — an offer is worthless without an audience. Effort: Medium.

Verdict

🔴 There was no audience collapse. This action was already refuted by the correction appended to §3.8 of this document, and the live send record confirms it independently. It should be struck and replaced.

What I opened
All 659 real broadcasts — campaigns with no parent automation and send_amt > 0 — ordered by send date. That filter is the whole point: it separates broadcasts from drips, which is exactly the confusion that produced the original claim.
What it returned
  • The six-point "−81%" series was six drip sends inside 973 Nurture Sequence 1 NEW COPY FROM CLAUDE, not six broadcasts. It is §3.6's cohort send-decay measured a second time on calendar dates.
  • The list did not shrink. The 2 Jul launch reached 44,747. The engaged-leads tier held 12,023–13,460 right through 12 Jul — the last broadcast day.
  • The real problem is a famine. Nothing at all has gone out since 12 July 2026 — 25 days.
Do this now

Retire action 9 and read it as action 12. The number is now owned: Core/Mid/Dormant tier sizes belong to the tma-broadcast-cadence-owner seat, weekly. Nothing needs diagnosing — something needs sending.

10 Wire the orphaned evergreen deadline arc (3479, 3495, 3499)CONFIRMED ORPHANS · FOLD INTO 2 + 3
Claimed, 5 Aug

Wire the orphaned evergreen deadline arc — the launch mechanics are written; they are simply unconnected. Effort: Medium.

Verdict

The three named campaigns are genuine orphans, exactly as described. But the action is now largely redundant, and §3.11's orphan list contains two entries that are not orphans at all.

What I opened
GET /api/3/campaigns/<id> for all seven §3.11 campaigns, reading status, send_amt and the automation field, then the HTML body of each.
What it returned
CampaignStatusParent automation
3479 "Last chance: Your personalized training at half price"draft, 0 sendsnone — true orphan ✅
3495 "50% off expires at midnight (final warning)"draft, 0 sendsnone — true orphan ✅
3499 "The cart is closed (but this isn't goodbye)"draft, 0 sendsnone — true orphan ✅
🔴 2997 "Cart Abandonment | 50% Off"active756wired, not an orphan
🔴 3150 "The training built for you — now half price"active758belongs to the sequence in action 3

§3.11's claim about 3495 holds on the strict surface: its HTML carries "$157" and "$78.50" together with two real /50promo/ hrefs and five deadline phrases. It is the most explicit annual sell we have written, and it has never reached a human. 3499 correctly carries no offer — it is the cart-closed email.

Why it is now redundant

We do not need a second evergreen deadline arc. 760 School of Strength (NEW) is already wired, already carries real deadline mechanics, and already grades OK on reach. Building a second one competes with it for the same traffic.

Do this now

Fold this action into 2 and 3. Use 3150 for action 3 — it is the ready-made 758 Nurture Sequence 2 offer email. Keep 3479/3495/3499 as the copy bank for the new PLF arc Aga commissioned on 6 Aug, rather than wiring them as a rival sequence.

11 Decide 756 Part 1 - Abandoned Cart ReminderQUEUED · AGA-115 DO NOT UNPAUSE YET
Claimed, 5 Aug

Decide 756 Part 1 - Abandoned Cart Reminder — 0 entrants, finished 50%-off email waiting. Highest-intent audience we have, unserved. Effort: Medium.

Verdict

Confirmed, with one correction and one hard sequencing constraint: turning this on in its current state would ship a compliance breach on the first send.

What I opened
The automation object and its blocks · campaign 2997 and messages 11456 / 13604 / 13605 with their mdate · marketing/email-sequences/756-cart-abandon-e1-REBUILD-2026-08-05.html · the fleet ledger entries of 5 Aug 18:26 and 18:57.
What it returned
  • 0 entrants ✅ and the offer is real — 6 /50promo/ hrefs across its two messages ✅
  • 🔴 Correction: it is status 2 — PAUSED, not active. Part 4 described 756 and 757 Part 2 - Abandoned Cart Reminder as ACTIVE. They are not, and that is why the missing unsubscribe has not yet cost anything.
  • 🔴 The compliance defect is still in the live message. Zero unsubscribe tokens and three raw markdown bolds still rendering**THE BRUTAL REALITY:**, **HERE'S THE DEAL:**, **THE BOTTOM LINE:**. All three messages carry mdate 2025-10-22: untouched.
  • A compliant rebuild exists and passed email_lint.py on its first run — but the ledger records it as "756 rebuild parked". It was never written back to ActiveCampaign.
Do this now

Order matters, and it is not the order the action implies.

  1. Apply the parked rebuild to message 11456 first — it is written, linted and waiting.
  2. Re-run email_lint.py against the live message, not the file.
  3. Only then does Aga's on/off ruling on AGA-115 become safe to act on.

Unpausing before step 1 sends a CAN-SPAM/GDPR breach to the highest-intent audience we have.

12 Re-establish a standing promo cadenceAGA RULED 6 AUG CALENDAR TO BUILD
Claimed, 5 Aug

Re-establish a standing promo cadence — the one selling motion that demonstrably still works. Effort: Aga's call.

Verdict

Still Aga's call, but it is no longer an open-ended one. The doctrine, the owner and the collision checker were all built on 5–6 Aug, and she has already ruled the pricing posture. What is missing is a calendar.

What I opened
docs/company/ANALYTICS/BROADCAST_CADENCE_AND_COLLISION_DOCTRINE_2026-08-05.md and its HTML twin · tools/retention/send_collision_check.py · the tma-broadcast-cadence-owner seat · the broadcast history · the fleet ledger.
What it returned
  • The doctrine exists — how often we broadcast on top of the live automations, to which engagement tier, and how a double-send is prevented. Every number in it was measured, not assumed.
  • The owner existstma-broadcast-cadence-owner, now a blocking seat before any campaign or promo burst, and the owner of the weekly tier sizes.
  • The checker exists and runssend_collision_check.py was run on 6 Aug against the proposed action-1 broadcast and returned within caps for a Core send.
  • Aga already ruled the posture on 5 Aug: new-member window plus calendar sales, with $157 remaining the anchor.
  • The evidence for "demonstrably still works" is the promo calendar — but note the honest asymmetry recorded there: the May 50%-off netted ≈+$688, while the 2–12 Jul lifetime at $297 netted ≈+$13,800.
✅ AGA RULED, 6 Aug 2026 — the standing question is answered

"It's 50% off annual, and we will be having evergreen AND calendar events."

So it is not either/or. Both delivery mechanics run, against one price.

  • 50% off IS the annual price for a new member — which the data already said: 90.7% of new annual sales landed there and zero ever sold at $157.
  • Evergreen — the per-contact launch window every welcome arc now hands off into. This is what 760 School of Strength (NEW) already does, with a real per-contact deadline.
  • Calendar — declared, dated promo bursts on top, owned by tma-broadcast-cadence-owner and cleared by the collision checker.
  • $157 remains the anchor, per her 5 Aug pricing ruling. The discount is the window, never an ambient price tag.

This is consistent with OFFER_LADDER rung 3, ratified by Aga the same day under AGA-112: "50% off — the new-member window", with exactly two legitimate placements — a real per-contact deadline, or a declared calendar burst. Nothing ambient.

Do this now

The cadence owner turns this into a dated calendar, and the evergreen half is delivered by actions 2, 3 and 4. Nothing is blocked on a decision any more.

📄 The thirteen actions exactly as proposed on 5 Aug — unedited record

Preserved verbatim. The re-verification above does not overwrite the original recommendation — it sits beside it.

#ActionWhyEffort
0Stop the live defects in Part 4 — especially trial copy on charge-immediately links, 975 Onboarding | After The Purchase's leaked scaffolding, 756 Part 1 - Abandoned Cart Reminder's missing unsubscribe, 987 LIFETIEM SALE | EXITPOPUP…'s $297→$497 mismatchLegal, deliverability and trust exposure, independent of any strategy callLow
1Send one 50%-off broadcast to the engaged listBiggest single cash lever and the clean falsifier — read the $78.50 count for 72h and causation is settled either wayLow
2Route traffic into 760 School of Strength (NEW) — the complete evergreen 50%-off launch arc that already exists and has 29 lifetime entrantsWe do not need to build an evergreen launch. We need to point people at the one we own. Cheapest cash in this documentLow
3Put a real HTML offer into 758 Nurture Sequence 2 BEFORE migrating anyone else into itAs built, the migration moves 14,619 people from a weak offer to noneLow
4Add HTML offer hrefs to 988 TMA | Welcome Sequence AFTER APPSIGNUP and 992 TMA | Welcome Sequence AFTER APPSIGNUP AB TEST Aug4thThese replaced the app-download-then-sell funnel and carry no clickable offerLow
5Move the ask in 973 Nurture Sequence 1 NEW COPY FROM CLAUDE from email 18 of 23 to ~email 7, where 751 Nurture Sequence 1 proved it worksRestores an offer to ~11,000 people getting none. Single-slot — EVOLUTION LAW compliantLow
6Mint a non-guessable per-campaign coupon code and put it in the campaign linkOnly two coupon ids exist in 8 years (promo, getstarted50off2018), both undifferentiated. This makes invoice.discount.coupon.id a campaign-level revenue key — cheaper and faster than NIC-77, no dev dependencyLow
7Fix AUTO_PREFIX in sequence_scoreboard.py so the big sequences are visibleOtherwise the fleet keeps optimising 2,495-send sequences, blind to 54,826 entrantsLow
8Adopt the HTML-first audit rule — never assert an offer without checking the HTML surface47 of 236 emails are divergent. This defect class produced a wrong claim in this very documentLow
9Diagnose the −81% broadcast audience collapseAn offer is worthless without an audienceMedium
10Wire the orphaned evergreen deadline arc (3479, 3495, 3499)The launch mechanics are written; they are simply unconnectedMedium
11Decide 756 Part 1 - Abandoned Cart Reminder — 0 entrants, finished 50%-off email waitingHighest-intent audience we have, unservedMedium
12Re-establish a standing promo cadenceThe one selling motion that demonstrably still worksAga's call

5.2 What this pass changed about the list itself

Three of the thirteen were wrong in a way that mattered, and all three failed the same way — a number was carried forward instead of re-opened.

And the sharpest lesson is in action 0. The 5 Aug fix pass closed nine defects and verified its own work with charged until day 8 = 0. The copy says till. A clean verification and an unfixed defect looked identical — which is the same failure this document's §2.2 already recorded once, in a different costume.

Re-verification run 6 Aug 2026 against live ActiveCampaign (32 automations, 258 messages), live Stripe (1,109 coupons), the live /50promo/ page and its three checkouts, the repo, the tracked queue and the fleet ledger. [UNVERIFIED] and stated as such: whether /50promo/'s second price table renders in a browser; the second Stripe key, which returns 403. The .md twin of this document does not carry this section.

🔴 All email copy for any of the above goes through /email-fleet. Nothing is hand-edited. Any slot change is single-slot per the EVOLUTION LAW. KPI = clicks + conversions, never opens.

The decision only Aga can make — ✅ MADE, 6 Aug 2026

ANSWERED. Aga, 6 Aug 2026: "It's 50% off annual, and we will be having evergreen and calendar events" — plus "all welcome sequences should end in a launch sequence."

She chose (a), with the delivery mechanic specified: 50% off is the standing annual offer for a new member, delivered as a per-contact evergreen launch window at the end of every welcome arc, plus declared calendar bursts on top. $157 stays the anchor; the discount is a window, never an ambient price. The "worst of both" described below is now closed — it no longer depends on someone remembering to press send.

The original framing is preserved below as the record of the question.

If 90.7% of new annual sales are at 50% off, and full-price annual has never sold to a new customer, then either:

Today we have the worst of both: the discount is our real price, but it only goes out when someone remembers to press send.


PART 6 — WHAT IS VERIFIED, AND WHAT IS NOT

Verified live this session

Every automation status, entered count, email count, real subject and real body · every campaign cdate/sdate/ldate/send_amt · contact creation per month · the Stripe price series, subscription ages and coupon objects · /50promo/ content and its checkout targets · the scoreboard's filter behaviour.

Liveness proof: 750 TMA | Welcome Sequence After Quiz ticked 19,754 → 19,755 between two reads during this session.

[UNVERIFIED] — stated, not guessed

Causation status

STRONG temporal association, NOT proven. Email→revenue is dark: the pe= recipient pipe is built-and-empty (NIC-19 change 5 / NIC-77), so everything here uses the price point as a proxy, not attribution.

The falsifier is cheap and is also the biggest cash lever: send one 50%-off broadcast to the engaged list and read the $78.50 count for 72 hours.

Caveats on the money

Gross, before fees and refunds (all-time refund rate ~9.88%, not re-verified this session) · Stripe only, excluding Apple, Google Play and ThriveCart · 2026-08 covers 5 days, n=22 charges — never annualise it · the Feb–Mar 2026 Android billing migration off Stripe makes cross-boundary Stripe totals invalid, though it does not affect the web-only $78.50 line · the 21.7% renewal rate is a cohort-matured measurement on 189 sales; the "177 active / 197 canceled" split across all 377 subs is a mixed-age stock and is not a retention rate.

Early counter-signal, too small to bank: 1–4 Aug produced 4 new annual sales at $97 — the restored quiz tier working. n=4 over 4 days. Do not annualise; and ~65% of paywall views still miss the annual tier (AGA-56).


PART 7 — WHERE THIS SITS

This does not replace the five-concurrent-changes diagnosis. It sharpens change C, gives it a mechanism, and reassigns the weight:

Leg of the email sellWhat happenedOwns
Broadcast (the spikes)Last 50%-off broadcast 31 May 2026. None since. Nothing at all since 20 Julythe June–July collapse
Always-on (the drip)973 Nurture Sequence 1 NEW COPY FROM CLAUDE buried the ask at email 18 of 23; 758 Nurture Sequence 2 has none; 988 TMA | Welcome Sequence AFTER APPSIGNUP and 992 TMA | Welcome Sequence AFTER APPSIGNUP AB TEST Aug4th have no HTML offerthe floor — why it never recovers

June's decay begins in week 1 of June, three weeks before 19 June — a single deploy cannot produce that slope. It is the tail of the May promo decaying with no follow-up. 973 Nurture Sequence 1 NEW COPY FROM CLAUDE went live 21 May and on-ramps finished switching ~7 June; the old arc's first ask sat at ~email 27, so the first no-offer cohorts reached ask-time late June onward — exactly when the line failed to recover.

Related records: june_break_five_concurrent_changes_2026-08-05 · reference_promo_calendar_permanent · email_offer_layer_forensics_2026-08-05 · broadcast_cadence_and_html_plaintext_divergence_2026-08-05 · CHECKOUTS_V3_URL_MAP_AND_USE_CASES_2026-08-04.md