Callum's idea: give each trial a short, expiring offer of their own, instead of waiting for the calendar month to end. My read: worth testing, but not for a big conversion lift. Deadlines clearly change when people pay. Most of the extra buyers they bring are people who pay on sign-up day, so a code late in the trial will probably add only 1 or 2 points. The real prize is matching today's conversion without a calendar-month sale.
Someone who signs up on the 25th meets the month-end deadline on day 5 of their trial. Someone who signs up on the 3rd meets it on day 27, after the trial has ended. A personal deadline gives everyone one at the same point in their trial.
| Trial day | Payers | Per day | In month's last 5 days |
|---|
The sign-up day is the biggest single day (24% of payers). After that, the last 3 days of the trial are the busiest stretch: a deadline people already have. Today's trial-end email offers $1 for the first month with code DOLLAR1, which has no end date.
| Signed up | Sign-ups | During trial | After trial | 30-day total |
|---|
Whoever gets the deadline inside the trial buys inside the trial. Early-month sign-ups partly catch up when the month-end arrives. But most of the 3.3-point gap is sign-up-day buyers (4.3% vs 1.9%), many of whom probably signed up because of the offer. Leave them out and it's 11.3% vs 10.1%, small enough to be chance. A code sent late in the trial reaches that second group.
Every trial already ends on a known date, and the last days of the trial are already the busiest stretch after day 0. Swap today's trial-end offer for the personal one, and make it end with the trial. That's honest, needs no new trigger, and changes one email we already send.
A trigger on the second session is a good second arm once the plumbing works. It lands earlier, closer to day 0, where buyers cancel within 30 days more often (10.1% vs 6.6%).
Open the offer on the morning of day 13 and close it at 11:59pm on day 14, in the customer's time zone. Practitioners are with clients all day, so a code that arrives at 9am and dies 24 hours later can be missed entirely.
The last day does the work either way. In offer months the final day is always the biggest (53 code starts on 31 Aug, 55 on 30 Sep). Two days gives us one launch and one last-day reminder.
The code is single-use, tied to their account, and actually expires. Then the test group gets no other offer messages until day 45: no calendar emails, no $1 win-back from campaign 73. If another offer turns up a week later, the deadline was never real.
Split new US trials 50/50. A small cohort can only tell us if something breaks, not whether it converts better (see the sample sizes below).
A clickable mock for one test-group trial that started on Tue 6 Oct. The countdown is live. Copy is a first draft; no prices are shown because the annual list prices still need checking.
Practice owners, spam-screened, about 1,650 a month (1,628 in September). Split at random when the trial starts.
Left out: the hand-run lifecycle cohort. Everyone else who is split counts in the read, including people who pay before day 13 and never see the offer.
| Paid within 30 days of sign-up Primary | Same definition as Callum's forecast. US baseline is about 14% (13.6% for May–Aug sign-ups). Pass = the test group is no more than 3 points below control. |
| Cash collected per sign-up, first 90 days | An annual plan collects a year up front; $1 first month collects $1. Conversion alone would undersell the annual offer. |
| Paid on days 31–45 | Did the deadline lose people who would have bought later, or only bring purchases forward? |
| Refunds, cancels and active days by day 60 Guardrail | Callum's point: people buy at peak excitement, then stop using it. Annual locks the revenue but can leave unhappy customers. |
| Unsubscribes Guardrail | The test adds a last-day email and text. |
| What we can show | Per group | Weeks |
|---|---|---|
| No worse than −3 points | ~1,650 | ~9 |
| No worse than −2 points | ~3,700 | ~20 |
| Better by +3 points | ~2,280 | ~12 |
| Better by +2 points | ~5,000 | ~26 |
| Better by +1 point (best guess at the real size) | ~19,500 | 100+ |
We can't afford to prove a 1-point lift. We can show the test group is no worse in about 9 weeks, plus whether it collects more cash up front. The downside is small: 2 points worse for 9 weeks costs about 35 subscriptions in total, under 10% of one month (estimate).
A random 50/50 split when a US trial starts, saved on the profile. The test group is excluded from offer broadcasts, campaign 1's trial-end offer email and campaign 73. Two emails, one in-app and one text, built as drafts.
A 50%-off-the-first-year coupon, with a single-use promotion code per person that's tied to their Stripe customer and expires at the end of day 14. Stripe promotion codes support all three. Still to check: how to limit it to annual plans. If Carlos builds it, he needs Stripe write access.
When someone enters the test group, an n8n step creates their code and writes the code and its end time to their Customer.io profile. Emails link to checkout with promoCode=, the same way the October offer links work.
Customer.io already records which promo code each new subscription used (automations 106 and 107). Add the group to PostHog as a person property so the day-45 read is one query.
"Just for you" and "goes back to 6 months" are only true if 50% off a year isn't public that month. October's BREATHEANNUAL is exactly 50% off 12 months, on the site banner.
October has BREATHE and the hand-run lifecycle cohort. November likely has Black Friday, which the test group would skip. That's the real question ("can we leave the calendar?"), but it's the hardest month to win.
A full 50/50 split shows "no worse than 3 points" in about 9 weeks of sign-ups. A small group can't read conversion at all, but it does catch broken codes, links and exclusions.