OpenFisca Rules as Code model for Czechia.
Project description
OpenFisca-Czechia
[EN] Introduction
OpenFisca is a versatile simulation and microsimulation free software. This repository contains the OpenFisca model of the Czech tax and benefit system. Therefore, the working language here is Czech. You can however check the general OpenFisca documentation in English.
[CS] Introduction
OpenFisca je svobodný software pro simulace a mikrosimulace. Tento repozitář obsahuje OpenFisca model českého daňového a dávkového systému. Dále najdete instrukce k použití modelu, doporučujeme ale nejdřív projít obecnou dokumentaci k OpenFisca.
Co model obsahuje
Model aktuálně obsahuje:
- výpočet DSSP (dávky státní sociální pomoci) podle legislativy platné k červenci 2026 (bez majetkového testu)
- výpočet daně z příjmu fyzických osob
Soubory modelu najdete ve složce openfisca_czechia.
- Parametry použité v modelu jsou v podsložce
parameters - Vstupy a výpočty jsou v podsložce
variables - Testy pro výpočty najdete v podsložce
tests
Plán dalšího vývoje
- Slevy DPFO
- Zdravotní a sociální odvody z pracovního příjmu
- Exekuční a insolvenční srážky
- Změny DSSP s plánovanou platností k 1. říjnu 2026 (normativy podle okresů)
- Majetkový test DSSP
- Příjmy z podnikání (OSVČ)
Použití jako balíček v Python skriptech
Doporučujeme použít nástroj uv pro správu verzí Pythonu a virtuálního prostředí.
Pokud nemáte připravený projekt pomocí uv, pak v nové složce nejdříve spusťte následující příkaz, který i nainstaluje vhodnou verzi Pythonu. Doporučená verze je 3.13, nejnižší podporovaná je 3.9.
uv init --python 3.13
Následně přidejte do projektu balíček openfisca-czechia.
uv add openfisca-czechia
A pak použijte balíček například pomocí následujícího kódu (dokumentace k Python API):
from openfisca_core.simulation_builder import SimulationBuilder
from openfisca_czechia import CountryTaxBenefitSystem
TEST_CASE = {
"osoby": {
"dospely1": {
"cisty_prijem_osoby": {"2026-01": 8000},
"dssp_je_osoba_pracovne_aktivni": {"2026-01": True},
"dssp_je_osoba_zranitelna": {"2026-01": True},
},
"dite1": {
"vek": {"2026-01": 2},
"je_nezaopatrene_dite": {"2026-01": True},
"dssp_je_osoba_zranitelna": {"2026-01": True},
},
},
"domacnosti": {
"domacnost1": {
"clenove": ["dospely1", "dite1"],
"typ_bydleni": {"2026-01": "byt_nebo_rodinny_dum"},
"vztah_k_nemovitosti": {"2026-01": "najemni_podnajemni"},
"dssp_velikost_obce_bydliste": {"2026-01": "praha_a_brno"},
"naklady_na_najemne": {"2026-01": 12000},
"dalsi_poplatky_spojene_s_bydlenim": {"2026-01": 2000},
"naklady_na_energie": {"2026-01": 5000},
}
},
}
def main():
tax_benefit_system = CountryTaxBenefitSystem()
simulation_builder = SimulationBuilder()
simulation = simulation_builder.build_from_entities(tax_benefit_system, TEST_CASE)
dssp = simulation.calculate("dssp", "2026-01")
slozka_na_bydleni = simulation.get_array("dssp_slozka_na_bydleni", "2026-01")
slozka_na_zivobyti = simulation.get_array("dssp_slozka_na_zivobyti", "2026-01")
bonus_na_dite = simulation.get_array("dssp_bonus_na_dite", "2026-01")
pracovni_bonus = simulation.get_array("dssp_pracovni_bonus", "2026-01")
print(f"DSSP: {dssp}")
print(f"- slozka na bydleni: {slozka_na_bydleni}")
print(f"- slozka na zivobyti: {slozka_na_zivobyti}")
print(f"- bonus na dite: {bonus_na_dite}")
print(f"- pracovni bonus: {pracovni_bonus}")
if __name__ == "__main__":
main()
Pokud je kód v souboru main.py, pak ho spustíte následujícím způsobem:
uv run main.py
Použití přes webové API
Balíček jde spustit jako webový server například pomocí uv následujícím způsobem:
uv run --python 3.13 --with openfisca-core --with openfisca-czechia openfisca serve
To spustí webový server na lokálním portu 5000, tj. http://localhost:5000.
Pak jde spustit simulaci před webové API (dokumentace k webovému API) například pomocí Node.js:
const input = {
osoby: {
dospely1: {
cisty_prijem_osoby: { "2026-01": 8000 },
dssp_je_osoba_pracovne_aktivni: { "2026-01": true },
dssp_je_osoba_zranitelna: { "2026-01": true },
},
dite1: {
vek: { "2026-01": 2 },
je_nezaopatrene_dite: { "2026-01": true },
dssp_je_osoba_zranitelna: { "2026-01": true },
},
},
domacnosti: {
domacnost1: {
clenove: ["dospely1", "dite1"],
typ_bydleni: { "2026-01": "byt_nebo_rodinny_dum" },
vztah_k_nemovitosti: { "2026-01": "najemni_podnajemni" },
dssp_velikost_obce_bydliste: { "2026-01": "praha_a_brno" },
naklady_na_najemne: { "2026-01": 12000 },
dalsi_poplatky_spojene_s_bydlenim: { "2026-01": 2000 },
naklady_na_energie: { "2026-01": 5000 },
// Proměnné, které pošleme s null se dopočítají
dssp: { "2026-01": null },
dssp_slozka_na_bydleni: { "2026-01": null },
dssp_slozka_na_zivobyti: { "2026-01": null },
dssp_bonus_na_dite: { "2026-01": null },
dssp_pracovni_bonus: { "2026-01": null },
},
},
};
fetch("http://localhost:5000/calculate", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(input),
})
.then((response) => response.json())
.then((output) => {
const domacnost1 = output.domacnosti.domacnost1;
console.log("Výše DSSP pro zadanou domácnost:", {
dssp: domacnost1.dssp,
slozka_na_bydleni: domacnost1.dssp_slozka_na_bydleni,
slozka_na_zivobyti: domacnost1.dssp_slozka_na_zivobyti,
bonus_na_dite: domacnost1.dssp_bonus_na_dite,
pracovni_bonus: domacnost1.dssp_pracovni_bonus,
});
});
Licence
Kód je dostupný pod licencí AGPLv3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openfisca_czechia-0.1.1.tar.gz.
File metadata
- Download URL: openfisca_czechia-0.1.1.tar.gz
- Upload date:
- Size: 94.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0ef0fc5373019d24ca99a018069e20d8c6d375c883a33ea2db276f3241e2464
|
|
| MD5 |
35c40037eb817f7519e1a4c0ced96e44
|
|
| BLAKE2b-256 |
ceaf5d92a0d11839f4088e853a1f1c15eb2fad90d5d38c466643bb0dccaa4e53
|
File details
Details for the file openfisca_czechia-0.1.1-py3-none-any.whl.
File metadata
- Download URL: openfisca_czechia-0.1.1-py3-none-any.whl
- Upload date:
- Size: 69.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d702286ecc98a721fd9b57438ab794fcf9ff19f8887982fd048e419127b8af12
|
|
| MD5 |
c6b7e5fa847b847eb9c8e48fda5fefd8
|
|
| BLAKE2b-256 |
5dd1507362c2c6d886898318fbd48aa40a002c4a6f1174780945dc034b32f6cf
|