OpenChart
Free Desktop charting with Claude or Codex. Describe alerts, research chart moves, and choose your data providers.
An open P&L of the UK state: where public money comes from, where it goes, and what every political promise would cost, with every number linked to its official source.
FinanceTypeScript · PythonGitHub @xternalOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
LedgerGov.UK: an open P&L of the UK state. Where public money comes from and goes, a sandbox to change it, and every political promise tracked with cost, funding and evidence.
Taken from the repository README
Loading the full README.
Read the full README ↗Live at ledgergov.uk. This file covers the concept, the product logic and the build order. Specs for implementation live in CLAUDE.md and docs/; known issues in docs/PRE_SHIP_REVIEW.md. To run it yourself, see Run it locally; to help, see CONTRIBUTING.md.
Who is behind it. LedgerGov.UK is built by Pavel Guzhikov, a UK resident, as an active citizen: someone who wants a better-informed society and new, more accountable forms of government. It is run through Empatiq Limited, Pavel Guzhikov's company, which holds any data readers give the site (privacy notice). Empatiq Limited has no clients or contracts with government, political parties or any body this site tracks; if that ever changes, it will be declared here. It is independent. No party, campaign or government funds or directs it, and it holds every party, in government or opposition, to the same published standard.
A country is a company with 69 million shareholders and no annual report they can read. We build that report. The country's P&L reads in ten seconds, like the Alphabet or Amazon income-statement Sankeys. Next to it sits a sandbox where any politician's proposal turns, within a second, into "what it costs, where the money comes from, and what it does to debt, prices and my wallet". The third part is a promise ledger: a credit history for people in power. Every promise has a timeline that ends either in action or in visible silence.
The modules form one chain:
Promise (card) → parameters (who, how much, when, paid for by what)
→ a set of levers in the sandbox
→ result: Δ borrowing, debt, prices, GDP, per household (all as ranges)
→ delivery timeline (linked to budget, legislation and statistics)
The worked example (real, autumn 2026; figures corrected against official sources in M3):
That is the product: a headline phrase becomes three numbers a person understands and one line on what pays for it.
Sources: DfT written statement (https://www.gov.uk/government/speeches/2-bus-fares-from-january-2027), No 10 press release (https://www.gov.uk/government/news/cheaper-travel-for-millions-with-a-third-off-fares), ONS public sector finances.
| # | Module | What the user sees | What makes it different |
|---|---|---|---|
| 1 | Statement (P&L) | Sankey: taxes → public purse → spending by function. Borrowing is a hatched amber flow; debt interest shares the colour ("the cost of the gap"). Units: £bn / per household / pence per £1 | A live picture that redraws from any lever, not a "budget for citizens" PDF |
| 2 | Sandbox | Levers: taxes, Bank Rate, defence % GDP, NHS, pensions, point measures (bus cap). Presets per politician's proposal. Results: Δ borrowing, per household, CPI, GDP, debt/GDP to 2030-31, all as ranges | Instant, in the browser. Each lever says who controls it (government / Bank of England / demography) |
| 3 | Your share | Enter a salary → what you pay and where it goes, plus "borrowed on top in your name" | Translation into household terms |
| 4 | Promise ledger | Card: quote, actor, source, parameters, status ladder, timeline, cost, "run in sandbox" | Costing + tracking over time + household translation in one place. "Unscoreable" = slogan |
| 5 | Credit history | Per politician/party: promised, delivered, quietly dropped, unscoreable | Who over-promises and by how much, shown through data, not labels |
| 6 | Follow & Contribute | Follow a promise or actor and get alerts when status changes; send in a promise or evidence you saw | Retention loop and a crowd-sourced intake funnel, editor-gated |
| 7 | People (v2) | Demography: workers vs pensioners, births, ageing → pressure on pensions and NHS over 10–50 years | Uses OBR long-term projections, does not build its own |
| 8 | Backtest (v2) | Every model forecast stored and compared with outturn | A model that publishes its misses |
In (≈6–8 weeks for one developer with Claude Code; low-confidence estimate):
Out: user accounts, microsimulation (v1), LLM intake from Hansard and TV (v1), demography (v2), backtest (v2).
| Stage | Time | Result |
|---|---|---|
| M0–M1 | 2 wks | Next.js app from the prototype; ETL of real OBR/PESA/ONS/BoE data |
| M2–M3 | 3 wks | Sandbox with tests; promise ledger in git (PR = editorial review, history = wording diffs) |
| M3b | 1 wk | Follow (RSS/email) and Contribute (anonymous submissions → editors' queue) |
| M4 | 2 wks | Intake: Hansard/TheyWorkForYou + LLM → draft cards for editors |
| M5 | 3 wks | PolicyEngine UK: "what it means for me" by household type, decile, region |
| M5b | 1 wk | Optional accounts (passkey/magic link): synced follows, contributor credit |
| M6–M7 | 3 wks | Demography and long-term horizon (OBR FSR), backtest, public API |
| File | For | What |
|---|---|---|
HANDOVER_PROMPT.md | Claude Code, designer | The two kick-off prompts to paste or send |
CLAUDE.md | Claude Code | Project rules, stack, invariants, working order |
docs/PRE_SHIP_REVIEW.md | Everyone | Known issues ranked by severity, with fixes and owners |
docs/PRD.md | Product, engineering | Users, jobs, features, acceptance criteria |
docs/DATA_MODEL.md | Engineering | Entities and schemas |
docs/MODEL.md | Engineering, economists | Model tiers T0–T3, formulas, ranges, backtest |
docs/DATA_SOURCES.md | Engineering | UK sources with URLs and how to ingest them |
docs/PROMISE_STANDARD.md | Editors | Parameterisation, statuses, submissions |
docs/EDITORS.md | Editors | The editors' guide: the rules in plain words, how to review a card on GitHub, the declaration |
docs/BUDGET_DAY.md | Editors | The plan for Budget day (28 Oct 2026): documents, what moves each watched card, ready-made entries |
docs/PRIVACY_AND_ACCOUNTS.md | Product, legal | Follow, contribute, accounts and the data rules around them |
docs/DESIGN_HANDOFF.md | Designer | Screens, components, tokens, mobile |
docs/BUILD_PLAN.md | Claude Code | Milestones with ready-to-paste prompts |
data/seed/*.json | All | Seed data (P&L 2025-26, levers, promises) |
prototype/ | Design, engineering | Clickable prototype; index.html is built by build_prototype.py |
Confidence in the numbers: 2025-26 totals and the OBR borrowing and debt path are high (OBR, March 2026). Tax-by-tax and function splits are approximate, scaled from PESA 2024-25, and three lines are balancing plugs. Lever coefficients (cost of 1p of tax) are from model memory and labelled training; they must be replaced by HMRC tables before public launch.
You need Node 22 (see .nvmrc), pnpm 12 (corepack enable pnpm) and, for the data pipeline, Python 3.14.
pnpm install
pnpm dev # the site at http://localhost:3000
pnpm test # engine, schema and server tests
pnpm validate # schemas, the balance check, promise lint
Nothing else is needed to read and edit locally: without a DATABASE_URL the app uses an in-process database, writes mail to an outbox table and skips the Claude pre-fill (apps/web/.env.example). For the data pipeline: python3.14 -m venv etl/.venv && etl/.venv/bin/pip install -r etl/requirements.txt, then pnpm etl. Running the live service (database, mail, alerts, intake) is in docs/OPERATIONS.md.
/method#licence on the site.Copyright © 2026 Pavel Guzhikov and contributors.