TRANSPARENCY
Where the money goes.
Privacy-by-construction funding feed. Every number on this page is bucketed, suppressed below a small-cohort floor, and rebuilt hourly from the private payment tables — no individual contribution is reconstructable from this output, ever.
01 · CURRENT STATE
FUNDING · ONE-TIME
Where we're at.
- Lifetime
- This month
Building toward the small-cohort floor. The feed surfaces totals only once enough one-time supporters have chipped in that no individual contribution is reconstructable.
SUPPORTERS · RECURRING
Who's backing this.
- Active count
- MRR estimate
Building toward the small-cohort floor. The feed surfaces counts + MRR only once enough subscribers exist that no individual subscription is reconstructable.
02 · WHAT YOU SEE
- Lifetime raised + this-month
raised — both in AUD, both bucketed (e.g.
"A$1,250–A$1,500"). Buckets only. - Active supporter count, bucketed at 10 / 25 / 50 / 100 / 250 / 500 thresholds. Never an exact count.
- Estimated MRR rounded to A$25 buckets, suppressed entirely below the small-cohort floor.
03 · WHAT YOU NEVER SEE
- Any individual contribution amount paired with anything that could anchor it to a person — no name + amount, no exact timestamp, no payment-method fragment.
- Tier-by-tier subscriber breakdown.
- Geographic distribution narrower than "global".
- Any metric whose underlying cohort is too small to publish safely. Metrics that can be divided to reveal a per-person average (like MRR) carry a stricter floor than plain buckets do. Below either, the row simply doesn't appear.
04 · DONOR WALL
DONOR WALL · OPT-IN
Folks chipping in.
No approved names yet. Filling the "show as on /transparency" field on /supporter is the only way onto this list — and every name goes through moderation before it appears here. There's no auto-publish path.
05 · WHAT IT PAYS FOR
WHAT IT PAYS FOR
The actual hosting bill.
Per-service breakdown of the recurring cost of running this site. Free-tier rows are kept in so the inventory is honest about what's running, not just what's paid for.
| Service | Monthly (AUD) | Cadence |
|---|---|---|
| Cloudflare Workers + D1 + R2 + KV Compute, database, object storage, and KV cache that serves every .rsc fetch. Headroom: Workers crosses 100k req/day on the free tier; D1 crosses 5M reads/day; R2 crosses 10 GB stored. | Free tier | monthly |
| Resend (transactional email) Magic-link sign-in delivery. Only outbound traffic. Headroom: 3,000 emails/month threshold on the free tier. | Free tier | monthly |
| Cloudflare Pages Static site hosting for the marketing + docs pages. Headroom: 500 builds/month or 100 GB egress threshold. | Free tier | monthly |
| Stripe + Australian GST Payment processing fees + 10% AU GST on AU transactions. Pass-through (per-transaction, not per-month). Headroom: Stripe charges ~1.75% + A$0.30 per AU domestic card transaction; GST is added per Stripe Tax. | Free tier | usage-based |
| Domain (mikrotikfilters.com) Registrar fee for the domain, amortised across 12 months. | A$2 | amortised |
| Fixed monthly total Excludes usage-based pass-through (Stripe fees + GST) — those are paid per-transaction, not from the supporter pool. | A$2 | total |
06 · COST vs FUNDING TREND
COST vs FUNDING
Monthly trend.
Operator's fixed monthly cost vs estimated funding (one-time donations + supporter MRR), bucketed and suppressed below the same small-cohort floor the rest of this page uses. Months below the floor render as gaps, never zeros.
Building toward the first month of data. The chart fills in once the aggregator writes a funding snapshot above the small-cohort floor.
07 · COMMERCIAL EVOLUTION POLICY
As the project takes on commercial revenue streams beyond community donations — a Business tier, consulting, paid sponsorships, content sales — this page evolves rather than goes away. The policy below pre-commits to what stays public, what moves to aggregate-only, and what becomes private, so commercial growth never accidentally undermines the trust posture that justifies it. This page is the artefact Business-tier customers buy on top of. Hollowing it out would remove the reason the price is defensible.
| Category | Today | As commercial revenue lands |
|---|---|---|
| Aggregate revenue | Lifetime + monthly donation buckets, supporter count, MRR estimate, recent-activity feed. | Same shape, plus a per-stream split (community / business / consulting / sponsorships) at bucket granularity. k≥5 cohort floor stays on every per-day bucket. |
| Operating costs | <CostBreakdown> line items
— infrastructure, payment fees, accounting.
| Expanded as new line items land — contractor work, accounting, insurance, tooling. Every dollar of cost stays itemised. |
| Founder compensation | Not yet surfaced. | New explicit line: monthly maintenance stipend (capped, use-it-or-lose-it on substantive commit activity), deferred-build-cost paydown, annual ceiling. Below-market rate disclosed inline. Public in the same cost-breakdown surface as everything else. |
| Reserves | Implicit in the net-position calculation. | Explicit: "N months of runway at current cost, target M months." Once the reserve target is hit, new subscriptions pause automatically until existing ones cancel. Pre-empts the "they're sitting on cash" reading by making surplus self-capping. |
| Sponsors | None today. | Public: sponsor name + start date + bucket amount range, on this page. Private: exact pricing of any given deal (negotiation leverage preserved). Sponsorship policy published in full before the first deal lands — per the project's risk-mitigation posture. |
| Business-tier customers | n/a. | Aggregate-only: total customer count in a k≥5 bucket ("5–9", "10–24", "25–49"), same posture as the supporter-count card today. Private: individual customer identities unless they explicitly opt in to a "trusted by" surface (not currently planned). The Business-tier signature on a request never reaches public surfaces. |
| Consulting | n/a. | Aggregate-only: quarterly income at bucket granularity, blended into the per-stream split. Private: client identities, scope, and per-engagement values. Operator-client confidentiality is non-negotiable; the absence of detail here is deliberate. |
| Donor identities | k≥5-floored opt-in donor wall on this page; names only, never amounts or dates. | Unchanged. The opt-in shape works the same way for supporters of any stream — donate, subscribe, or Business tier, the choice to publish a name stays opt-in, name-only, never-amount. |
| Internal business plan | n/a. | Stays internal. Forward-looking projections, gate criteria, churn assumptions, sensitivity cases, and operator wage modelling live in a separate document the operator uses for governance. This page is the backward-looking ledger; the business plan is the forward-looking thesis. Different audiences, different documents. |
The rule that decides each line
Anything someone pays the project for as a recurring product → public, bucketed. Anything that involves commercial negotiation with a specific counterparty (sponsor pricing, consulting client scope) → private. Anything that affects how the operator is compensated → public, with caps and rates disclosed.
Why "evolve" rather than "drop"
Commercial revenue rides on the trust posture, not the other way around. A Business-tier customer pays A$50/mo because they can already read the books of the free service they trust. Removing this page to "go commercial" would mean charging commercial prices for a closed-source threat-list vendor that looks like every other commercial threat-list vendor — the moat would be gone, and so would the conversion mechanism.
What happens if the policy changes
Material changes get a banner at the top of this page for at least 30 days before they take effect, and the policy version anchor below moves forward. Same posture as /privacy: editorial fixes (typos, clarifications) update the date silently; anything that changes what is public versus private gets the banner.
Policy version: 1.0 · First published
v0.118.2 ·