Credits expire monthly. Reports live as long as your tier does. Tester is a once-per-account first-month trial — enforced server-side, not on the honour system.
Past expires_at the report page renders metadata + a Scan-again button. Costs one credit. Downgrading doesn't retroactively shorten old reports — only new scans pick up the shorter retention.
You can buy the $5 Tester tier exactly once. The server records users.tester_used_at and refuses a second purchase. No honour system.
When you transition from waitlist to active, you land with 2 free scans on the house. Independent of whatever tier you later pick.
The unused 7 credits from last month don't carry into this one. The next month's grant overwrites the balance; it doesn't accumulate.
If you're on Tester and upgrade to any paid tier, the trial ends immediately. Remaining Tester credits expire at tier change.
No self-serve checkout in V1. You reach out, we verify payment out-of-band, an admin flips your tier. Stripe Checkout lands in V2 once first-cohort pricing has settled.
A re-scan from an expired report runs the full pipeline again. It costs the same as a fresh scan — one credit, no replay-cache discount.
expires_at = completed_at + tier_retention on the row. After that timestamp the report page renders metadata only — the analysis body is hidden behind a Scan-again button. If you downgrade later, existing reports keep the retention they were stamped with; only new scans pick up the shorter window.browser-recon.com/r/<id> for the duration of your tier. Sharing is by URL. Re-enable later if a paying user asks.