Loģisks budžeta modelis (Source, Provision, Parameter, Actor, Purpose, Indicator, Rule, ClassItem, Allocation), nevis likuma pielikumu izkārtojuma kopija. Abi likumi: teksts un visi 12 pielikumi. Atpakaļsaderība: 2026 — 58 457 no 58 457, 2025 — 55 677 no 55 677 pielikumos drukāto skaitļu atjaunoti tikai no XML. Avoti (likumi.lv, klasifikāciju MK noteikumi), rīki, datu līgums B15, dokumentācija. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016679RwmHsuTFfxt26wP6rk
101 lines
5.7 KiB
Markdown
101 lines
5.7 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 cik naudas, 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 naudas piešķīrumi (IKP prognoze, informatīvie rādītāji)
|
|
├── Actor kurš tur vai saņem naudu: resors (ar VPK ID), pašvaldība, nesadalītie līdzekļi
|
|
├── Purpose kam nauda paredzēta: 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 naudas 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).
|
|
|
|
## 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 naudas 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) |
|
|
|
|
### 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.
|