# Metodika: Český vozový park 2026

- **Verze:** `2026-06-30.1`
- **Snapshot registru:** 30. 6. 2026
- **Datum zpracování:** 30. 8. 2026
- **Veřejný owner:** `/data/cesky-vozovy-park/`
- **Stav:** public-ready methodology; produkční publikace čeká na samostatný review

## 1. Výzkumná otázka

Jak se v jednom oficiálním snapshotu liší počet, rok výroby a značkové složení:

- osobních vozidel M1 a M1G;
- lehkých užitkových vozidel N1 a N1G?

MVP neodpovídá na prodeje, cenu vozidla, financovatelnost, skutečné používání na silnici ani vývoj v čase.

## 2. Populace

Ministerstvo dopravy uvádí, že statistické tabulky zahrnují vozidla:

1. ve statusu `PROVOZOVANÉ`;
2. s místní příslušností k obecnímu úřadu obce s rozšířenou působností (ORP);
3. vedená v Registru silničních vozidel ke dni snapshotu.

Jde o aktuální administrativní stav registru, nikoli o „auta prodaná“, „auta s platnou STK“, „vozidla právě na silnici“ nebo „aktivní zákazníky AutoZastava24“.

## 3. Kategorie

- **M1:** motorová vozidla určená především pro přepravu osob, nejvýše s osmi místy kromě řidiče a bez prostoru pro stojící cestující.
- **N1:** motorová vozidla určená především pro přepravu zboží s maximální hmotností do 3,5 tuny.
- **G:** terénní varianta příslušné kategorie.

Explorer tedy používá skupiny `M1 + M1G` a `N1 + N1G`. Nezahrnuje M2/M3, N2/N3, motocykly, přívěsy, traktory ani ostatní kategorie.

## 4. Zdrojové snapshoty

Pipeline čte dva zveřejněné ZIPy Ministerstva dopravy:

- P01: rok výroby × značka × druh × kategorie;
- P02: rok výroby × druh × kategorie.

Přesné URL, SHA-256, řádky, kódování a reuse status jsou v `docs/VEHICLE_FLEET_DATA_PROVENANCE.md` a strojově v `data/vehicle-fleet/source-manifest.json`.

## 5. Validace raw dat

Před agregací se deterministicky ověří:

1. SHA-256 ZIPu proti manifestu;
2. právě jeden očekávaný CSV entry;
3. velikost a CRC32 rozbaleného souboru;
4. UTF-16LE BOM;
5. povinné hlavičky;
6. přesná posloupnost ročních sloupců 1945–2026;
7. každý počet jako nezáporné bezpečné celé číslo;
8. deklarovaný počet zcela nezařazených řádků.

Opakované kombinace značka × druh × kategorie jsou vlastností oficiálního exportu. Nejde o duplicitní vozidla na řádkové úrovni, protože vstup je již agregovaný a neposkytuje identifikátor pro deduplikaci. Pipeline je proto sčítá. Hash snapshotu zajišťuje, že se toto chování bez review nezmění.

## 6. Výpočty

### Počet vozidel

Pro skupinu kategorií `C`:

`Total(C) = Σ stare + Σ count(year), pro year 1945..2026 a všechny řádky, kde kat ∈ C`

Hlavní počet používá P02, protože je nejméně dimenzionálním exportem pro kategorii a rok.

### Pásma roku výroby

- 0–4: modelové roky 2022–2026;
- 5–9: 2017–2021;
- 10–14: 2012–2016;
- 15–19: 2007–2011;
- 20+: 2006 a starší, včetně agregátu `stare` pro výrobu před 1945.

Název „0–4“ je zkratka pásma modelových roků, nikoli přesný věk ke dni 30. 6. 2026.

`Share(band) = band_count / Total(C) × 100`

Výstup uchovává dvě desetinná místa. UI ukazuje jedno desetinné místo. Součet zaokrouhlených UI hodnot může být ověřen s tolerancí 0,1 procentního bodu; součet počtů musí být přesně roven jmenovateli.

### Medián roku výroby

