# Post-launch — 90-day measurement plan

> Creator-only. The other half of `PLAN.md`: PLAN tells you what to
> build, this tells you what to measure once it's live and which
> numbers trigger which actions.
> **Version**: 1.0 · **Adopted**: 2026-05-01 · **Owner**: Michael

This is a runnable monthly checklist, not analytics theatre. Every
metric below has a **threshold** and an **action**. If you're not
willing to execute the action when the threshold trips, drop the
metric — measuring without responding is busywork.

## 1. The five numbers that matter

Every other dashboard, chart, or vanity stat is downstream of these
five. The funnel is short on purpose; pre-PMF traffic doesn't have
the resolution to support more.

| # | Metric | How to compute | Threshold | When tripped |
|---|--------|----------------|-----------|--------------|
| 1 | **Persona engagement** | `demo.run_completed / demo.page_view` per persona | < 30 % for 4 consecutive weeks | Demo isn't running or BEFORE preview isn't compelling. **Action:** check iframe loads; widen BEFORE preview to show pollution clearly; move demo above the fold. |
| 2 | **Demo→CTA intent** | `demo.cta_clicked / demo.run_completed` per persona | < 5 % for 4 consecutive weeks | Demo is impressive but the CTA isn't earning trust. **Action:** add network-tab privacy screenshot; soften the price callout; A-B test eyebrow copy on the CTA card. |
| 3 | **Purchase rate** | `gumroad.purchase / demo.cta_clicked` per persona | < 30 % for 4 consecutive weeks | Visitors click through but don't pull the card out. **Action:** check Gumroad listing renders cleanly; verify refund-policy copy; check that the screenshot on the listing matches the demo they just ran. |
| 4 | **Refund rate** | `gumroad.refunds / gumroad.purchase` rolling 30 days | > 5 % | Buyer expectation mismatch. **Action:** read every refund email; determine if it's a feature gap (build it), a positioning lie (rewrite), or a personal-fit miss (fine, ignore). |
| 5 | **Support load** | email tickets / 100 sales rolling 30 days | > 10 | The product isn't self-serve enough at this price. **Action:** find the top 3 questions; add to in-app onboarding + landing-page FAQ + the persona's saved pipeline. |

These five also map to BUSINESS.md §12 — that doc names the metrics;
this doc operationalises them.

## 2. Monthly review — 30-minute checklist

Block 30 minutes on the first Monday of every month for the first six
months. After month 6 if numbers are stable, drop to 15 minutes
quarterly.

```
[ ] Pull last 30 days of demo events from Cloudflare Web Analytics
[ ] Pull last 30 days of Gumroad sales + refunds export
[ ] Compute the five numbers in §1 per persona
[ ] Note which thresholds are tripped (if any)
[ ] Read every refund email since last review
[ ] Read every support email since last review
[ ] Decide ONE thing to change this month (only one)
[ ] Update CHANGELOG with what was changed and why
[ ] Schedule next review
```

The "decide ONE thing" rule is load-bearing. Pre-PMF traffic doesn't
have the volume to A/B-test multiple changes in parallel — you'll just
confuse yourself about what moved the number.

## 3. Per-persona scoreboard (template)

Maintain in a single text file or spreadsheet. The shape that fits in
a notebook page is the shape you'll actually update.

```
Month: 2026-06
─────────────────────────────────────────────────────────────────
                       Shopify  Bookkeeper  RevOps  Total
Page views                420         180     290    890
Demo runs                 137          59      82    278
CTA clicks                  9           7       6     22
Purchases                   3           2       2      7

Metric 1 (engage)        33%         33%     28%   31%
Metric 2 (intent)         7%         12%      7%    8%
Metric 3 (purchase)      33%         29%     33%   32%
Metric 4 (refund)         0%          0%      0%    0%
Metric 5 (support)         3 tickets  /  100 sales

Tripped thresholds:      RevOps engagement (28% < 30%)

This-month change:       Move demo embed above the fold on revops
                         page; reduce hero text by 40%.

Last-month change:       Added network-tab screenshot to all 3
                         pages.  Result: intent +1.5 percentage
                         points on Shopify, flat elsewhere.
```

## 4. Stage-gate triggers from PLAN.md

Reproduced here so the gate criteria sit beside the metrics that
fire them:

