- 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
123 lines
7.2 KiB
Markdown
123 lines
7.2 KiB
Markdown
# 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](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](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](https://processgit.org/Valsts-Pirmkods/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.
|