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.

FUNDING · ONE-TIME

Where we're at.

Lifetime
This month

Updated · bucketed amounts only

SUPPORTERS · RECURRING

Who's backing this.

Active count
MRR estimate

Updated · A$25 MRR buckets · count buckets at 10/25/50/100/250/500

  • 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.
  • 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.

DONOR WALL · OPT-IN

Folks chipping in.

Names only · never paired with amounts or dates · moderation-gated (no auto-publish) · removal is best-effort on the next hourly rebuild (email privacy@mikrotikfilters.com to be removed).

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

Last updated · operator-maintained · numbers reflect the actual recurring bill, not theoretical headroom.

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.

Sourced from public_aggregates_history; values bucketed (donations) or rounded to A$25 (MRR). No exact per-supporter amounts.

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 ·