{
  "version": "0.50",
  "generated_on": "2026-09-06",
  "period": "2021–2025",
  "source": "MONITOR / MF ČR – FIN 2-12 M Open Data, lokálně stažené a analyzované",
  "methodology": {
    "expense_classes": "položky tříd 5 a 6",
    "consolidation_expenditure_items": [
      "5342",
      "5344",
      "5345",
      "5347",
      "5348",
      "5349",
      "6363"
    ],
    "deduplication": "U shodného rok + obec + paragraf + položka se použije nejvyšší skutečnost. FIN může obsahovat celkový řádek a jeho zdrojové/dotační rozklady; ty se nesčítají znovu.",
    "five_year_share": "součet výdajů oblasti 2021–2025 / součet všech konsolidovaných výdajů 2021–2025 × 100"
  },
  "checks": [
    {
      "id": "ostopovice_total_2021",
      "expected_czk": 30172600.0,
      "actual_czk": 30172560.45,
      "difference_czk": -39.55000000074506,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "ostopovice_total_2022",
      "expected_czk": 31106130.0,
      "actual_czk": 31106128.37,
      "difference_czk": -1.6299999989569187,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "ostopovice_total_2023",
      "expected_czk": 61133500.0,
      "actual_czk": 61133495.63,
      "difference_czk": -4.369999997317791,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "ostopovice_total_2024",
      "expected_czk": 54144700.0,
      "actual_czk": 54144700.77,
      "difference_czk": 0.7700000032782555,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "ostopovice_total_2025",
      "expected_czk": 140052800.0,
      "actual_czk": 140052799.39,
      "difference_czk": -0.6100000143051147,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "legacy_comparison_2025_moravany",
      "expected_czk": 168932984.0,
      "actual_czk": 168932984.47,
      "difference_czk": 0.4699999988079071,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "legacy_comparison_2025_omice",
      "expected_czk": 13568005.0,
      "actual_czk": 13568005.29,
      "difference_czk": 0.28999999910593033,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "legacy_comparison_2025_ostopovice",
      "expected_czk": 140052799.39,
      "actual_czk": 140052799.39,
      "difference_czk": 0.0,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "legacy_comparison_2025_strelice",
      "expected_czk": 90761000.0,
      "actual_czk": 90760864.28,
      "difference_czk": -135.7199999988079,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "legacy_comparison_2025_troubsko",
      "expected_czk": 44213606.0,
      "actual_czk": 44213605.93,
      "difference_czk": -0.07000000029802322,
      "tolerance_czk": 500.0,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2021_moravany",
      "expected_czk": 39499797.24,
      "actual_czk": 39499797.24,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2021_omice",
      "expected_czk": 19542589.11,
      "actual_czk": 19542589.11,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2021_ostopovice",
      "expected_czk": 30172560.45,
      "actual_czk": 30172560.45,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2021_strelice",
      "expected_czk": 55113001.79,
      "actual_czk": 55113001.79,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2021_troubsko",
      "expected_czk": 41633693.53,
      "actual_czk": 41633693.53,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2022_moravany",
      "expected_czk": 52601987.66,
      "actual_czk": 52601987.66,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2022_omice",
      "expected_czk": 14572031.51,
      "actual_czk": 14572031.51,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2022_ostopovice",
      "expected_czk": 31106128.37,
      "actual_czk": 31106128.37,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2022_strelice",
      "expected_czk": 62123393.07,
      "actual_czk": 62123393.07,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2022_troubsko",
      "expected_czk": 55108789.55,
      "actual_czk": 55108789.55,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2023_moravany",
      "expected_czk": 55187067.25,
      "actual_czk": 55187067.25,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2023_omice",
      "expected_czk": 12128970.34,
      "actual_czk": 12128970.34,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2023_ostopovice",
      "expected_czk": 61133495.63,
      "actual_czk": 61133495.63,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2023_strelice",
      "expected_czk": 110575715.04,
      "actual_czk": 110575715.03999999,
      "difference_czk": -1.4901161193847656e-08,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2023_troubsko",
      "expected_czk": 88630540.47,
      "actual_czk": 88630540.47,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2024_moravany",
      "expected_czk": 112238179.72,
      "actual_czk": 112238179.72,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2024_omice",
      "expected_czk": 13243402.41,
      "actual_czk": 13243402.41,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2024_ostopovice",
      "expected_czk": 54144700.77,
      "actual_czk": 54144700.769999996,
      "difference_czk": -7.450580596923828e-09,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2024_strelice",
      "expected_czk": 121340372.25,
      "actual_czk": 121340372.25,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2024_troubsko",
      "expected_czk": 76449698.15,
      "actual_czk": 76449698.15,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2025_moravany",
      "expected_czk": 168932984.47,
      "actual_czk": 168932984.47,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2025_omice",
      "expected_czk": 13568005.29,
      "actual_czk": 13568005.29,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2025_ostopovice",
      "expected_czk": 140052799.39,
      "actual_czk": 140052799.39,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2025_strelice",
      "expected_czk": 90760864.28,
      "actual_czk": 90760864.28,
      "difference_czk": 0.0,
      "tolerance_czk": 0.02,
      "status": "PASS"
    },
    {
      "id": "annual_reconcile_2025_troubsko",
      "expected_czk": 44213605.93,
      "actual_czk": 44213605.93000001,
      "difference_czk": 7.450580596923828e-09,
      "tolerance_czk": 0.02,
      "status": "PASS"
    }
  ],
  "all_pass": true,
  "check_count": 35
}