tax_conformance_kit 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +21 -11
- data/bin/taxctl +0 -0
- data/data/kind-registry.v1.json +316 -0
- data/data/regulation/nl/gemeentelijke_verordening/aa_en_hunze/2024-11-29.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/aa_en_hunze/2025-11-28.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/aalten/2024-12-23.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/aalten/2025-12-20.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/achtkarspelen/2025-12-31.json +60 -0
- data/data/regulation/nl/gemeentelijke_verordening/alblasserdam/2025-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/alblasserdam/2025-12-23.json +103 -0
- data/data/regulation/nl/gemeentelijke_verordening/alkmaar/2024-12-18.json +107 -0
- data/data/regulation/nl/gemeentelijke_verordening/alkmaar/2025-12-17.json +107 -0
- data/data/regulation/nl/gemeentelijke_verordening/almelo/2024-01-01.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/almelo/2025-01-01.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/almelo/2026-01-01.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/almere/2024-12-25.json +71 -0
- data/data/regulation/nl/gemeentelijke_verordening/almere/2025-12-24.json +71 -0
- data/data/regulation/nl/gemeentelijke_verordening/alphen_aan_den_rijn/2024-12-18.json +63 -0
- data/data/regulation/nl/gemeentelijke_verordening/alphen_aan_den_rijn/2025-12-19.json +63 -0
- data/data/regulation/nl/gemeentelijke_verordening/alphen_chaam/2025-01-01.json +71 -0
- data/data/regulation/nl/gemeentelijke_verordening/alphen_chaam/2026-01-01.json +120 -0
- data/data/regulation/nl/gemeentelijke_verordening/ameland/2024-01-01.json +65 -0
- data/data/regulation/nl/gemeentelijke_verordening/ameland/2025-01-01.json +65 -0
- data/data/regulation/nl/gemeentelijke_verordening/ameland/2026-01-01.json +65 -0
- data/data/regulation/nl/gemeentelijke_verordening/amersfoort/2024-12-24.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/amersfoort/2025-12-20.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/amstelveen/2025-01-01.json +111 -0
- data/data/regulation/nl/gemeentelijke_verordening/amstelveen/2026-01-01.json +111 -0
- data/data/regulation/nl/gemeentelijke_verordening/amsterdam/2026-01-01.json +45 -0
- data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/percentage_of_base_normal.json +18 -0
- data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/percentage_of_base_rounding_up.json +18 -0
- data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/quarterly_threshold_below_minimum.assessment.json +43 -0
- data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/quarterly_threshold_exact_minimum.assessment.json +43 -0
- data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/quarterly_threshold_met.assessment.json +43 -0
- data/data/regulation/nl/gemeentelijke_verordening/apeldoorn/2024-04-04.json +140 -0
- data/data/regulation/nl/gemeentelijke_verordening/apeldoorn/2024-12-24.json +140 -0
- data/data/regulation/nl/gemeentelijke_verordening/apeldoorn/2025-12-30.json +140 -0
- data/data/regulation/nl/gemeentelijke_verordening/baarle_nassau/2025-01-01.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/baarle_nassau/2026-01-01.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/baarn/2024-12-31.json +78 -0
- data/data/regulation/nl/gemeentelijke_verordening/baarn/2025-12-30.json +78 -0
- data/data/regulation/nl/gemeentelijke_verordening/barneveld/2024-12-12.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/barneveld/2025-11-28.json +120 -0
- data/data/regulation/nl/gemeentelijke_verordening/beekdaelen/2024-11-22.json +112 -0
- data/data/regulation/nl/gemeentelijke_verordening/beekdaelen/2025-11-28.json +112 -0
- data/data/regulation/nl/gemeentelijke_verordening/bergen_nh/2024-12-24.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/bergen_nh/2025-12-18.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/bergen_op_zoom/2025-12-12.json +72 -0
- data/data/regulation/nl/gemeentelijke_verordening/bernheze/2024-01-01.json +63 -0
- data/data/regulation/nl/gemeentelijke_verordening/bernheze/2025-03-20.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/bernheze/2025-12-25.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/best/2024-11-23.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/best/2025-11-21.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/beuningen/2024-12-21.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/beuningen/2025-12-20.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/beverwijk/2024-12-19.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/beverwijk/2025-12-16.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/blaricum/2024-01-01.json +107 -0
- data/data/regulation/nl/gemeentelijke_verordening/blaricum/2025-01-01.json +107 -0
- data/data/regulation/nl/gemeentelijke_verordening/blaricum/2026-01-01.json +107 -0
- data/data/regulation/nl/gemeentelijke_verordening/bloemendaal/2024-01-04.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/bloemendaal/2024-12-31.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/bloemendaal/2026-01-01.json +97 -0
- data/data/regulation/nl/gemeentelijke_verordening/boekel/2024-12-18.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/borger_odoorn/2025-01-01.json +170 -0
- data/data/regulation/nl/gemeentelijke_verordening/borger_odoorn/2026-01-01.json +170 -0
- data/data/regulation/nl/gemeentelijke_verordening/borne/2025-01-01.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/borne/2026-01-01.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/2024-12-25.json +107 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/2026-01-01.json +225 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/2026-03-19.json +170 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest.json +20 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest_119_nights.json +20 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest_120_nights.json +20 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest_29_nights.json +20 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest_30_nights.json +20 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/coa_exempt.json +19 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/supervised_minor_group_exempt.json +36 -0
- data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/wtza_exempt.json +19 -0
- data/data/regulation/nl/gemeentelijke_verordening/bronckhorst/2024-01-01.json +120 -0
- data/data/regulation/nl/gemeentelijke_verordening/brummen/2024-01-01.json +152 -0
- data/data/regulation/nl/gemeentelijke_verordening/brummen/2025-01-01.json +147 -0
- data/data/regulation/nl/gemeentelijke_verordening/brummen/2026-01-01.json +147 -0
- data/data/regulation/nl/gemeentelijke_verordening/brunssum/2024-12-19.json +60 -0
- data/data/regulation/nl/gemeentelijke_verordening/brunssum/2025-12-25.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/castricum/2024-11-27.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/castricum/2025-11-26.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/coevorden/2025-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/culemborg/2024-12-19.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/culemborg/2025-12-30.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/de_fryske_marren/2024-12-24.json +77 -0
- data/data/regulation/nl/gemeentelijke_verordening/de_fryske_marren/2026-01-01.json +77 -0
- data/data/regulation/nl/gemeentelijke_verordening/de_wolden/2025-01-01.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/de_wolden/2026-01-01.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/deurne/2024-11-29.json +62 -0
- data/data/regulation/nl/gemeentelijke_verordening/deurne/2026-01-01.json +62 -0
- data/data/regulation/nl/gemeentelijke_verordening/deventer/2024-11-19.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/deventer/2025-12-05.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/diemen/2024-01-01.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/diemen/2024-12-28.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/diemen/2026-01-01.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/dinkelland/2024-12-28.json +167 -0
- data/data/regulation/nl/gemeentelijke_verordening/dinkelland/2025-12-30.json +118 -0
- data/data/regulation/nl/gemeentelijke_verordening/doesburg/2024-12-25.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/doesburg/2025-12-24.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/doetinchem/2024-12-25.json +122 -0
- data/data/regulation/nl/gemeentelijke_verordening/doetinchem/2025-12-24.json +122 -0
- data/data/regulation/nl/gemeentelijke_verordening/drechterland/2024-12-31.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/drechterland/2025-12-30.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/dronten/2024-12-07.json +76 -0
- data/data/regulation/nl/gemeentelijke_verordening/dronten/2025-12-05.json +76 -0
- data/data/regulation/nl/gemeentelijke_verordening/edam_volendam/2024-12-19.json +122 -0
- data/data/regulation/nl/gemeentelijke_verordening/edam_volendam/2025-12-23.json +122 -0
- data/data/regulation/nl/gemeentelijke_verordening/ede/2024-12-04.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/ede/2025-11-29.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/eemnes/2025-01-01.json +131 -0
- data/data/regulation/nl/gemeentelijke_verordening/eemnes/2026-01-01.json +131 -0
- data/data/regulation/nl/gemeentelijke_verordening/eindhoven/2025-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/eindhoven/2025-12-03.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/elburg/2024-01-01.json +132 -0
- data/data/regulation/nl/gemeentelijke_verordening/emmen/2025-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/emmen/2026-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/enkhuizen/2024-12-31.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/enkhuizen/2026-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/enschede/2024-01-01.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/enschede/2025-01-01.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/enschede/2026-01-01.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/etten_leur/2024-12-10.json +72 -0
- data/data/regulation/nl/gemeentelijke_verordening/geertruidenberg/2024-11-27.json +115 -0
- data/data/regulation/nl/gemeentelijke_verordening/geertruidenberg/2025-12-11.json +115 -0
- data/data/regulation/nl/gemeentelijke_verordening/geldrop_mierlo/2024-12-17.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/geldrop_mierlo/2025-11-21.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/gemert_bakel/2024-01-25.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/gemert_bakel/2024-01-27.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/gemert_bakel/2024-12-18.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/gemert_bakel/2025-12-18.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/gilze_en_rijen/2025-01-01.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/gilze_en_rijen/2025-12-25.json +120 -0
- data/data/regulation/nl/gemeentelijke_verordening/goes/2024-12-29.json +69 -0
- data/data/regulation/nl/gemeentelijke_verordening/goes/2025-12-26.json +69 -0
- data/data/regulation/nl/gemeentelijke_verordening/gooise_meren/2024-12-14.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/gooise_meren/2026-01-01.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/gorinchem/2025-12-25.json +100 -0
- data/data/regulation/nl/gemeentelijke_verordening/gouda/2024-12-17.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/gouda/2025-12-16.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/haaksbergen/2024-01-01.json +120 -0
- data/data/regulation/nl/gemeentelijke_verordening/haaksbergen/2025-01-01.json +117 -0
- data/data/regulation/nl/gemeentelijke_verordening/haaksbergen/2026-01-01.json +117 -0
- data/data/regulation/nl/gemeentelijke_verordening/haarlem/2024-12-28.json +193 -0
- data/data/regulation/nl/gemeentelijke_verordening/haarlem/2025-12-24.json +191 -0
- data/data/regulation/nl/gemeentelijke_verordening/haarlemmermeer/2024-12-07.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/haarlemmermeer/2025-12-11.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/halderberge/2024-12-20.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/halderberge/2025-12-24.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/hardenberg/2025-12-25.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/harderwijk/2024-12-21.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/harderwijk/2025-12-20.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/harlingen/2024-12-17.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/harlingen/2025-12-10.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/heemskerk/2024-12-18.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/heemskerk/2025-12-19.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/heemstede/2025-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/heemstede/2025-12-23.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/heeze_leende/2024-12-20.json +193 -0
- data/data/regulation/nl/gemeentelijke_verordening/heeze_leende/2025-12-04.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/heiloo/2024-11-27.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/heiloo/2025-11-14.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/helmond/2024-01-01.json +109 -0
- data/data/regulation/nl/gemeentelijke_verordening/helmond/2025-01-01.json +109 -0
- data/data/regulation/nl/gemeentelijke_verordening/helmond/2026-01-01.json +109 -0
- data/data/regulation/nl/gemeentelijke_verordening/het_hogeland/2026-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/heumen/2025-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/heusden/2024-01-01.json +172 -0
- data/data/regulation/nl/gemeentelijke_verordening/heusden/2025-01-01.json +172 -0
- data/data/regulation/nl/gemeentelijke_verordening/heusden/2026-01-01.json +152 -0
- data/data/regulation/nl/gemeentelijke_verordening/hoeksche_waard/2024-12-31.json +62 -0
- data/data/regulation/nl/gemeentelijke_verordening/hoeksche_waard/2025-12-24.json +59 -0
- data/data/regulation/nl/gemeentelijke_verordening/hof_van_twente/2024-01-01.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/hoogeveen/2025-01-01.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/hoogeveen/2026-01-01.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/houten/2024-12-19.json +65 -0
- data/data/regulation/nl/gemeentelijke_verordening/houten/2025-12-23.json +65 -0
- data/data/regulation/nl/gemeentelijke_verordening/huizen/2024-11-24.json +119 -0
- data/data/regulation/nl/gemeentelijke_verordening/huizen/2025-11-16.json +119 -0
- data/data/regulation/nl/gemeentelijke_verordening/hulst/2024-11-27.json +117 -0
- data/data/regulation/nl/gemeentelijke_verordening/hulst/2025-11-26.json +117 -0
- data/data/regulation/nl/gemeentelijke_verordening/kampen/2024-11-20.json +60 -0
- data/data/regulation/nl/gemeentelijke_verordening/kampen/2025-11-12.json +60 -0
- data/data/regulation/nl/gemeentelijke_verordening/katwijk/2024-12-25.json +122 -0
- data/data/regulation/nl/gemeentelijke_verordening/katwijk/2025-12-12.json +122 -0
- data/data/regulation/nl/gemeentelijke_verordening/koggenland/2024-11-16.json +59 -0
- data/data/regulation/nl/gemeentelijke_verordening/krimpenerwaard/2024-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/krimpenerwaard/2025-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/krimpenerwaard/2026-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/landgraaf/2024-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/landgraaf/2025-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/landgraaf/2026-01-01.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/landsmeer/2025-01-03.json +72 -0
- data/data/regulation/nl/gemeentelijke_verordening/landsmeer/2025-12-30.json +72 -0
- data/data/regulation/nl/gemeentelijke_verordening/leeuwarden/2024-12-17.json +68 -0
- data/data/regulation/nl/gemeentelijke_verordening/leeuwarden/2025-12-02.json +74 -0
- data/data/regulation/nl/gemeentelijke_verordening/leiden/2025-12-20.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/leiderdorp/2024-12-24.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/leiderdorp/2025-12-24.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/leidschendam_voorburg/2024-01-01.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/leidschendam_voorburg/2025-01-01.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/leidschendam_voorburg/2026-01-01.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/leusden/2024-01-01.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/leusden/2025-01-01.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/leusden/2026-01-01.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/lingewaard/2024-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/lingewaard/2025-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/lochem/2024-01-01.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/lochem/2025-01-01.json +69 -0
- data/data/regulation/nl/gemeentelijke_verordening/lochem/2026-01-01.json +69 -0
- data/data/regulation/nl/gemeentelijke_verordening/loon_op_zand/2024-12-25.json +256 -0
- data/data/regulation/nl/gemeentelijke_verordening/loon_op_zand/2025-12-24.json +196 -0
- data/data/regulation/nl/gemeentelijke_verordening/lopik/2024-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/lopik/2024-12-24.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/lopik/2025-12-24.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/maashorst/2024-12-19.json +118 -0
- data/data/regulation/nl/gemeentelijke_verordening/maashorst/2025-12-30.json +118 -0
- data/data/regulation/nl/gemeentelijke_verordening/maassluis/2024-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/maassluis/2025-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/maassluis/2026-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/meerssen/2024-12-27.json +68 -0
- data/data/regulation/nl/gemeentelijke_verordening/midden_drenthe/2025-12-23.json +117 -0
- data/data/regulation/nl/gemeentelijke_verordening/midden_groningen/2024-12-31.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/midden_groningen/2025-12-29.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/molenlanden/2024-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/molenlanden/2025-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/nederweert/2024-12-21.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/nederweert/2025-12-18.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/nieuwegein/2024-12-24.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/nieuwegein/2025-12-30.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/noardeast_frysl/303/242n/2025-01-01.json +77 -0
- data/data/regulation/nl/gemeentelijke_verordening/noardeast_frysl/303/242n/2025-12-24.json +77 -0
- data/data/regulation/nl/gemeentelijke_verordening/noord_beveland/2024-07-17.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/noord_beveland/2025-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/noord_beveland/2025-12-24.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/nuenen_gerwen_en_nederwetten/2024-11-28.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/nuenen_gerwen_en_nederwetten/2025-11-20.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/oegstgeest/2024-12-18.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/oegstgeest/2025-12-23.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/oirschot/2024-12-19.json +188 -0
- data/data/regulation/nl/gemeentelijke_verordening/oldambt/2024-01-01.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/oldambt/2025-01-01.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/oldebroek/2025-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/oldebroek/2025-12-27.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/oldenzaal/2025-01-01.json +59 -0
- data/data/regulation/nl/gemeentelijke_verordening/olst_wijhe/2024-12-25.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/olst_wijhe/2025-12-23.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/ommen/2024-12-28.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/ommen/2025-12-25.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/oost_gelre/2024-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/oost_gelre/2025-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/oost_gelre/2026-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/oosterhout/2024-12-28.json +112 -0
- data/data/regulation/nl/gemeentelijke_verordening/oosterhout/2025-12-18.json +68 -0
- data/data/regulation/nl/gemeentelijke_verordening/oostzaan/2025-01-01.json +60 -0
- data/data/regulation/nl/gemeentelijke_verordening/oostzaan/2025-12-30.json +60 -0
- data/data/regulation/nl/gemeentelijke_verordening/opmeer/2024-12-25.json +59 -0
- data/data/regulation/nl/gemeentelijke_verordening/opmeer/2025-12-19.json +59 -0
- data/data/regulation/nl/gemeentelijke_verordening/oss/2025-12-17.json +117 -0
- data/data/regulation/nl/gemeentelijke_verordening/oude_ijsselstreek/2024-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/oude_ijsselstreek/2025-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/oude_ijsselstreek/2025-12-30.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/ouder_amstel/2024-01-01.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/oudewater/2024-01-01.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/oudewater/2025-01-01.json +106 -0
- data/data/regulation/nl/gemeentelijke_verordening/overbetuwe/2025-01-01.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/overbetuwe/2026-01-01.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/papendrecht/2025-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/papendrecht/2025-12-17.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/purmerend/2024-11-21.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/purmerend/2025-11-25.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/raalte/2024-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/raalte/2025-12-02.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/reimerswaal/2024-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/reimerswaal/2025-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/reimerswaal/2026-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/renswoude/2025-01-01.json +53 -0
- data/data/regulation/nl/gemeentelijke_verordening/reusel_de_mierden/2024-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/reusel_de_mierden/2025-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/reusel_de_mierden/2026-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/rhenen/2025-12-20.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/rijssen_holten/2024-12-25.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/rijssen_holten/2025-12-30.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/rijswijk/2024-11-21.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/rijswijk/2025-11-28.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/roosendaal/2024-12-25.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/roosendaal/2025-12-24.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/scherpenzeel/2024-12-20.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/scherpenzeel/2026-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/schiermonnikoog/2024-11-15.json +59 -0
- data/data/regulation/nl/gemeentelijke_verordening/schiermonnikoog/2025-12-02.json +59 -0
- data/data/regulation/nl/gemeentelijke_verordening/schouwen_duiveland/2024-01-01.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/schouwen_duiveland/2025-01-01.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/schouwen_duiveland/2026-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/simpelveld/2024-11-21.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/simpelveld/2025-12-20.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/sint_michielsgestel/2024-01-01.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/sint_michielsgestel/2024-12-24.json +105 -0
- data/data/regulation/nl/gemeentelijke_verordening/sittard_geleen/2024-11-30.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/sittard_geleen/2025-12-04.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/sluis/2024-01-01.json +131 -0
- data/data/regulation/nl/gemeentelijke_verordening/sluis/2025-01-01.json +131 -0
- data/data/regulation/nl/gemeentelijke_verordening/sluis/2026-01-01.json +131 -0
- data/data/regulation/nl/gemeentelijke_verordening/smallingerland/2024-12-28.json +83 -0
- data/data/regulation/nl/gemeentelijke_verordening/smallingerland/2025-12-31.json +83 -0
- data/data/regulation/nl/gemeentelijke_verordening/someren/2024-12-20.json +118 -0
- data/data/regulation/nl/gemeentelijke_verordening/someren/2025-12-19.json +118 -0
- data/data/regulation/nl/gemeentelijke_verordening/staphorst/2024-11-30.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/staphorst/2025-12-03.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/stede_broec/2024-12-31.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/stede_broec/2026-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/steenbergen/2024-12-19.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/steenbergen/2025-12-19.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/stein/2024-12-24.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/stein/2026-01-01.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/stichtse_vecht/2024-01-01.json +112 -0
- data/data/regulation/nl/gemeentelijke_verordening/stichtse_vecht/2024-12-28.json +112 -0
- data/data/regulation/nl/gemeentelijke_verordening/stichtse_vecht/2025-12-25.json +112 -0
- data/data/regulation/nl/gemeentelijke_verordening/s/303/272dwest_frysl/303/242n/2025-01-01.json +69 -0
- data/data/regulation/nl/gemeentelijke_verordening/s/303/272dwest_frysl/303/242n/2026-01-01.json +69 -0
- data/data/regulation/nl/gemeentelijke_verordening/terneuzen/2024-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/terneuzen/2025-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/terneuzen/2026-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/terschelling/2024-12-11.json +69 -0
- data/data/regulation/nl/gemeentelijke_verordening/terschelling/2025-12-27.json +69 -0
- data/data/regulation/nl/gemeentelijke_verordening/texel/2024-12-27.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/texel/2026-01-01.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/tholen/2024-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/tilburg/2024-11-27.json +62 -0
- data/data/regulation/nl/gemeentelijke_verordening/tilburg/2025-12-10.json +62 -0
- data/data/regulation/nl/gemeentelijke_verordening/tubbergen/2025-01-01.json +117 -0
- data/data/regulation/nl/gemeentelijke_verordening/tubbergen/2025-12-25.json +118 -0
- data/data/regulation/nl/gemeentelijke_verordening/twenterand/2024-01-01.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/twenterand/2025-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/twenterand/2026-01-01.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/uitgeest/2024-12-20.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/uitgeest/2025-12-18.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/uithoorn/2024-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/uithoorn/2025-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/uithoorn/2026-01-01.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/uithoorn/conformance/previous_ordinance_last_day.json +18 -0
- data/data/regulation/nl/gemeentelijke_verordening/uithoorn/conformance/successor_ordinance_first_day.json +18 -0
- data/data/regulation/nl/gemeentelijke_verordening/urk/2024-12-05.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/urk/2026-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/veenendaal/2024-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/veenendaal/2024-12-17.json +60 -0
- data/data/regulation/nl/gemeentelijke_verordening/veenendaal/2025-12-23.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/veldhoven/2024-01-01.json +139 -0
- data/data/regulation/nl/gemeentelijke_verordening/veldhoven/2025-01-01.json +139 -0
- data/data/regulation/nl/gemeentelijke_verordening/velsen/2024-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/velsen/2025-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/velsen/2026-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/vijfheerenlanden/2025-01-01.json +150 -0
- data/data/regulation/nl/gemeentelijke_verordening/vijfheerenlanden/2026-01-01.json +150 -0
- data/data/regulation/nl/gemeentelijke_verordening/vlaardingen/2024-12-27.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/vlaardingen/2025-12-20.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/vlieland/2024-12-20.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/vlieland/2025-12-19.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/voerendaal/2025-12-24.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/voorne_aan_zee/2024-12-25.json +117 -0
- data/data/regulation/nl/gemeentelijke_verordening/voorne_aan_zee/2025-11-18.json +117 -0
- data/data/regulation/nl/gemeentelijke_verordening/voorschoten/2024-11-28.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/voorschoten/2025-11-25.json +57 -0
- data/data/regulation/nl/gemeentelijke_verordening/voorst/2025-01-01.json +147 -0
- data/data/regulation/nl/gemeentelijke_verordening/voorst/2026-01-01.json +147 -0
- data/data/regulation/nl/gemeentelijke_verordening/waadhoeke/2024-12-25.json +77 -0
- data/data/regulation/nl/gemeentelijke_verordening/waalre/2024-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/waalre/2025-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/waalre/2026-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/waddinxveen/2024-12-20.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/waddinxveen/2025-12-19.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/wageningen/2024-12-14.json +59 -0
- data/data/regulation/nl/gemeentelijke_verordening/wageningen/2025-12-23.json +67 -0
- data/data/regulation/nl/gemeentelijke_verordening/wassenaar/2024-12-21.json +107 -0
- data/data/regulation/nl/gemeentelijke_verordening/wassenaar/2025-12-06.json +107 -0
- data/data/regulation/nl/gemeentelijke_verordening/waterland/2024-12-28.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/waterland/2025-12-30.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/weert/2024-12-24.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/weert/2025-12-20.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/west_maas_en_waal/2024-12-20.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/west_maas_en_waal/2025-12-20.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/westerveld/2024-12-28.json +158 -0
- data/data/regulation/nl/gemeentelijke_verordening/westerwolde/2025-01-01.json +61 -0
- data/data/regulation/nl/gemeentelijke_verordening/wierden/2025-12-18.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/wijk_bij_duurstede/2024-12-21.json +100 -0
- data/data/regulation/nl/gemeentelijke_verordening/wijk_bij_duurstede/2025-12-20.json +100 -0
- data/data/regulation/nl/gemeentelijke_verordening/winterswijk/2024-12-04.json +131 -0
- data/data/regulation/nl/gemeentelijke_verordening/winterswijk/2025-11-08.json +131 -0
- data/data/regulation/nl/gemeentelijke_verordening/woensdrecht/2025-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/wormerland/2024-12-20.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/wormerland/2025-12-30.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/woudenberg/2024-12-25.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/woudenberg/2025-12-24.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/zaanstad/2025-12-04.json +179 -0
- data/data/regulation/nl/gemeentelijke_verordening/zaltbommel/2024-01-01.json +170 -0
- data/data/regulation/nl/gemeentelijke_verordening/zaltbommel/2025-01-01.json +170 -0
- data/data/regulation/nl/gemeentelijke_verordening/zaltbommel/2026-01-01.json +170 -0
- data/data/regulation/nl/gemeentelijke_verordening/zandvoort/2024-12-24.json +66 -0
- data/data/regulation/nl/gemeentelijke_verordening/zandvoort/2025-12-23.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/zeewolde/2024-12-25.json +111 -0
- data/data/regulation/nl/gemeentelijke_verordening/zeewolde/2025-12-24.json +111 -0
- data/data/regulation/nl/gemeentelijke_verordening/zeist/2025-12-25.json +108 -0
- data/data/regulation/nl/gemeentelijke_verordening/zoetermeer/2024-12-20.json +65 -0
- data/data/regulation/nl/gemeentelijke_verordening/zoetermeer/2025-12-19.json +65 -0
- data/data/regulation/nl/gemeentelijke_verordening/zuidplas/2026-01-01.json +64 -0
- data/data/regulation/nl/gemeentelijke_verordening/zundert/2024-12-19.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/zundert/2025-12-16.json +70 -0
- data/data/regulation/nl/gemeentelijke_verordening/zwartewaterland/2024-11-20.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/zwartewaterland/2025-11-25.json +73 -0
- data/data/regulation/nl/gemeentelijke_verordening/zwolle/2024-12-24.json +110 -0
- data/data/regulation/nl/gemeentelijke_verordening/zwolle/2025-12-19.json +110 -0
- data/lib/tax_conformance_kit/taxctl_client.rb +1 -1
- data/lib/tax_conformance_kit/version.rb +1 -1
- data/lib/tax_conformance_kit.rb +16 -0
- metadata +419 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6f7af37d7149859cbb18692e8040e9a710027fbef9f0716eacca6ed9c491c301
|
|
4
|
+
data.tar.gz: 2dc3af404778b6b2e4c8939aa3e5b49b8fb2040ec0cba3ffd07987dea906e294
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9fb939964451a20c444da3f8ecab844203cca7472a11eb331229c8bb1623cc5ad5fa7c18bcec40abe0e1040f3ac5c03354eb4f17e186e6331dc34f08688d9a76
|
|
7
|
+
data.tar.gz: 5fbc537124e7698d4276b0b5b13d4ffe0197d437f90160283640a37c1274e5cfb7e0e996e9ef82483fdde2c0ec8fc12516de7d33573d815569f4ecfc021f6f93
|
data/README.md
CHANGED
|
@@ -4,7 +4,13 @@ Thin Ruby client for the `tax-conformance-kit` Go runtime.
|
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Bundler (RubyGems):
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
gem "tax_conformance_kit", "~> 0.2.0"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Path dependency (for local development):
|
|
8
14
|
|
|
9
15
|
```ruby
|
|
10
16
|
gem "tax_conformance_kit", path: "../tax-conformance-kit/clients/ruby"
|
|
@@ -13,28 +19,32 @@ gem "tax_conformance_kit", path: "../tax-conformance-kit/clients/ruby"
|
|
|
13
19
|
Git dependency:
|
|
14
20
|
|
|
15
21
|
```ruby
|
|
16
|
-
gem "tax_conformance_kit", git: "https://github.com/
|
|
22
|
+
gem "tax_conformance_kit", git: "https://github.com/odeva-labs/tax-conformance-kit.git", glob: "clients/ruby/*.gemspec"
|
|
17
23
|
```
|
|
18
24
|
|
|
19
25
|
## Usage
|
|
20
26
|
|
|
27
|
+
Zero-config — the gem ships with the bundled `taxctl` binary and the kind registry:
|
|
28
|
+
|
|
21
29
|
```ruby
|
|
22
30
|
require "tax_conformance_kit"
|
|
23
31
|
|
|
24
|
-
client = TaxConformanceKit::TaxctlClient.new
|
|
25
|
-
|
|
26
|
-
registry_path: "/path/to/kind-registry.v1.json"
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
response = client.evaluate(
|
|
30
|
-
ruleset: ruleset_hash,
|
|
31
|
-
booking_input: booking_input_hash
|
|
32
|
-
)
|
|
32
|
+
client = TaxConformanceKit::TaxctlClient.new
|
|
33
|
+
response = client.evaluate(ruleset: ruleset_hash, booking_input: booking_input_hash)
|
|
33
34
|
```
|
|
34
35
|
|
|
36
|
+
### Advanced: override `command:`
|
|
37
|
+
|
|
35
38
|
`command:` may be either:
|
|
36
39
|
|
|
37
40
|
- a binary path string, for example `"/usr/local/bin/taxctl"`
|
|
38
41
|
- a full argv array, for example `["go", "run", "./cmd/taxctl"]`
|
|
39
42
|
|
|
43
|
+
```ruby
|
|
44
|
+
client = TaxConformanceKit::TaxctlClient.new(
|
|
45
|
+
command: ["/path/to/taxctl"],
|
|
46
|
+
registry_path: "/path/to/kind-registry.v1.json"
|
|
47
|
+
)
|
|
48
|
+
```
|
|
49
|
+
|
|
40
50
|
The client does not implement the evaluator. It shells out to the canonical Go runtime and exchanges JSON over stdin/stdout.
|
data/bin/taxctl
ADDED
|
Binary file
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://tax-conformance.dev/schemas/kind-registry.v1.json",
|
|
4
|
+
"title": "KindRegistry",
|
|
5
|
+
"description": "Canonical list of calculation.kind and predicate.kind values with their params schemas. Every engine port MUST reject rulesets referencing kinds not present here. Ports MAY implement a subset, but MUST fail loudly on unimplemented-but-registered kinds encountered during evaluation.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["registry_version", "calculations", "predicates"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"registry_version": { "const": "v1" },
|
|
10
|
+
"calculations": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": { "$ref": "#/$defs/KindEntry" }
|
|
13
|
+
},
|
|
14
|
+
"predicates": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"additionalProperties": { "$ref": "#/$defs/KindEntry" }
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"$defs": {
|
|
20
|
+
"KindEntry": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"required": ["description", "params_schema"],
|
|
23
|
+
"properties": {
|
|
24
|
+
"description": { "type": "string" },
|
|
25
|
+
"since": { "type": "string", "description": "Schema version when introduced" },
|
|
26
|
+
"params_schema": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"description": "JSON Schema (draft 2020-12) for the kind's params object"
|
|
29
|
+
},
|
|
30
|
+
"examples": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": { "type": "object" }
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
"registry_version": "v1",
|
|
39
|
+
"calculations": {
|
|
40
|
+
"generic.per_night": {
|
|
41
|
+
"description": "Flat amount per night.",
|
|
42
|
+
"since": "v1",
|
|
43
|
+
"params_schema": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"required": ["amount"],
|
|
46
|
+
"properties": {
|
|
47
|
+
"amount": { "type": "number", "minimum": 0 }
|
|
48
|
+
},
|
|
49
|
+
"additionalProperties": false
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"generic.per_person_per_night": {
|
|
53
|
+
"description": "Flat amount per guest per night. Guests = adults + children unless a predicate narrows the set.",
|
|
54
|
+
"since": "v1",
|
|
55
|
+
"params_schema": {
|
|
56
|
+
"type": "object",
|
|
57
|
+
"required": ["amount"],
|
|
58
|
+
"properties": {
|
|
59
|
+
"amount": { "type": "number", "minimum": 0 }
|
|
60
|
+
},
|
|
61
|
+
"additionalProperties": false
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"generic.fixed_amount": {
|
|
65
|
+
"description": "Flat amount per booking.",
|
|
66
|
+
"since": "v1",
|
|
67
|
+
"params_schema": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"required": ["amount"],
|
|
70
|
+
"properties": {
|
|
71
|
+
"amount": { "type": "number", "minimum": 0 }
|
|
72
|
+
},
|
|
73
|
+
"additionalProperties": false
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"generic.percentage_of_base": {
|
|
77
|
+
"description": "Percentage of a configurable base. IMPORTANT: 'accommodation_fee_exclusive_of_tax' means the taxable base excludes the tourist tax itself (NL ordinances commonly define it this way).",
|
|
78
|
+
"since": "v1",
|
|
79
|
+
"params_schema": {
|
|
80
|
+
"type": "object",
|
|
81
|
+
"required": ["rate_pct", "base"],
|
|
82
|
+
"properties": {
|
|
83
|
+
"rate_pct": { "type": "number", "minimum": 0 },
|
|
84
|
+
"base": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"enum": [
|
|
87
|
+
"accommodation_fee_exclusive_of_tax",
|
|
88
|
+
"gross_booking_total",
|
|
89
|
+
"subtotal"
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"additionalProperties": false
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"nl.tiered_by_stay_duration": {
|
|
97
|
+
"description": "Step function over stay length in nights. Tiers are closed-open on max_nights; final tier may omit max_nights. Each tier's amount is the total for the booking (not per-night).",
|
|
98
|
+
"since": "v1",
|
|
99
|
+
"params_schema": {
|
|
100
|
+
"type": "object",
|
|
101
|
+
"required": ["tiers"],
|
|
102
|
+
"properties": {
|
|
103
|
+
"tiers": {
|
|
104
|
+
"type": "array",
|
|
105
|
+
"minItems": 1,
|
|
106
|
+
"items": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"required": ["amount"],
|
|
109
|
+
"properties": {
|
|
110
|
+
"min_nights": { "type": "integer", "minimum": 0 },
|
|
111
|
+
"max_nights": { "type": "integer", "minimum": 1 },
|
|
112
|
+
"amount": { "type": "number", "minimum": 0 }
|
|
113
|
+
},
|
|
114
|
+
"additionalProperties": false
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"additionalProperties": false
|
|
119
|
+
},
|
|
120
|
+
"examples": [
|
|
121
|
+
{
|
|
122
|
+
"tiers": [
|
|
123
|
+
{ "max_nights": 30, "amount": 0 },
|
|
124
|
+
{ "min_nights": 30, "max_nights": 120, "amount": 50 },
|
|
125
|
+
{ "min_nights": 120, "max_nights": 240, "amount": 100 },
|
|
126
|
+
{ "min_nights": 240, "amount": 150 }
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
"nl.fixed_per_pitch_per_year": {
|
|
132
|
+
"description": "Per-pitch annual levy. Requires pitch_count on input. Primarily used with the annual_operator_assessment mode; included here so that per-booking engines can at least validate and reject explicitly.",
|
|
133
|
+
"since": "v1",
|
|
134
|
+
"params_schema": {
|
|
135
|
+
"type": "object",
|
|
136
|
+
"required": ["amount_per_pitch"],
|
|
137
|
+
"properties": {
|
|
138
|
+
"amount_per_pitch": { "type": "number", "minimum": 0 },
|
|
139
|
+
"season": {
|
|
140
|
+
"type": "string",
|
|
141
|
+
"enum": ["full_year", "pre_season", "post_season", "per_month"]
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"additionalProperties": false
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"nl.forfait_per_person_per_night": {
|
|
148
|
+
"description": "Per-person-per-night rate applied to DEEMED inputs (nights and persons derived from ordinance-defined forfaits, e.g. Roerdalen: yearly pitch = 80 nights x 2.4 persons). Concrete forfait table lives in params; engine multiplies rate * deemed_nights * deemed_persons * pitch_count.",
|
|
149
|
+
"since": "v1",
|
|
150
|
+
"params_schema": {
|
|
151
|
+
"type": "object",
|
|
152
|
+
"required": ["amount", "forfait"],
|
|
153
|
+
"properties": {
|
|
154
|
+
"amount": { "type": "number", "minimum": 0 },
|
|
155
|
+
"forfait": {
|
|
156
|
+
"type": "object",
|
|
157
|
+
"required": ["nights", "persons_per_pitch"],
|
|
158
|
+
"properties": {
|
|
159
|
+
"nights": { "type": "number", "minimum": 0 },
|
|
160
|
+
"persons_per_pitch": { "type": "number", "minimum": 0 },
|
|
161
|
+
"regime": {
|
|
162
|
+
"type": "string",
|
|
163
|
+
"enum": ["yearly_pitch", "seasonal_pitch", "bed_rental"]
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"additionalProperties": false
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"additionalProperties": false
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"predicates": {
|
|
174
|
+
"guest.resident_of_same_municipality": {
|
|
175
|
+
"description": "True when main_guest_municipality_code equals property_municipality_code (case-insensitive).",
|
|
176
|
+
"since": "v1",
|
|
177
|
+
"params_schema": { "type": "object", "additionalProperties": false }
|
|
178
|
+
},
|
|
179
|
+
"guest.age_below": {
|
|
180
|
+
"description": "True when at least one (or N, if params.count set) guest is younger than max_age on the reference night.",
|
|
181
|
+
"since": "v1",
|
|
182
|
+
"params_schema": {
|
|
183
|
+
"type": "object",
|
|
184
|
+
"required": ["max_age"],
|
|
185
|
+
"properties": {
|
|
186
|
+
"max_age": { "type": "integer", "minimum": 0 },
|
|
187
|
+
"night_index": {
|
|
188
|
+
"type": "string",
|
|
189
|
+
"enum": ["first", "any", "each"],
|
|
190
|
+
"default": "any",
|
|
191
|
+
"description": "Which night the age is evaluated against. Roerdalen 'under 2 first night' uses 'first'."
|
|
192
|
+
},
|
|
193
|
+
"count": { "type": "integer", "minimum": 1, "default": 1 }
|
|
194
|
+
},
|
|
195
|
+
"additionalProperties": false
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"stay.purpose_in": {
|
|
199
|
+
"description": "True when booking_input.stay_purpose is in the allowed list.",
|
|
200
|
+
"since": "v1",
|
|
201
|
+
"params_schema": {
|
|
202
|
+
"type": "object",
|
|
203
|
+
"required": ["values"],
|
|
204
|
+
"properties": {
|
|
205
|
+
"values": {
|
|
206
|
+
"type": "array",
|
|
207
|
+
"items": {
|
|
208
|
+
"type": "string",
|
|
209
|
+
"enum": ["school_group", "youth_group", "leisure", "business", "medical", "asylum", "government_ordered"]
|
|
210
|
+
},
|
|
211
|
+
"minItems": 1
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"additionalProperties": false
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"stay.wtza_care_institution": {
|
|
218
|
+
"description": "Stay is at a Wtza-registered care institution. Short-circuit exemption in all four sampled NL ordinances.",
|
|
219
|
+
"since": "v1",
|
|
220
|
+
"params_schema": { "type": "object", "additionalProperties": false }
|
|
221
|
+
},
|
|
222
|
+
"stay.coa_asylum_housing": {
|
|
223
|
+
"description": "Stay is COA asylum-seeker housing.",
|
|
224
|
+
"since": "v1",
|
|
225
|
+
"params_schema": { "type": "object", "additionalProperties": false }
|
|
226
|
+
},
|
|
227
|
+
"stay.accommodation_brought_by": {
|
|
228
|
+
"description": "Guest brings their own accommodation vs operator provides (Breda camping vs bungalow distinction).",
|
|
229
|
+
"since": "v1",
|
|
230
|
+
"params_schema": {
|
|
231
|
+
"type": "object",
|
|
232
|
+
"required": ["value"],
|
|
233
|
+
"properties": {
|
|
234
|
+
"value": { "type": "string", "enum": ["guest", "operator"] }
|
|
235
|
+
},
|
|
236
|
+
"additionalProperties": false
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"stay.pricing_arrangement": {
|
|
240
|
+
"description": "Operator-elected pricing regime. 'per_night' = charged per person per night; 'arrangement' = tiered flat amount by stay-duration bucket. Breda allows camping operators to elect either. Input must assert the chosen regime.",
|
|
241
|
+
"since": "v1",
|
|
242
|
+
"params_schema": {
|
|
243
|
+
"type": "object",
|
|
244
|
+
"required": ["value"],
|
|
245
|
+
"properties": {
|
|
246
|
+
"value": { "type": "string", "enum": ["per_night", "arrangement"] }
|
|
247
|
+
},
|
|
248
|
+
"additionalProperties": false
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"stay.supervised_minor_group": {
|
|
252
|
+
"description": "True when the booking is an organized minor group with enough minors and adult supervisors. Breda exempts groups of more than 10 minors accompanied by 18+ supervisors.",
|
|
253
|
+
"since": "v1",
|
|
254
|
+
"params_schema": {
|
|
255
|
+
"type": "object",
|
|
256
|
+
"required": ["min_minors", "min_supervisors", "supervisor_min_age"],
|
|
257
|
+
"properties": {
|
|
258
|
+
"min_minors": { "type": "integer", "minimum": 1 },
|
|
259
|
+
"min_supervisors": { "type": "integer", "minimum": 1 },
|
|
260
|
+
"supervisor_min_age": { "type": "integer", "minimum": 0 },
|
|
261
|
+
"allowed_purposes": {
|
|
262
|
+
"type": "array",
|
|
263
|
+
"items": {
|
|
264
|
+
"type": "string",
|
|
265
|
+
"enum": ["school_group", "youth_group", "leisure", "business", "medical", "asylum", "government_ordered"]
|
|
266
|
+
},
|
|
267
|
+
"minItems": 1
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
"additionalProperties": false
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
"stay.seasonal_window": {
|
|
274
|
+
"description": "Stay date falls within a recurring month-day window (wraps year). Schouwen-Duiveland seasonal surcharges.",
|
|
275
|
+
"since": "v1",
|
|
276
|
+
"params_schema": {
|
|
277
|
+
"type": "object",
|
|
278
|
+
"required": ["start_mmdd", "end_mmdd"],
|
|
279
|
+
"properties": {
|
|
280
|
+
"start_mmdd": { "type": "string", "pattern": "^\\d{2}-\\d{2}$" },
|
|
281
|
+
"end_mmdd": { "type": "string", "pattern": "^\\d{2}-\\d{2}$" }
|
|
282
|
+
},
|
|
283
|
+
"additionalProperties": false
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
"pitch.ownership_restriction": {
|
|
287
|
+
"description": "Schouwen-Duiveland: pitch reserved for owner + household; non-owner guests excluded.",
|
|
288
|
+
"since": "v1",
|
|
289
|
+
"params_schema": {
|
|
290
|
+
"type": "object",
|
|
291
|
+
"properties": {
|
|
292
|
+
"allowed": {
|
|
293
|
+
"type": "array",
|
|
294
|
+
"items": { "type": "string", "enum": ["owner", "owner_household"] }
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
"additionalProperties": false
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"cross_tax.already_subject_to": {
|
|
301
|
+
"description": "Booking is already subject to another named tax (Roerdalen: forensenbelasting). Engine does not verify; input must assert it.",
|
|
302
|
+
"since": "v1",
|
|
303
|
+
"params_schema": {
|
|
304
|
+
"type": "object",
|
|
305
|
+
"required": ["tax"],
|
|
306
|
+
"properties": {
|
|
307
|
+
"tax": {
|
|
308
|
+
"type": "string",
|
|
309
|
+
"enum": ["forensenbelasting", "watertoeristenbelasting", "vat", "corporate"]
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
"additionalProperties": false
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "nl-aa_en_hunze-2024-11-29",
|
|
3
|
+
"domain": "tourist_tax",
|
|
4
|
+
"lifecycle": "draft",
|
|
5
|
+
"jurisdiction": {
|
|
6
|
+
"country_code": "NL",
|
|
7
|
+
"country_name": "Netherlands",
|
|
8
|
+
"region_code": "",
|
|
9
|
+
"region_name": ""
|
|
10
|
+
},
|
|
11
|
+
"notes": "Auto-generated from CVDR publication analysis. Source-backed draft only; review required before conformance use.",
|
|
12
|
+
"assessment_policy": {
|
|
13
|
+
"period": "calendar_year",
|
|
14
|
+
"minimum_assessment_amount": {
|
|
15
|
+
"amount": 10,
|
|
16
|
+
"currency": "EUR"
|
|
17
|
+
},
|
|
18
|
+
"notes": "Assessment period inferred from the belastingtijdvak article. Minimum assessment amount inferred from the aanslaggrens article."
|
|
19
|
+
},
|
|
20
|
+
"rules": [
|
|
21
|
+
{
|
|
22
|
+
"id": "2024-11-29-rate-1",
|
|
23
|
+
"municipality_code": "1680",
|
|
24
|
+
"municipality_name": "Aa en Hunze",
|
|
25
|
+
"region_code": "",
|
|
26
|
+
"valid_from": "2024-11-29",
|
|
27
|
+
"valid_to": "2025-11-27",
|
|
28
|
+
"applies_to": {
|
|
29
|
+
"accommodation_types": []
|
|
30
|
+
},
|
|
31
|
+
"calculation": {
|
|
32
|
+
"kind": "generic.per_person_per_night",
|
|
33
|
+
"params": {
|
|
34
|
+
"amount": 1.55
|
|
35
|
+
},
|
|
36
|
+
"currency": "EUR"
|
|
37
|
+
},
|
|
38
|
+
"predicates": [],
|
|
39
|
+
"exemptions": [
|
|
40
|
+
{
|
|
41
|
+
"kind": "guest.resident_of_same_municipality",
|
|
42
|
+
"params": null
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"kind": "stay.wtza_care_institution",
|
|
46
|
+
"params": null
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"kind": "stay.coa_asylum_housing",
|
|
50
|
+
"params": null
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"source": {
|
|
54
|
+
"source_url": "https://lokaleregelgeving.overheid.nl/CVDR727133/1",
|
|
55
|
+
"cvdr_id": "CVDR727133",
|
|
56
|
+
"scraped_at": "2026-04-17T12:09:56Z",
|
|
57
|
+
"reviewed_at": null,
|
|
58
|
+
"reviewer": ""
|
|
59
|
+
},
|
|
60
|
+
"confidence": "scraped",
|
|
61
|
+
"notes": "Generated from tariff article. Reviewer must confirm category boundaries and exclusions. Evidence articles: 6"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "nl-aa_en_hunze-2025-11-28",
|
|
3
|
+
"domain": "tourist_tax",
|
|
4
|
+
"lifecycle": "draft",
|
|
5
|
+
"jurisdiction": {
|
|
6
|
+
"country_code": "NL",
|
|
7
|
+
"country_name": "Netherlands",
|
|
8
|
+
"region_code": "",
|
|
9
|
+
"region_name": ""
|
|
10
|
+
},
|
|
11
|
+
"notes": "Auto-generated from CVDR publication analysis. Source-backed draft only; review required before conformance use.",
|
|
12
|
+
"assessment_policy": {
|
|
13
|
+
"minimum_assessment_amount": {
|
|
14
|
+
"amount": 10,
|
|
15
|
+
"currency": "EUR"
|
|
16
|
+
},
|
|
17
|
+
"notes": "Assessment period inferred from the belastingtijdvak article. Minimum assessment amount inferred from the aanslaggrens article.",
|
|
18
|
+
"period": "calendar_year"
|
|
19
|
+
},
|
|
20
|
+
"rules": [
|
|
21
|
+
{
|
|
22
|
+
"applies_to": {
|
|
23
|
+
"accommodation_types": []
|
|
24
|
+
},
|
|
25
|
+
"calculation": {
|
|
26
|
+
"currency": "EUR",
|
|
27
|
+
"kind": "generic.per_person_per_night",
|
|
28
|
+
"params": {
|
|
29
|
+
"amount": 1.55
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"confidence": "scraped",
|
|
33
|
+
"exemptions": [
|
|
34
|
+
{
|
|
35
|
+
"kind": "guest.resident_of_same_municipality",
|
|
36
|
+
"params": null
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"kind": "stay.wtza_care_institution",
|
|
40
|
+
"params": null
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"kind": "stay.coa_asylum_housing",
|
|
44
|
+
"params": null
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"id": "2025-11-28-rate-1",
|
|
48
|
+
"municipality_code": "1680",
|
|
49
|
+
"municipality_name": "Aa en Hunze",
|
|
50
|
+
"notes": "Generated from tariff article. Reviewer must confirm category boundaries and exclusions. Evidence articles: 6",
|
|
51
|
+
"predicates": [],
|
|
52
|
+
"region_code": "",
|
|
53
|
+
"source": {
|
|
54
|
+
"cvdr_id": "CVDR747131",
|
|
55
|
+
"reviewed_at": null,
|
|
56
|
+
"reviewer": "",
|
|
57
|
+
"scraped_at": "2026-04-17T12:09:56Z",
|
|
58
|
+
"source_url": "https://lokaleregelgeving.overheid.nl/CVDR747131/1"
|
|
59
|
+
},
|
|
60
|
+
"valid_from": "2025-11-28",
|
|
61
|
+
"valid_to": null
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "nl-aalten-2024-12-23",
|
|
3
|
+
"domain": "tourist_tax",
|
|
4
|
+
"lifecycle": "draft",
|
|
5
|
+
"jurisdiction": {
|
|
6
|
+
"country_code": "NL",
|
|
7
|
+
"country_name": "Netherlands",
|
|
8
|
+
"region_code": "",
|
|
9
|
+
"region_name": ""
|
|
10
|
+
},
|
|
11
|
+
"notes": "Auto-generated from CVDR publication analysis. Source-backed draft only; review required before conformance use.",
|
|
12
|
+
"assessment_policy": {
|
|
13
|
+
"period": "calendar_year",
|
|
14
|
+
"minimum_assessment_amount": {
|
|
15
|
+
"amount": 10,
|
|
16
|
+
"currency": "EUR"
|
|
17
|
+
},
|
|
18
|
+
"notes": "Assessment period inferred from the belastingtijdvak article. Minimum assessment amount inferred from the aanslaggrens article."
|
|
19
|
+
},
|
|
20
|
+
"rules": [
|
|
21
|
+
{
|
|
22
|
+
"id": "2024-12-23-rate-1",
|
|
23
|
+
"municipality_code": "0197",
|
|
24
|
+
"municipality_name": "Aalten",
|
|
25
|
+
"region_code": "",
|
|
26
|
+
"valid_from": "2024-12-23",
|
|
27
|
+
"valid_to": "2025-12-19",
|
|
28
|
+
"applies_to": {
|
|
29
|
+
"accommodation_types": []
|
|
30
|
+
},
|
|
31
|
+
"calculation": {
|
|
32
|
+
"kind": "generic.per_person_per_night",
|
|
33
|
+
"params": {
|
|
34
|
+
"amount": 1.55
|
|
35
|
+
},
|
|
36
|
+
"currency": "EUR"
|
|
37
|
+
},
|
|
38
|
+
"predicates": [],
|
|
39
|
+
"exemptions": [
|
|
40
|
+
{
|
|
41
|
+
"kind": "guest.resident_of_same_municipality",
|
|
42
|
+
"params": null
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"kind": "stay.wtza_care_institution",
|
|
46
|
+
"params": null
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"kind": "stay.coa_asylum_housing",
|
|
50
|
+
"params": null
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"kind": "cross_tax.already_subject_to",
|
|
54
|
+
"params": {
|
|
55
|
+
"tax": "forensenbelasting"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"source": {
|
|
60
|
+
"source_url": "https://lokaleregelgeving.overheid.nl/CVDR730806/1",
|
|
61
|
+
"cvdr_id": "CVDR730806",
|
|
62
|
+
"scraped_at": "2026-04-17T12:09:56Z",
|
|
63
|
+
"reviewed_at": null,
|
|
64
|
+
"reviewer": ""
|
|
65
|
+
},
|
|
66
|
+
"confidence": "scraped",
|
|
67
|
+
"notes": "Generated from tariff article. Reviewer must confirm category boundaries and exclusions. Evidence articles: 6"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "nl-aalten-2025-12-20",
|
|
3
|
+
"domain": "tourist_tax",
|
|
4
|
+
"lifecycle": "draft",
|
|
5
|
+
"jurisdiction": {
|
|
6
|
+
"country_code": "NL",
|
|
7
|
+
"country_name": "Netherlands",
|
|
8
|
+
"region_code": "",
|
|
9
|
+
"region_name": ""
|
|
10
|
+
},
|
|
11
|
+
"notes": "Auto-generated from CVDR publication analysis. Source-backed draft only; review required before conformance use.",
|
|
12
|
+
"assessment_policy": {
|
|
13
|
+
"minimum_assessment_amount": {
|
|
14
|
+
"amount": 10,
|
|
15
|
+
"currency": "EUR"
|
|
16
|
+
},
|
|
17
|
+
"notes": "Assessment period inferred from the belastingtijdvak article. Minimum assessment amount inferred from the aanslaggrens article.",
|
|
18
|
+
"period": "calendar_year"
|
|
19
|
+
},
|
|
20
|
+
"rules": [
|
|
21
|
+
{
|
|
22
|
+
"applies_to": {
|
|
23
|
+
"accommodation_types": []
|
|
24
|
+
},
|
|
25
|
+
"calculation": {
|
|
26
|
+
"currency": "EUR",
|
|
27
|
+
"kind": "generic.per_person_per_night",
|
|
28
|
+
"params": {
|
|
29
|
+
"amount": 1.55
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"confidence": "scraped",
|
|
33
|
+
"exemptions": [
|
|
34
|
+
{
|
|
35
|
+
"kind": "guest.resident_of_same_municipality",
|
|
36
|
+
"params": null
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"kind": "stay.wtza_care_institution",
|
|
40
|
+
"params": null
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"kind": "stay.coa_asylum_housing",
|
|
44
|
+
"params": null
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"kind": "cross_tax.already_subject_to",
|
|
48
|
+
"params": {
|
|
49
|
+
"tax": "forensenbelasting"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"id": "2025-12-20-rate-1",
|
|
54
|
+
"municipality_code": "0197",
|
|
55
|
+
"municipality_name": "Aalten",
|
|
56
|
+
"notes": "Generated from tariff article. Reviewer must confirm category boundaries and exclusions. Evidence articles: 6",
|
|
57
|
+
"predicates": [],
|
|
58
|
+
"region_code": "",
|
|
59
|
+
"source": {
|
|
60
|
+
"cvdr_id": "CVDR751414",
|
|
61
|
+
"reviewed_at": null,
|
|
62
|
+
"reviewer": "",
|
|
63
|
+
"scraped_at": "2026-04-17T12:09:56Z",
|
|
64
|
+
"source_url": "https://lokaleregelgeving.overheid.nl/CVDR751414/1"
|
|
65
|
+
},
|
|
66
|
+
"valid_from": "2025-12-20",
|
|
67
|
+
"valid_to": null
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|