← back to the engine

Methodology & sources

What this tool is, how it is built, what the software does versus what a language model does, and where its limits are. Written to be checked by a sceptical reviewer.

Sources last reviewed: 2026-07-03

What it is, and is not

It is an auditable evidence map for claims about inequality. You give it a claim, or a link to where you heard one, and it returns a structured report: where the measured evidence sits across several lenses, which named scholars support or contest it, the primary data behind each point, the place on Earth where it plays out, and every source.

It is not a truth oracle and does not rule on whether inequality is acceptable. It maps evidence and disagreement and hands the judgement back to the reader. It is not a general chatbot: the model may draw only on a closed, sourced corpus. The measured data cards are fabrication-resistant by construction. In the connecting prose, a figure that traces to no cited card, or a thinker or work the model names from outside the corpus, is flagged to the reader at request time; the flag sits beside the text, and the prose itself is left as written. When the corpus has no vetted evidence on a claim the tool says so plainly rather than answering from general knowledge.

Architecture: what is deterministic, what is the model

Deterministic layer

A build script reads the in-repo data corpora, all from named institutional sources, and computes the cross-references itself: divergences, wealth-vs-income ratios, capital share. No model. No figure can be invented here; each thread carries its raw values and a source URL.

Editorial layer

97 scholarly camps and 187 turning-point causes, human-authored, each with a primary-source URL checked to resolve. Marked seed-for-review: not publishable until a human, and ideally a partner, vets every claim. The human gate is deliberate.

Model layer (fenced)

At query time the model sees only the cached corpus. It cites evidence, turning points, and camps by id; the server discards any id that does not exist. It writes the connecting prose, constrained to the evidence above it. A dropped link is fetched server-side and always flagged external.

Position statements (fenced the same way)

Every grounded check opens with a statement from each position the report cited, and from any registered counter-position the completeness rule surfaced (up to five, registered opponents first): what the position implies about the claim, the strongest point it concedes to the other side, and one open question. A statement paraphrases a published position; nothing is quoted as a scholar's own words and no statement is attributed to a named individual. The positions are drawn from the camps the report cited and from the registered counter-positions the completeness rule surfaced, every figure in a statement is traced to its camp card or the cited evidence, and a closing summary names the axis of disagreement without giving a verdict. Statements are signed by the server, bound to the claim they address, so a shared report link carries them unchanged. The server keeps a saved set of statements only when the signature holds and each statement sits on the side the signed report gave its position; a set that has been altered, or whose sides do not match, is dropped from the saved report.

The anti-fabrication gate

The build runs a validator with a numeric-trace rule: every number in a computed data claim must be derivable from that claim's own sourced values, or the build fails. A model, or a careless edit, cannot introduce a figure that is not in the underlying data. The validator also checks that every camp carries a resolving source URL and that the refusal stance is present. The measured cards are fabrication-resistant by construction, not by trust.

Sources

Every series is catalogued below with its organisation, access terms, licence, the date it was verified, and what the tool uses it for. This table is rendered live from sources.json.

Data sources in use

SourceAccessLicenceWhat we use it forVerified

Institutional back doors: tested and resolving, not yet wired in

SourceAccessLicenceWhat we use it forVerified

Scholarly sources

SourceAccessLicenceWhat we use it forVerified

Income concepts and why sources can disagree

The corpus mixes two measurement traditions that can honestly point in different directions for the same country and year. Survey-based series (World Bank Ginis, poverty headcounts, WHO indicators, LIS Key Figures) rest on household interviews; they cover the middle of the distribution well and are known to under-capture the very top. Tax-data-based series (WID.world top shares, wealth ratios, the DINA method) capture the top far better but exist for fewer countries and years, and embed their own imputation choices. The tool does not adjudicate between them. Where both bear on a claim, both are cited, each labelled by its source, and a divergence between them is treated as a finding to show, never noise to smooth. Most series in the corpus are pre-tax or do not state an income concept; LIS Key Figures are the disposable-income (post-tax-and-transfer) exception, and each LIS thread says so. The market-vs-disposable redistribution gap requires LIS microdata access (application drafted, not yet submitted). The scholarly corpus carries this debate as a camp pair: the DINA tax-records position and the survey-harmonisation position, each naming the other as its counter.

The spectrum makes no claim

The spectrum on every report places each cited item as a dot by that item's own stance towards the claim (backs, contests, context). It deliberately has no needle, no aggregate score, and no verdict: any aggregation would weigh one working paper the same as decades of scholarship, which is false balance, and a model-produced score has no defensible rubric. The spectrum shows who lines up where; it never says how much each weighs. The reading belongs to the reader.

How camps are selected

The scholarly camps are an editorial product, and the criteria are stated so the selection can be challenged: (1) the position is held by named, citable scholars or institutions with a primary source that resolves; (2) it is a live position in the field, or canonical framing explicitly labelled as such (Kuznets, Okun, Rawls, Nozick); (3) each lens carries genuine internal disagreement, never a single consensus voice; (4) inclusion is reviewed by a human before publication (seed-for-review until then). Anyone can propose a missing camp with a primary source.

Honest limitations

The prose is fenced, not formally verified. The measured cards are validator-gated. The sentences that connect them are written by the model within the corpus fence. At request time every evidence note, lens note and connection the model writes is traced against the corpus items the answer cites; one whose figure does not trace is replaced by the card's own text or withheld. The connecting prose cannot be rewritten safely, so a figure in it that traces to no cited source is flagged to the reader rather than removed. The check is numeric, so a careful reviewer could still find a sentence whose wording overstates what a traced figure shows.

The corpus is prototype breadth, not a census. It was built around one master question and is being generalised across topics.

The camps are seed-for-review. Researched and sourced, but not yet independently vetted. Nothing there should be treated as endorsed until a human, and ideally a partner, signs off.

How to audit this

  1. Read sources.json and spot-check any endpoint. Every verified entry names the date and the response.
  2. Open any measured card in the tool and follow its source link to the institutional data.
  3. Run node validate.mjs; try to introduce an untraceable number into a computed claim and watch the build reject it.
  4. Read camps.seed.json and follow any camp's source URL to the paper, book, or reference entry.
  5. Ask a claim and confirm every figure shown sits on a card with a source, and that any number in the prose that is not on a card carries an unverified-figure flag.