Failed payments under 5%
Routing, SCA, dunning grace and dead-letter replay are built. Unmeasured until webhooks are re-provisioned and the import gives a baseline.
For the developers and admins who own FMS. Not in the site menu. Everything on this page is generated at build time from the repository records, so it is what is committed. Status as of 2026-10-01.
The five success metrics from the JX Fund grant (§4.7). Built, not live means the code is merged and tested but the outcome cannot be measured until cutover.
Track 1 · Payments · due Oct 2026
Routing, SCA, dunning grace and dead-letter replay are built. Unmeasured until webhooks are re-provisioned and the import gives a baseline.
Track 2 · Retention · due Oct 2026
Built 2026-09-29 (decision MIG-2 = B): FMS sends ends-soon, ended, cancelled and welcome emails; the win-back campaign goes from Mailchimp to the fms:lapsed tag with a checkout link that fills in the code; the Dashboard counts Won back. Switched on and sent after cutover. The grant sets no number; the owner is to set one.
Both tracks · due Nov 2026
Reports and Dashboard growth are instrumented. The baseline comes from the live import.
Track 2 · Retention · due Oct 2026
Live at archive.frontiermyanmar.net since 2026-09-24 with the back catalogue restored from 2020. Access is per plan since 2026-09-27 (decision 13): Fanatic and teams out of the box; every paid member once Friend and Follower are ticked on Plans.
Track 1 · Payments · due Sept 2026 slipping
Team invoice checkout built 2026-09-12. Goes live with cutover, so this date slips to the cutover date.
| Track | Done | In progress | Next |
|---|---|---|---|
| Track 1 Payment infrastructure | Multi-account Stripe routing3DS/SCA on every surfaceRenewal SCADunning graceTeam invoice checkoutStripe importer (resumable)Net revenue ledgerLive-write brake | — | Webhook re-provisioningLive-fire sessionFailed-payment baselinePrice propagation to StripeFIN-2 test, FIN-4 alertCutover |
| Track 2 Acquisition and retention | Newsletter archive live (2026-09-24)Membership emails + win-back tag (2026-09-29)Discount codesGift membershipsSMTP relay + branded mailGrowth and churn metricsReports with CSV | — | Switch on membership emails after the end-date checkSend the win-back campaignSet a number for metric 2Free-tier conversion campaign |
14 decisions waiting on the owner · 2 risks open at High or Critical · see Decisions and Risk register.
| Page | What it answers | Source file |
|---|---|---|
| Roadmap | The grant frame, what shipped, what is next, the cutover sequence | docs/ROADMAP.md |
| Changelog | Every behaviour, schema, ops or decision change, newest first | CHANGELOG.md |
| Decision board | Who decides what, in plain words: one card per decision, grouped by owner | docs/DECISION-BOARD.md |
| Decisions | Every open and taken decision with its owner, options and pros and cons | docs/DECISIONS.md |
| Risk board | The risks in plain words: what could go wrong, who owns it, what blocks cutover | docs/RISK-BOARD.md |
| Risk register | Scored risks and the cutover blocker checklist | docs/RISK-ASSESSMENT.md |
The scoreboard, timeline, tracks and next steps come from docs/status.json. The timeline's today is the reader's own date, so a phase left open past its end date shows as late until its state is updated in that file. The decisions, risks and changelog panels are parsed from the record files. Edit those in the repository and commit. A push to master that touches them or docs-site/ rebuilds the guide. Links inside the records open the file on GitHub in a new tab.