Skip to content
Plastics Policy Tracker

How we verify

Drafting is done with the help of a language model. Language models can invent things, so nothing reaches this site on the model's word. Every update must pass four independent layers of checks. Anything that fails is held back, logged publicly and sent to a human.

Where facts come from

We monitor official sources daily: EUR-Lex and the EU Publications Office, the Commission's Have Your Say portal, Parliament's Legislative Observatory, Council press releases, DG Environment, ECHA, EFSA, UNEP, the Basel Convention, WTO ePing, the US Federal Register, state legislatures, GOV.UK, and national governments and statutory bodies. Trade associations and media are used only as leads: every fact on the site must trace to an official source. Each document we rely on is saved as a text snapshot with its URL, retrieval time and SHA-256 hash in the public archive.

Layer 1 — deterministic checks (code)

  • Every record is validated against a strict schema.
  • Every source link must return HTTP 200 and be on our whitelist of official domains.
  • Dates must make sense: an event that has happened cannot be dated after today; next steps whose date has passed are marked to be confirmed.
  • Only news counts: an event that was already more than 60 days old when we first detected it is rejected.
  • Stage changes must be legal: stages only move forward. A backwards move, a jump of more than two stages, or a move to withdrawn/stalled is sent to a human.
  • The same event cannot be recorded twice in a dossier.

Layer 2 — source provenance (code)

Every update carries a verbatim quote from its source. After normalising whitespace, quotation marks and letter case, the quote must be found in the saved snapshot of the cited page. If it is not there, the update is rejected outright. This is the main defence against invented content. For sources in other languages we keep the original quote and show an English translation next to it.

Layer 3 — an independent reviewer (separate model call)

A separate reviewer call sees only the source text and the claim, never the drafter's reasoning. It is told to look for errors and to assume the claim is wrong until the source proves it. It checks dates, numbers, institutions, legal references, stage changes and next steps, and looks for overstatement or inference that the source does not contain. Only a verdict ofsupported with confidence ≥ 0.80 passes. Items about high-impact instruments that pass then go to a second, independent reviewer running on a stronger model, and must pass both. The model used for each review is shown in its review record.

Layer 4 — editorial review of the whole issue

Before an issue goes out, the full set of items is checked together: contradictions between items or with a dossier's history, missing high-impact developments, consistent terminology and British spelling, faithful translations, and a strict separation of fact from interpretation. Interpretation only ever appears in boxes labelled Analysis. Only factual problems hold an item back; wording and house-style points are listed in the review report for the editor but never stop publication.

Which model does what

Screening sources, drafting and the first review run on a fast model (DeepSeek Flash). Code, not a model, checks the facts most at risk of invention (quotes, dates, sources). A stronger model (DeepSeek V4 Pro) is used only for the second opinion on high-impact items and for the editorial review of each issue.

Overviews of each law

The short overview at the top of each law's page is checked too. An independent reviewer compares it with the saved official sources for that instrument (a second reviewer as well for high-impact instruments). An overview is shown only while that exact text has a passing review; any edit hides it until it is reviewed again. Where no official source can be saved, no overview is shown.

What happens when something fails

  • It goes into quarantine: not published, recorded in the review report, and opened as a GitHub issue for a human to check.
  • Publish gate: if more than 30% of an issue's items are quarantined, or any high-impact item is quarantined, the issue is not published automatically. It waits for the editor to approve it by hand.

Review records

Every published update shows its source link, the quote (expandable) and a review ID linking to its full review record. Every issue links to its issue-level review report, including the quarantined items and the reasons. All records are also kept in the repository.

Limits

Some official sites block automated access; these are listed in unreachable.md, and we do not substitute secondary sources for them. This is a monitoring tool, not legal advice; always rely on the official text. See also the about page.