Roky se seřadí vzestupně a kumulují. Medián je první rok, kdy kumulativní počet dosáhne `ceil(Total / 2)`. Agregát před 1945 se započítá před rok 1945.

Medián roku výroby není průměrné stáří.

### Značky

Značka se trimuje, vícenásobné mezery se sloučí a porovnání probíhá uppercase v českém locale. Pro prezentaci se používají pouze explicitní labely (např. raw `VW` → `Volkswagen (VW)`). Aliasy různých raw hodnot se bez samostatného pravidla neslučují.

`Brand share = brand_count / total_count_in_P01_for_segment × 100`

Prázdná značka zůstává `missing_brand_count` a není přičtena žádné značce. Je však součástí jmenovatele.

## 7. Reconciliation

P01 a P02 se liší o 34 vozidel v M1/M1G a o 2 vozidla v N1/N1G. Rozdíl se nepřepisuje na nulu a jedna tabulka není násilně přepočítána podle druhé.

- počet, medián a pásma: P02;
- značky a jejich podíly: P01;
- UI vždy ukazuje jmenovatel značek a poznámku o rozdílu.

Build skončí chybou, pokud absolutní rozdíl překročí 100 nebo relativní 0,01 %.

## 8. Missing values a normalizace

- Chybějící značka se nepřičítá k `ostatní` ani k odhadnutému výrobci.
- Neznámý druh či kategorie se nezahrnuje do M1/M1G nebo N1/N1G.
- Neexistuje imputace roku výroby.
- Neprovádí se AI deduplikace, modelová klasifikace ani oprava značky.
- Hodnota `UNKNOWN` se nikdy nepřevádí na nulu; číselná nula je přijata pouze z validního zdrojového pole.

## 9. Geografie

Explorer nepoužívá regionální filtr. Registrační místo/ORP nemusí být místem běžného používání a firemní či leasingové registrace mohou geografickou interpretaci zkreslit. Regionální view vyžaduje samostatnou metodiku a review.

## 10. Palivo a první registrace

MD publikuje také palivo a první registrace, ale dostupný nízkodimenzionální palivový soubor neudržuje současně kategoriální filtr M1/N1. Palivo proto není v MVP. Nové registrace nejsou zaměňovány za stav vozového parku.

## 11. Ochrana soukromí

MVP používá pouze oficiální agregované tabulky. Nestahuje řádkový NKOD výpis s VIN/PČV, nespojuje vlastníky/provozovatele a nepoužívá CRM, formuláře ani jiné first-party údaje.

## 12. Reprodukce

1. Spustit `npm.cmd run generate:vehicle-fleet`; chybějící raw cache v systémovém TEMP mimo webový `app_location` se stáhne z přesných MD URL a přijme pouze při shodě SHA-256 v `data/vehicle-fleet/source-manifest.json`.
2. Spustit `npm.cmd run test:vehicle-fleet`.
3. Zkontrolovat změnu version/snapshot/reconciliation před publikací.

Generátor vytváří server-rendered baseline a embedded data přímo v Exploreru. Samostatné veřejné CSV/JSON soubory záměrně nevytváří, protože přesné pololetní zdrojové ZIPy nemají doložené vlastní reuse podmínky. Embedded data jsou technický podklad stejné HTML vizualizace, ne nabízený dataset ani download endpoint.

## 13. Aktualizace

Další snapshot je nová verze, nikoli přepsání původu současných čísel. Refresh vyžaduje nové URL, datum stažení, hash, raw snapshot, reconciliation a test fixture receipt. Historický trend se smí publikovat až po zpracování nejméně dvou metodicky srovnatelných snapshotů.

## 14. Známé limity

- Registr může obsahovat administrativně provozované vozidlo, které fakticky nejezdí.
- Vozidla bez spolehlivé příslušnosti k ORP jsou dle MD z příslušných statistik vypuštěna.
- Značka je odvozena zdrojovým postupem a nemusí odpovídat marketingové brand taxonomii.
- Rok výroby nevytváří přesné stáří.
- Jeden snapshot nevytváří trend.
- Asset nepopisuje ceny, hodnotu, způsobilost k financování ani zákazníky AutoZastava24.
