1
0
Files
Budget-as-Code/README.md
Rihards Gailums 5d89c73521 Terminoloģija: „finanšu fakts” „naudas fakta” vietā (v0.1.2)
- Pārlūkā, README, docs, XSD un ODCS aprakstos „naudas fakts” → „finanšu fakts”, „kam nauda paredzēta” → „kam finansējums paredzēts” u. c.; datu struktūra un identifikatori nemainās
- Pārlūks: skaidrojums „Tabulās nav klasifikācijas kodu” ar piemēru; virsraksts „Kas datukopā vēl nav iekļauts”

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016679RwmHsuTFfxt26wP6rk
2026-10-11 06:21:07 +00:00

7.2 KiB

Valsts budžets kā kods (Budget-as-Code)

Mašīnlasāma struktūra Latvijas valsts budžetam: viena XML datne katrai budžeta likuma versijai un viena XSD shēma visiem gadiem. Datne satur likuma tekstu, visus 12 pielikumus un saites starp tiem. Likuma tabulas no tās var atjaunot līdz pēdējam euro.

Autors: PPP Asociācija (PPPA), Valsts Pirmkods (VPK). Shēmas versija 0.1, melnraksts.

Koncepcijas demonstrācija. Šīs datnes nav oficiāls valsts budžeta izdevums. Tās automātiski izveidotas no likumi.lv publicētā likuma un tā pielikumiem. Juridisks spēks ir tikai oficiālajai publikācijai Latvijas Vēstnesī.

Kāpēc šāds modelis

Pieņemtais budžets šobrīd ir likuma teksts ar 12 pielikumiem (Excel un Word datnes), un katram pielikumam ir savs izkārtojums. Šis modelis neatkārto pielikumu formu. Tas apraksta budžetu kā lēmumu: kurš drīkst saņemt vai izlietot finanšu līdzekļus, kādā apmērā, kādam mērķim un pēc kādiem noteikumiem. Pielikumi ir šo datu skati.

Budget (likuma versija, piemēram lv-vb-2026)
  ├── Source       avota dokumenti ar SHA-256 (likuma teksts, 12 pielikumi)
  ├── Provision    likuma panti (teksts)
  ├── Parameter    lielumi, kas nav finanšu piešķīrumi (IKP prognoze, informatīvie rādītāji)
  ├── Actor        kurš tur vai saņem finansējumu: resors (ar VPK ID), pašvaldība, nesadalītie līdzekļi
  ├── Purpose      kam finansējums paredzēts: resors → programma → apakšprogramma → projekts; mērķdotācijas
  ├── Indicator    rezultatīvie rādītāji (budžeta paskaidrojumos; likumā nav — rezervēts)
  ├── Rule         mašīnlasāmi noteikumi no likuma teksta (rezervēts)
  ├── ClassItem    izmantotie klasifikāciju kodi ar nosaukumiem un vecākkodu
  └── Allocation   viens finanšu fakts: plūsma × fonds × būtība × gads × turētājs × mērķis × bloks × kods × summa

Visi ieraksti ir plakani un saistīti ar identifikatoriem. Kopsummas, starpsummas un bilances datnē netiek glabātas — tās aprēķina. Sīkāk: docs/MODELIS.md.

Pārlūks (editor/Budget-as-Code.html)

Viena HTML datne bez ārējām atkarībām. Tajā ir abas XML datnes (2025 un 2026), XSD shēma un pārbaudes rezultāti, un visas tabulas tiek aprēķinātas pārlūkā no XML. Cilnes:

Cilne Saturs
Problēma Kāpēc pieņemtais budžets ir dokumenti, nevis dati; viens fakts pielikumā un datukopā
Budžets Kopsavilkums (1. pielikuma rādītāji), resori un programmas, EKK, funkcijas, ieņēmumi, ilgtermiņa saistības, mērķdotācijas pašvaldībām, likuma panti, meklēšana; katram mērķim visi fakti ar avota datni un rindu
2025 ↔ 2026 2025. gada likuma plāns 2026. gadam pret 2026. gada likumu, pa resoriem un programmām
Atradumi Avotu īpatnības un konsolidācijas piemēri
Saderība Drukāto skaitļu atjaunošana pa pielikumiem
Modelis Ierakstu veidi, identifikatori, avoti; XML un XSD lejupielāde

ProcessGit skatītājs (data/processgit.viewer.json) atver data/lv-vb-*.xml šajā pārlūkā. Datni var atvērt arī lokāli; ar „Datnes → Atvērt citu budžeta XML” var ielādēt citu likuma versiju tajā pašā shēmā.

Atpakaļsaderība ar likumu