| Trigger | From | Action |
|---|------|--------|
| **First paying customer** | PLAN §4 | Continue. Plan is working. |
| **Zero paid in 90 days** | PLAN §4 | Audit the funnel. Don't add features. Run a small (1-week) outbound experiment to 30 niche-community contacts as a control, even though it stretches the no-touch constraint, to determine whether the bottleneck is reach or conversion. |
| **$5 k/mo MRR** | DECISIONS §8 | Re-evaluate async constraint. Add priority-support tier (PLAN §2.7). |
| **$10 k/mo MRR** | DECISIONS §8 | Revisit time-budget allocation. Decide on tools 06–08 vs. additional bundles. |
| **Marketplace shutdown** | PLAN §4 / DECISIONS §8 | Switch landing-page CTA to own-domain Stripe Checkout. Pre-built; one-line edit. |
| **Streamlit hard direction change** | DECISIONS §8 | Low-probability re-lock. Tk fallback documented. |
| **Burnout signal** | DECISIONS §8 | Stop. Triage. The constraint matters more than the revenue ramp. |

## 5. What we deliberately do NOT measure

These look productive but predict nothing pre-PMF. Don't add them.

- **Bounce rate** — single-page sites have artificially high bounce. Useless signal.
- **Time on page** — landing pages are *supposed* to be quick reads. Long time on page often means confusion, not engagement.
- **Heatmaps / scroll-depth** — no statistical resolution at <500 monthly visitors. Add when you cross 5 k/month.
- **Email open rates** — under §2.7 priority support is the only email channel; opens aren't a buying signal.
- **Social mentions** — vanity. The signal that matters is "did they buy" or "did they come back."

## 6. What we measure once, then trust

Do these once, then let them run for 6+ months without re-measuring:

- **Demo correctness** — once per pipeline release, run all 3 demos
  end-to-end via `tests/test_pipeline.py` and check the output looks
  reasonable. The CI pipeline already does this; nothing to add.
- **Cross-platform install** — once per release, verify the
  PyInstaller bundle launches on Mac / Windows / Linux. After three
  green releases, trust the build pipeline; spot-check on major OS
  updates only.
- **Privacy claim integrity** — once at launch, capture the network
  tab while running the cleaner and host that screenshot at a stable
  URL. Re-capture only when a new tool or dependency is added.

## 7. Per-persona attribution

The buy buttons on every landing page carry `?from=<persona>` query
parameters. Gumroad propagates that into the order metadata. Use it
to attribute purchases:

| persona key | landing page URL | Gumroad query | Source |
|---|---|---|---|
| `shopify-pet` | `/shopify-pet/` | `?from=shopify-pet` | Shopify operator |
| `bookkeeper`  | `/bookkeeper/`  | `?from=bookkeeper`  | Bookkeeper / freelance accountant |
| `revops`      | `/revops/`      | `?from=revops`      | Marketing / RevOps agency |
| `apex`        | `/`             | (no query — use `unknown` bucket) | Generic discovery |

When `unknown` exceeds 30 % of total, add UTM tagging to community
posts and SEO blog backlinks so you can break the bucket apart.

## 8. The four months that decide whether the plan works

Reading PLAN.md §3 + this doc together, the rough script:

| Month | What's running | What we expect to learn |
|---|---|---|
| **M1** (June) | Installers · demo · 3 landing pages · Gumroad live | Whether the funnel mechanically works. Numbers will be noisy; just look for one purchase. |
| **M2** (July) | M1 + community posts in 3 niches + 1 SEO post | Which persona converts. Re-allocate effort to the highest-converting niche. |
| **M3** (August) | M2 + landing-page changes from M2 review | Whether intent-rate moved on the change. Decide tools 06–08 go/no-go. |
| **M4** (September) | M3 + first repeat-buyer signals | Whether Automated Workflows is producing retention as designed. |

By end of M4, the data tells you whether the plan is producing
$1k–3k/mo (BUSINESS.md §6 6-month target) — extrapolated from the
trajectory, not the absolute number.

## 9. The hardest part of the plan to execute

Not the metrics. Not the build. **The "decide ONE thing per month"
rule** — operators with engineering backgrounds chronically pick
three changes per month and conclude nothing because their signal
is muddled. This doc says one. It means one.
