The billing model

Two layers, and the page is careful to say which is which. What runs is a reading meter: a few pence a page from credit kept in your browser, charged by how far down the page you read, never blocking, with the option to decline and say why. What is designed is paying for provenance rather than pages: a price per verified claim, a share for whoever created the fact, and a snapshot of the vault for a reader who wants the bytes. The first is the same component the newsroom runs; the second is argued here and built nowhere.

What runs: the reading meter

Every page carries <sg-meter>, SG Meter v1.3.1, vendored under assets/components/ and loaded from this site only. You start with £5.00 of credit in this browser; the balance is in the top bar and goes below zero without anything being blocked. A page costs its price times the share of it you scrolled through, rounded to 5% and never less than a tenth, once per page per session. At the foot of each page you can rate how useful it was, which sets the price from free to double, or decline to pay with a reason. Nothing leaves the browser: no account, no cookie, no server of ours, no analytics listening to the meter's events. Your reading account shows the history and exports it as JSON.

KindPrice, read to the endPagesWhy
story2pthe front page, the flaws, the timeline, the leak, the discovery, the exploitation signals, the playbookPages assembled from the vault by agents; the reader pays for the assembly.
analysis3pthe numbers, the claims, the agencies, the affected systemsPages where the site did work a reader cannot do by reading one source: counting, comparing, converting times.
briefing5pthe six briefingsThe most compressed form of the work: one page for one reader's decision.
evidence1pthe sources page, the graphReference pages. Cheap, because the value is in checking, not reading.
free0pthe method, the team, the billing model, corrections, the release history, adminThe site's own account of itself is free; charging for it would be charging to be checked.

Top-ups are £5.00 of credit on a payment page. No payment link is configured for this site yet, so the top-up page runs the meter's simulated cart and says so. When a link is added, the credit is added on the return page without verifying the payment, because a static site has nowhere to receive a webhook; the meter's security model is explicit that this is an honesty box, not a paywall.

What is designed: paying for provenance

None of this is live. The newsroom's pages on paying the fact creator and provenance as the product carry the argument; this site is the first with a claim table granular enough to price.

What this story cost to assemble, as a model

A model of what this story cost to assemble, in units counted from the vault and the repository. The unit prices are assumptions, labelled as such; the counts are not.

UnitCountAssumed price£Why that unit
sources captured1445p7.20one headless-browser capture with six files and their hashes
captures (dated page states)1375p6.85the same page captured again is a new unit, because the series is the record
source notes written14320p28.60an agent reading a page and writing what it says, who says it and what is odd
claims traced7010p7.00one claim, its status and its sources
timeline events dated685p3.40one event, its time, its source and whether the time was stated or converted
pages built410p0.00the build is deterministic and costs nothing to run again

Total at those assumptions: £53.05. The counts are from the data files named; the prices are the site's assumptions and a reader is invited to substitute their own. What the model leaves out is the editor's time and the model inference behind each agent run, neither of which is counted anywhere yet; the honest column on this is not measured.

The prices, as data

{
 "storageKey": "php-story.meter.v1",
 "start": 500,
 "symbol": "\u00a3",
 "prices": {
  "story": 2,
  "briefing": 5,
  "analysis": 3,
  "evidence": 1,
  "page": 1,
  "free": 0
 },
 "topup": {
  "amount": 500,
  "link": ""
 }
}

This block is data/billing.json, which is also what every page's meter config is generated from, so the table above and the meter cannot disagree.