Open Net Worth
Open Net Worth는 직접 운영하는 오픈소스 개인 AI 자산 비서로, 전체 재무를 하나의 원장에 기록하고 사용자가 제어하는 AI가 관리
영국의 차입·세수·지출·부채·국채 현황, ONS·HMRC·재무부·DMO·영은행 자료
UK borrowing, tax receipts, spending, debt and gilts from the ONS, HMRC, HM Treasury, the DMO and the Bank of England. Every figure is sourced.
금융TypeScript · PythonGitHub @vahaah온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Open UK public finances dashboard: income, spending, borrowing, debt and taxpayers, auto-updated from official sources
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Open UK public finances for budget.vahaah.com. Receipts, spending, borrowing, debt, gilts and taxpayers, taken from the publishers' own files.
The site renders committed snapshots captured on 28 October 2026. A Vercel cron starts one Workflow per source, which writes a new snapshot to Blob only after zod accepts it. A failed file keeps the newest earlier Blob version that still validates, then the fixture, and shows up on /api/health. Derived figures are CC BY 4.0. Upstream statistics keep the publisher's licence.
npm install
npm run dev
npm test
npm run publish-check
| Name | Purpose |
|---|---|
CRON_SECRET | Bearer token Vercel Cron sends. Required for /api/cron/*. |
BLOB_READ_WRITE_TOKEN | Snapshot store. Without it, pages read fixtures/snapshots. |
INDEXNOW_KEY | Public IndexNow key, served at /{key}.txt. |
INDEXNOW_HOST | Defaults to budget.vahaah.com. |
OBR fallback upload, when obr.uk returns 403:
vercel blob put manual/obr-public-finances.xlsx ./public-finances-databank.xlsx --allow-overwrite
Story charts (/budgets/<event>/explained, the long-run charts on topic pages, and the home page "What is happening in the UK" panel) come from the latest EFO "charts and tables" workbooks and the latest Forecast evaluation report charts workbook. After each EFO, upload them under manual/obr/efo/ (any names, .xlsx) and replace the previous event's files. Sheets are matched by chart title, so renumbered charts still load. Then force the daily cron.
for f in efo-*-charts-and-tables-{executive-summary,chapter-2,chapter-3,chapter-4,chapter-5,chapter-6}.xlsx Forecast-evaluation-report-*-charts-and-tables.xlsx; do
vercel blob put "manual/obr/efo/$f" "./$f" --allow-overwrite
done
HM Treasury's distributional analysis ("Impact on households") is published as a PDF of charts with no data table. Its decile figures are read from the chart geometry and shown on the event page, /taxpayers and linked from the explained page, captioned "Values read from HM Treasury's published charts; not an official table." After each Budget:
scripts/hmt-distributional/budget-2026.spec.json to a new spec. Set the event slug and name, URLs, publication date, and for each figure its page number, frame (0 for the upper chart on a page) and the top and bottom y-axis tick labels. Check figure numbers and titles against the PDF.python3 scripts/hmt-distributional/digitise.py Impact_on_households.pdf <spec> > budget-YYYY.json (needs poppler-utils and numpy). Each row's check is the sum of segments minus the Overall marker; it should be near zero. If a chart's colours or layout change, update the script.vercel blob put manual/hmt/distributional/budget-YYYY.json ./budget-YYYY.json --allow-overwrite. Keep earlier files; the newest by publication date is used. Then force the daily cron.Preview locally from files on disk: npx tsx scripts/obr-local-snapshot.ts out.json historical=… measures=… evaluation=… efo=… efo=….
Do not deploy from this repo's automation. Wire the project in Vercel separately.
ONS public sector finances (September 2026 release), HMRC receipts, PESA 2026 chapters 4 and 6, Bank of England Bank Rate and the 10-year par yield, HMRC income tax tables 2.1 and 2.4, and the DMO portfolio totals from GetSalesData.
obr.uk returned a Cloudflare challenge. The workflow tries again from Vercel and otherwise reads the manual Blob workbook. The forecasts page shows ONS outturn only until then.GetSalesData on each run.J5II and JW2T are negative in the ONS download when the bulletin says borrowing or a deficit. Charts use the negation. See ARCHITECTURE.md.
Production deploys from main on Vercel (project uk-public-finances, team Comonad, https://budget.vahaah.com). PRs get preview deployments.
To cut a release: git tag vX.Y.Z && git push origin vX.Y.Z. The release workflow creates a GitHub Release with generated notes.
After a release that changes pages, run the indexnow workflow (Actions → indexnow → Run workflow; tick "all" for the first submission).