Katrs likuma pielikumos drukātais skaitlis ir pārbaudīts: to aprēķina tikai no XML datnes un salīdzina ar publicēto vērtību.

Likums Pielikumos drukātie skaitļi Atjaunoti no XML
Par valsts budžetu 2026. gadam un budžeta ietvaru 2026., 2027. un 2028. gadam 58 457 58 457 (100 %)
Par valsts budžetu 2025. gadam un budžeta ietvaru 2025., 2026. un 2027. gadam 55 677 55 677 (100 %)

Abi gadi izmanto to pašu shēmu un tos pašus rīkus. Metode, rezultāti pa pielikumiem un avotos atrastās nekonsekvences: docs/SADERIBA.md.

Saturs

Dati (data/)

Datne Saturs
data/lv-vb-2026.xml 2026. gada valsts budžeta likums (LV 2025/244): 81 pants, 12 pielikumu dati, 6 400 finanšu faktu
data/lv-vb-2025.xml 2025. gada valsts budžeta likums (LV 2024/248): 82 panti, 12 pielikumu dati

Datnes nosaukums ir budžeta identifikators.

Shēma un datu līgums

Datne Saturs
schemas/valsts-budzets-0.1.xsd Shēma: viens saknes elements, deviņi ierakstu veidi, vārdnīcas (plūsma, fonds, būtība, bloks, klasifikācija)
contracts/B15-valsts-budzets.odcs.yaml ODCS v3 datu līgums, ģenerēts no XSD (tāpat kā B01–B14)

Pārlūks

Datne Saturs
editor/Budget-as-Code.html Pašpietiekama HTML lapa: problēma, atradumi un abu budžetu pārlūks
data/processgit.viewer.json ProcessGit skatītāja apraksts datnēm lv-vb-*.xml

Dokumentācija

Datne Saturs
docs/MODELIS.md Modeļa jēdzieni, konsolidācijas noteikums, pielikumu atbilstība modelim
docs/IDENTIFIKATORI.md Identifikatoru veidošanas noteikumi
docs/SADERIBA.md Atpakaļsaderības pārbaude: metode, rezultāti, atrastās avotu īpatnības
verification/lv-vb-GGGG.verify.json Pārbaudes rezultāts pa pielikumiem

Avoti (source/)

Mape Saturs
source/2026/, source/2025/ Likuma teksts (likumi.lv HTML) un 12 pielikumu datnes tieši tā, kā publicētas; links.json ar adresēm
source/klasifikacijas/ Klasifikāciju MK noteikumi no likumi.lv (ekonomiskā, ieņēmumu, finansēšanas)
source/kodi/ Kodu vārdnīcas: no klasifikāciju noteikumiem, no pielikumu slēptajām SAP lapām, no Valsts kases izpildes datiem; resoru VPK ID

Rīki (tools/)

Datne Darbība
tools/parse_budget.py Likums un pielikumi → lv-vb-GGGG.xml un katra drukātā skaitļa nozīme (checks.json)
tools/verify_budget.py XSD pārbaude un katra drukātā skaitļa atjaunošana tikai no XML
tools/calc.py Kopīgie summēšanas noteikumi (tie paši parsētājam un pārbaudītājam)
tools/klasifikacijas.py Klasifikāciju kodu saraksti no likumi.lv noteikumu tabulām
tools/kodi_no_sap.py Kodi no pielikumu slēptajām SAP BW lapām
tools/rows.py, tools/rd.py Excel (.xlsx, .xls) un Word (.docx) lasītāji ar atkāpju līmeņiem

Palaišana (Python 3.12, pip install openpyxl xlrd lxml):

python tools/klasifikacijas.py
python tools/kodi_no_sap.py 2026
python tools/parse_budget.py 2026 source/2026/likums.html source/2026 build/2026
python tools/verify_budget.py build/2026 2026

source/kodi/vk_codes.tsv, vk_blocks.tsv un vpk_resorts.tsv ir izgūti no VDZP (Valsts kases budžeta izpildes dati un Valsts kancelejas organizāciju reģistrs); vaicājumi ir aprakstīti docs/MODELIS.md.

Saistītās datu kopas

  • Valdības deklarācija un rīcības plāns: Valdibas-Deklaracija-as-Code. Resori ir saistīti ar to pašu VPK ID.
  • VDZP — Valsts datu un zināšanu platforma (demonstrācija): https://lakehouse.pppa.lv/.
  • Valsts kases budžeta tāmes (izpildāmais budžets ar grozījumiem): opendata.kase.gov.lv/api/v1/valsts_budzeta_tames, saistāmas pēc resora, programmas, apakšprogrammas un EKK koda.