tax_conformance_kit 0.1.0 → 0.2.0

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.
Files changed (431) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +21 -0
  3. data/README.md +23 -11
  4. data/bin/taxctl +0 -0
  5. data/data/kind-registry.v1.json +350 -0
  6. data/data/regulation/es/impuesto_estancias_turisticas/catalonia/barcelona_city/2026-04-01.json +168 -0
  7. data/data/regulation/es/impuesto_estancias_turisticas/catalonia/barcelona_city/conformance/dutch_operator_barcelona_hotel_5_star.json +33 -0
  8. data/data/regulation/es/impuesto_estancias_turisticas/catalonia/barcelona_city/conformance/tourist_home_age_17_taxed.json +28 -0
  9. data/data/regulation/es/impuesto_estancias_turisticas/catalonia/rest_of_catalonia/2026-04-01.json +183 -0
  10. data/data/regulation/es/impuesto_estancias_turisticas/catalonia/rest_of_catalonia/conformance/barcelona_city_excluded.json +24 -0
  11. data/data/regulation/es/impuesto_estancias_turisticas/catalonia/rest_of_catalonia/conformance/girona_hotel_4_star.json +28 -0
  12. data/data/regulation/es/impuesto_turismo_sostenible/balearic_islands/2025-05-17.json +166 -0
  13. data/data/regulation/es/impuesto_turismo_sostenible/balearic_islands/conformance/palma_hotel_4_star_high_season_long_stay.json +32 -0
  14. data/data/regulation/es/impuesto_turismo_sostenible/balearic_islands/conformance/tourist_home_low_season.json +27 -0
  15. data/data/regulation/nl/gemeentelijke_verordening/aa_en_hunze/2024-11-29.json +64 -0
  16. data/data/regulation/nl/gemeentelijke_verordening/aa_en_hunze/2025-11-28.json +64 -0
  17. data/data/regulation/nl/gemeentelijke_verordening/aalten/2024-12-23.json +70 -0
  18. data/data/regulation/nl/gemeentelijke_verordening/aalten/2025-12-20.json +70 -0
  19. data/data/regulation/nl/gemeentelijke_verordening/achtkarspelen/2025-12-31.json +60 -0
  20. data/data/regulation/nl/gemeentelijke_verordening/alblasserdam/2025-01-01.json +61 -0
  21. data/data/regulation/nl/gemeentelijke_verordening/alblasserdam/2025-12-23.json +103 -0
  22. data/data/regulation/nl/gemeentelijke_verordening/alkmaar/2024-12-18.json +107 -0
  23. data/data/regulation/nl/gemeentelijke_verordening/alkmaar/2025-12-17.json +107 -0
  24. data/data/regulation/nl/gemeentelijke_verordening/almelo/2024-01-01.json +108 -0
  25. data/data/regulation/nl/gemeentelijke_verordening/almelo/2025-01-01.json +105 -0
  26. data/data/regulation/nl/gemeentelijke_verordening/almelo/2026-01-01.json +105 -0
  27. data/data/regulation/nl/gemeentelijke_verordening/almere/2024-12-25.json +71 -0
  28. data/data/regulation/nl/gemeentelijke_verordening/almere/2025-12-24.json +71 -0
  29. data/data/regulation/nl/gemeentelijke_verordening/alphen_aan_den_rijn/2024-12-18.json +63 -0
  30. data/data/regulation/nl/gemeentelijke_verordening/alphen_aan_den_rijn/2025-12-19.json +63 -0
  31. data/data/regulation/nl/gemeentelijke_verordening/alphen_chaam/2025-01-01.json +71 -0
  32. data/data/regulation/nl/gemeentelijke_verordening/alphen_chaam/2026-01-01.json +120 -0
  33. data/data/regulation/nl/gemeentelijke_verordening/ameland/2024-01-01.json +65 -0
  34. data/data/regulation/nl/gemeentelijke_verordening/ameland/2025-01-01.json +65 -0
  35. data/data/regulation/nl/gemeentelijke_verordening/ameland/2026-01-01.json +65 -0
  36. data/data/regulation/nl/gemeentelijke_verordening/amersfoort/2024-12-24.json +61 -0
  37. data/data/regulation/nl/gemeentelijke_verordening/amersfoort/2025-12-20.json +61 -0
  38. data/data/regulation/nl/gemeentelijke_verordening/amstelveen/2025-01-01.json +111 -0
  39. data/data/regulation/nl/gemeentelijke_verordening/amstelveen/2026-01-01.json +111 -0
  40. data/data/regulation/nl/gemeentelijke_verordening/amsterdam/2026-01-01.json +45 -0
  41. data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/percentage_of_base_normal.json +18 -0
  42. data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/percentage_of_base_rounding_up.json +18 -0
  43. data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/quarterly_threshold_below_minimum.assessment.json +43 -0
  44. data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/quarterly_threshold_exact_minimum.assessment.json +43 -0
  45. data/data/regulation/nl/gemeentelijke_verordening/amsterdam/conformance/quarterly_threshold_met.assessment.json +43 -0
  46. data/data/regulation/nl/gemeentelijke_verordening/apeldoorn/2024-04-04.json +140 -0
  47. data/data/regulation/nl/gemeentelijke_verordening/apeldoorn/2024-12-24.json +140 -0
  48. data/data/regulation/nl/gemeentelijke_verordening/apeldoorn/2025-12-30.json +140 -0
  49. data/data/regulation/nl/gemeentelijke_verordening/baarle_nassau/2025-01-01.json +70 -0
  50. data/data/regulation/nl/gemeentelijke_verordening/baarle_nassau/2026-01-01.json +70 -0
  51. data/data/regulation/nl/gemeentelijke_verordening/baarn/2024-12-31.json +78 -0
  52. data/data/regulation/nl/gemeentelijke_verordening/baarn/2025-12-30.json +78 -0
  53. data/data/regulation/nl/gemeentelijke_verordening/barneveld/2024-12-12.json +70 -0
  54. data/data/regulation/nl/gemeentelijke_verordening/barneveld/2025-11-28.json +120 -0
  55. data/data/regulation/nl/gemeentelijke_verordening/beekdaelen/2024-11-22.json +112 -0
  56. data/data/regulation/nl/gemeentelijke_verordening/beekdaelen/2025-11-28.json +112 -0
  57. data/data/regulation/nl/gemeentelijke_verordening/bergen_nh/2024-12-24.json +73 -0
  58. data/data/regulation/nl/gemeentelijke_verordening/bergen_nh/2025-12-18.json +73 -0
  59. data/data/regulation/nl/gemeentelijke_verordening/bergen_op_zoom/2025-12-12.json +72 -0
  60. data/data/regulation/nl/gemeentelijke_verordening/bernheze/2024-01-01.json +63 -0
  61. data/data/regulation/nl/gemeentelijke_verordening/bernheze/2025-03-20.json +67 -0
  62. data/data/regulation/nl/gemeentelijke_verordening/bernheze/2025-12-25.json +67 -0
  63. data/data/regulation/nl/gemeentelijke_verordening/best/2024-11-23.json +70 -0
  64. data/data/regulation/nl/gemeentelijke_verordening/best/2025-11-21.json +70 -0
  65. data/data/regulation/nl/gemeentelijke_verordening/beuningen/2024-12-21.json +66 -0
  66. data/data/regulation/nl/gemeentelijke_verordening/beuningen/2025-12-20.json +66 -0
  67. data/data/regulation/nl/gemeentelijke_verordening/beverwijk/2024-12-19.json +61 -0
  68. data/data/regulation/nl/gemeentelijke_verordening/beverwijk/2025-12-16.json +61 -0
  69. data/data/regulation/nl/gemeentelijke_verordening/blaricum/2024-01-01.json +107 -0
  70. data/data/regulation/nl/gemeentelijke_verordening/blaricum/2025-01-01.json +107 -0
  71. data/data/regulation/nl/gemeentelijke_verordening/blaricum/2026-01-01.json +107 -0
  72. data/data/regulation/nl/gemeentelijke_verordening/bloemendaal/2024-01-04.json +105 -0
  73. data/data/regulation/nl/gemeentelijke_verordening/bloemendaal/2024-12-31.json +105 -0
  74. data/data/regulation/nl/gemeentelijke_verordening/bloemendaal/2026-01-01.json +97 -0
  75. data/data/regulation/nl/gemeentelijke_verordening/boekel/2024-12-18.json +64 -0
  76. data/data/regulation/nl/gemeentelijke_verordening/borger_odoorn/2025-01-01.json +170 -0
  77. data/data/regulation/nl/gemeentelijke_verordening/borger_odoorn/2026-01-01.json +170 -0
  78. data/data/regulation/nl/gemeentelijke_verordening/borne/2025-01-01.json +105 -0
  79. data/data/regulation/nl/gemeentelijke_verordening/borne/2026-01-01.json +105 -0
  80. data/data/regulation/nl/gemeentelijke_verordening/breda/2024-12-25.json +107 -0
  81. data/data/regulation/nl/gemeentelijke_verordening/breda/2026-01-01.json +225 -0
  82. data/data/regulation/nl/gemeentelijke_verordening/breda/2026-03-19.json +170 -0
  83. data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest.json +20 -0
  84. data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest_119_nights.json +20 -0
  85. data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest_120_nights.json +20 -0
  86. data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest_29_nights.json +20 -0
  87. data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/camping_arrangement_guest_30_nights.json +20 -0
  88. data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/coa_exempt.json +19 -0
  89. data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/supervised_minor_group_exempt.json +36 -0
  90. data/data/regulation/nl/gemeentelijke_verordening/breda/conformance/wtza_exempt.json +19 -0
  91. data/data/regulation/nl/gemeentelijke_verordening/bronckhorst/2024-01-01.json +120 -0
  92. data/data/regulation/nl/gemeentelijke_verordening/brummen/2024-01-01.json +152 -0
  93. data/data/regulation/nl/gemeentelijke_verordening/brummen/2025-01-01.json +147 -0
  94. data/data/regulation/nl/gemeentelijke_verordening/brummen/2026-01-01.json +147 -0
  95. data/data/regulation/nl/gemeentelijke_verordening/brunssum/2024-12-19.json +60 -0
  96. data/data/regulation/nl/gemeentelijke_verordening/brunssum/2025-12-25.json +64 -0
  97. data/data/regulation/nl/gemeentelijke_verordening/castricum/2024-11-27.json +108 -0
  98. data/data/regulation/nl/gemeentelijke_verordening/castricum/2025-11-26.json +64 -0
  99. data/data/regulation/nl/gemeentelijke_verordening/coevorden/2025-01-01.json +67 -0
  100. data/data/regulation/nl/gemeentelijke_verordening/culemborg/2024-12-19.json +70 -0
  101. data/data/regulation/nl/gemeentelijke_verordening/culemborg/2025-12-30.json +70 -0
  102. data/data/regulation/nl/gemeentelijke_verordening/de_fryske_marren/2024-12-24.json +77 -0
  103. data/data/regulation/nl/gemeentelijke_verordening/de_fryske_marren/2026-01-01.json +77 -0
  104. data/data/regulation/nl/gemeentelijke_verordening/de_wolden/2025-01-01.json +70 -0
  105. data/data/regulation/nl/gemeentelijke_verordening/de_wolden/2026-01-01.json +70 -0
  106. data/data/regulation/nl/gemeentelijke_verordening/deurne/2024-11-29.json +62 -0
  107. data/data/regulation/nl/gemeentelijke_verordening/deurne/2026-01-01.json +62 -0
  108. data/data/regulation/nl/gemeentelijke_verordening/deventer/2024-11-19.json +105 -0
  109. data/data/regulation/nl/gemeentelijke_verordening/deventer/2025-12-05.json +105 -0
  110. data/data/regulation/nl/gemeentelijke_verordening/diemen/2024-01-01.json +66 -0
  111. data/data/regulation/nl/gemeentelijke_verordening/diemen/2024-12-28.json +66 -0
  112. data/data/regulation/nl/gemeentelijke_verordening/diemen/2026-01-01.json +66 -0
  113. data/data/regulation/nl/gemeentelijke_verordening/dinkelland/2024-12-28.json +167 -0
  114. data/data/regulation/nl/gemeentelijke_verordening/dinkelland/2025-12-30.json +118 -0
  115. data/data/regulation/nl/gemeentelijke_verordening/doesburg/2024-12-25.json +110 -0
  116. data/data/regulation/nl/gemeentelijke_verordening/doesburg/2025-12-24.json +110 -0
  117. data/data/regulation/nl/gemeentelijke_verordening/doetinchem/2024-12-25.json +122 -0
  118. data/data/regulation/nl/gemeentelijke_verordening/doetinchem/2025-12-24.json +122 -0
  119. data/data/regulation/nl/gemeentelijke_verordening/drechterland/2024-12-31.json +67 -0
  120. data/data/regulation/nl/gemeentelijke_verordening/drechterland/2025-12-30.json +67 -0
  121. data/data/regulation/nl/gemeentelijke_verordening/dronten/2024-12-07.json +76 -0
  122. data/data/regulation/nl/gemeentelijke_verordening/dronten/2025-12-05.json +76 -0
  123. data/data/regulation/nl/gemeentelijke_verordening/edam_volendam/2024-12-19.json +122 -0
  124. data/data/regulation/nl/gemeentelijke_verordening/edam_volendam/2025-12-23.json +122 -0
  125. data/data/regulation/nl/gemeentelijke_verordening/ede/2024-12-04.json +108 -0
  126. data/data/regulation/nl/gemeentelijke_verordening/ede/2025-11-29.json +108 -0
  127. data/data/regulation/nl/gemeentelijke_verordening/eemnes/2025-01-01.json +131 -0
  128. data/data/regulation/nl/gemeentelijke_verordening/eemnes/2026-01-01.json +131 -0
  129. data/data/regulation/nl/gemeentelijke_verordening/eindhoven/2025-01-01.json +64 -0
  130. data/data/regulation/nl/gemeentelijke_verordening/eindhoven/2025-12-03.json +61 -0
  131. data/data/regulation/nl/gemeentelijke_verordening/elburg/2024-01-01.json +132 -0
  132. data/data/regulation/nl/gemeentelijke_verordening/emmen/2025-01-01.json +61 -0
  133. data/data/regulation/nl/gemeentelijke_verordening/emmen/2026-01-01.json +61 -0
  134. data/data/regulation/nl/gemeentelijke_verordening/enkhuizen/2024-12-31.json +61 -0
  135. data/data/regulation/nl/gemeentelijke_verordening/enkhuizen/2026-01-01.json +67 -0
  136. data/data/regulation/nl/gemeentelijke_verordening/enschede/2024-01-01.json +108 -0
  137. data/data/regulation/nl/gemeentelijke_verordening/enschede/2025-01-01.json +105 -0
  138. data/data/regulation/nl/gemeentelijke_verordening/enschede/2026-01-01.json +105 -0
  139. data/data/regulation/nl/gemeentelijke_verordening/etten_leur/2024-12-10.json +72 -0
  140. data/data/regulation/nl/gemeentelijke_verordening/geertruidenberg/2024-11-27.json +115 -0
  141. data/data/regulation/nl/gemeentelijke_verordening/geertruidenberg/2025-12-11.json +115 -0
  142. data/data/regulation/nl/gemeentelijke_verordening/geldrop_mierlo/2024-12-17.json +67 -0
  143. data/data/regulation/nl/gemeentelijke_verordening/geldrop_mierlo/2025-11-21.json +67 -0
  144. data/data/regulation/nl/gemeentelijke_verordening/gemert_bakel/2024-01-25.json +67 -0
  145. data/data/regulation/nl/gemeentelijke_verordening/gemert_bakel/2024-01-27.json +67 -0
  146. data/data/regulation/nl/gemeentelijke_verordening/gemert_bakel/2024-12-18.json +67 -0
  147. data/data/regulation/nl/gemeentelijke_verordening/gemert_bakel/2025-12-18.json +67 -0
  148. data/data/regulation/nl/gemeentelijke_verordening/gilze_en_rijen/2025-01-01.json +108 -0
  149. data/data/regulation/nl/gemeentelijke_verordening/gilze_en_rijen/2025-12-25.json +120 -0
  150. data/data/regulation/nl/gemeentelijke_verordening/goes/2024-12-29.json +69 -0
  151. data/data/regulation/nl/gemeentelijke_verordening/goes/2025-12-26.json +69 -0
  152. data/data/regulation/nl/gemeentelijke_verordening/gooise_meren/2024-12-14.json +70 -0
  153. data/data/regulation/nl/gemeentelijke_verordening/gooise_meren/2026-01-01.json +70 -0
  154. data/data/regulation/nl/gemeentelijke_verordening/gorinchem/2025-12-25.json +100 -0
  155. data/data/regulation/nl/gemeentelijke_verordening/gouda/2024-12-17.json +64 -0
  156. data/data/regulation/nl/gemeentelijke_verordening/gouda/2025-12-16.json +64 -0
  157. data/data/regulation/nl/gemeentelijke_verordening/haaksbergen/2024-01-01.json +120 -0
  158. data/data/regulation/nl/gemeentelijke_verordening/haaksbergen/2025-01-01.json +117 -0
  159. data/data/regulation/nl/gemeentelijke_verordening/haaksbergen/2026-01-01.json +117 -0
  160. data/data/regulation/nl/gemeentelijke_verordening/haarlem/2024-12-28.json +193 -0
  161. data/data/regulation/nl/gemeentelijke_verordening/haarlem/2025-12-24.json +191 -0
  162. data/data/regulation/nl/gemeentelijke_verordening/haarlemmermeer/2024-12-07.json +61 -0
  163. data/data/regulation/nl/gemeentelijke_verordening/haarlemmermeer/2025-12-11.json +61 -0
  164. data/data/regulation/nl/gemeentelijke_verordening/halderberge/2024-12-20.json +70 -0
  165. data/data/regulation/nl/gemeentelijke_verordening/halderberge/2025-12-24.json +70 -0
  166. data/data/regulation/nl/gemeentelijke_verordening/hardenberg/2025-12-25.json +67 -0
  167. data/data/regulation/nl/gemeentelijke_verordening/harderwijk/2024-12-21.json +70 -0
  168. data/data/regulation/nl/gemeentelijke_verordening/harderwijk/2025-12-20.json +70 -0
  169. data/data/regulation/nl/gemeentelijke_verordening/harlingen/2024-12-17.json +64 -0
  170. data/data/regulation/nl/gemeentelijke_verordening/harlingen/2025-12-10.json +64 -0
  171. data/data/regulation/nl/gemeentelijke_verordening/heemskerk/2024-12-18.json +61 -0
  172. data/data/regulation/nl/gemeentelijke_verordening/heemskerk/2025-12-19.json +61 -0
  173. data/data/regulation/nl/gemeentelijke_verordening/heemstede/2025-01-01.json +64 -0
  174. data/data/regulation/nl/gemeentelijke_verordening/heemstede/2025-12-23.json +64 -0
  175. data/data/regulation/nl/gemeentelijke_verordening/heeze_leende/2024-12-20.json +193 -0
  176. data/data/regulation/nl/gemeentelijke_verordening/heeze_leende/2025-12-04.json +61 -0
  177. data/data/regulation/nl/gemeentelijke_verordening/heiloo/2024-11-27.json +61 -0
  178. data/data/regulation/nl/gemeentelijke_verordening/heiloo/2025-11-14.json +61 -0
  179. data/data/regulation/nl/gemeentelijke_verordening/helmond/2024-01-01.json +109 -0
  180. data/data/regulation/nl/gemeentelijke_verordening/helmond/2025-01-01.json +109 -0
  181. data/data/regulation/nl/gemeentelijke_verordening/helmond/2026-01-01.json +109 -0
  182. data/data/regulation/nl/gemeentelijke_verordening/het_hogeland/2026-01-01.json +61 -0
  183. data/data/regulation/nl/gemeentelijke_verordening/heumen/2025-01-01.json +64 -0
  184. data/data/regulation/nl/gemeentelijke_verordening/heusden/2024-01-01.json +172 -0
  185. data/data/regulation/nl/gemeentelijke_verordening/heusden/2025-01-01.json +172 -0
  186. data/data/regulation/nl/gemeentelijke_verordening/heusden/2026-01-01.json +152 -0
  187. data/data/regulation/nl/gemeentelijke_verordening/hoeksche_waard/2024-12-31.json +62 -0
  188. data/data/regulation/nl/gemeentelijke_verordening/hoeksche_waard/2025-12-24.json +59 -0
  189. data/data/regulation/nl/gemeentelijke_verordening/hof_van_twente/2024-01-01.json +108 -0
  190. data/data/regulation/nl/gemeentelijke_verordening/hoogeveen/2025-01-01.json +70 -0
  191. data/data/regulation/nl/gemeentelijke_verordening/hoogeveen/2026-01-01.json +70 -0
  192. data/data/regulation/nl/gemeentelijke_verordening/houten/2024-12-19.json +65 -0
  193. data/data/regulation/nl/gemeentelijke_verordening/houten/2025-12-23.json +65 -0
  194. data/data/regulation/nl/gemeentelijke_verordening/huizen/2024-11-24.json +119 -0
  195. data/data/regulation/nl/gemeentelijke_verordening/huizen/2025-11-16.json +119 -0
  196. data/data/regulation/nl/gemeentelijke_verordening/hulst/2024-11-27.json +117 -0
  197. data/data/regulation/nl/gemeentelijke_verordening/hulst/2025-11-26.json +117 -0
  198. data/data/regulation/nl/gemeentelijke_verordening/kampen/2024-11-20.json +60 -0
  199. data/data/regulation/nl/gemeentelijke_verordening/kampen/2025-11-12.json +60 -0
  200. data/data/regulation/nl/gemeentelijke_verordening/katwijk/2024-12-25.json +122 -0
  201. data/data/regulation/nl/gemeentelijke_verordening/katwijk/2025-12-12.json +122 -0
  202. data/data/regulation/nl/gemeentelijke_verordening/koggenland/2024-11-16.json +59 -0
  203. data/data/regulation/nl/gemeentelijke_verordening/krimpenerwaard/2024-01-01.json +64 -0
  204. data/data/regulation/nl/gemeentelijke_verordening/krimpenerwaard/2025-01-01.json +64 -0
  205. data/data/regulation/nl/gemeentelijke_verordening/krimpenerwaard/2026-01-01.json +61 -0
  206. data/data/regulation/nl/gemeentelijke_verordening/landgraaf/2024-01-01.json +64 -0
  207. data/data/regulation/nl/gemeentelijke_verordening/landgraaf/2025-01-01.json +64 -0
  208. data/data/regulation/nl/gemeentelijke_verordening/landgraaf/2026-01-01.json +66 -0
  209. data/data/regulation/nl/gemeentelijke_verordening/landsmeer/2025-01-03.json +72 -0
  210. data/data/regulation/nl/gemeentelijke_verordening/landsmeer/2025-12-30.json +72 -0
  211. data/data/regulation/nl/gemeentelijke_verordening/leeuwarden/2024-12-17.json +68 -0
  212. data/data/regulation/nl/gemeentelijke_verordening/leeuwarden/2025-12-02.json +74 -0
  213. data/data/regulation/nl/gemeentelijke_verordening/leiden/2025-12-20.json +105 -0
  214. data/data/regulation/nl/gemeentelijke_verordening/leiderdorp/2024-12-24.json +105 -0
  215. data/data/regulation/nl/gemeentelijke_verordening/leiderdorp/2025-12-24.json +105 -0
  216. data/data/regulation/nl/gemeentelijke_verordening/leidschendam_voorburg/2024-01-01.json +110 -0
  217. data/data/regulation/nl/gemeentelijke_verordening/leidschendam_voorburg/2025-01-01.json +110 -0
  218. data/data/regulation/nl/gemeentelijke_verordening/leidschendam_voorburg/2026-01-01.json +110 -0
  219. data/data/regulation/nl/gemeentelijke_verordening/leusden/2024-01-01.json +66 -0
  220. data/data/regulation/nl/gemeentelijke_verordening/leusden/2025-01-01.json +66 -0
  221. data/data/regulation/nl/gemeentelijke_verordening/leusden/2026-01-01.json +108 -0
  222. data/data/regulation/nl/gemeentelijke_verordening/lingewaard/2024-01-01.json +61 -0
  223. data/data/regulation/nl/gemeentelijke_verordening/lingewaard/2025-01-01.json +61 -0
  224. data/data/regulation/nl/gemeentelijke_verordening/lochem/2024-01-01.json +110 -0
  225. data/data/regulation/nl/gemeentelijke_verordening/lochem/2025-01-01.json +69 -0
  226. data/data/regulation/nl/gemeentelijke_verordening/lochem/2026-01-01.json +69 -0
  227. data/data/regulation/nl/gemeentelijke_verordening/loon_op_zand/2024-12-25.json +256 -0
  228. data/data/regulation/nl/gemeentelijke_verordening/loon_op_zand/2025-12-24.json +196 -0
  229. data/data/regulation/nl/gemeentelijke_verordening/lopik/2024-01-01.json +64 -0
  230. data/data/regulation/nl/gemeentelijke_verordening/lopik/2024-12-24.json +64 -0
  231. data/data/regulation/nl/gemeentelijke_verordening/lopik/2025-12-24.json +64 -0
  232. data/data/regulation/nl/gemeentelijke_verordening/maashorst/2024-12-19.json +118 -0
  233. data/data/regulation/nl/gemeentelijke_verordening/maashorst/2025-12-30.json +118 -0
  234. data/data/regulation/nl/gemeentelijke_verordening/maassluis/2024-01-01.json +57 -0
  235. data/data/regulation/nl/gemeentelijke_verordening/maassluis/2025-01-01.json +57 -0
  236. data/data/regulation/nl/gemeentelijke_verordening/maassluis/2026-01-01.json +57 -0
  237. data/data/regulation/nl/gemeentelijke_verordening/meerssen/2024-12-27.json +68 -0
  238. data/data/regulation/nl/gemeentelijke_verordening/midden_drenthe/2025-12-23.json +117 -0
  239. data/data/regulation/nl/gemeentelijke_verordening/midden_groningen/2024-12-31.json +105 -0
  240. data/data/regulation/nl/gemeentelijke_verordening/midden_groningen/2025-12-29.json +105 -0
  241. data/data/regulation/nl/gemeentelijke_verordening/molenlanden/2024-01-01.json +64 -0
  242. data/data/regulation/nl/gemeentelijke_verordening/molenlanden/2025-01-01.json +64 -0
  243. data/data/regulation/nl/gemeentelijke_verordening/nederweert/2024-12-21.json +64 -0
  244. data/data/regulation/nl/gemeentelijke_verordening/nederweert/2025-12-18.json +64 -0
  245. data/data/regulation/nl/gemeentelijke_verordening/nieuwegein/2024-12-24.json +64 -0
  246. data/data/regulation/nl/gemeentelijke_verordening/nieuwegein/2025-12-30.json +64 -0
  247. data/data/regulation/nl/gemeentelijke_verordening/noardeast_frysl/303/242n/2025-01-01.json +77 -0
  248. data/data/regulation/nl/gemeentelijke_verordening/noardeast_frysl/303/242n/2025-12-24.json +77 -0
  249. data/data/regulation/nl/gemeentelijke_verordening/noord_beveland/2024-07-17.json +67 -0
  250. data/data/regulation/nl/gemeentelijke_verordening/noord_beveland/2025-01-01.json +67 -0
  251. data/data/regulation/nl/gemeentelijke_verordening/noord_beveland/2025-12-24.json +67 -0
  252. data/data/regulation/nl/gemeentelijke_verordening/nuenen_gerwen_en_nederwetten/2024-11-28.json +57 -0
  253. data/data/regulation/nl/gemeentelijke_verordening/nuenen_gerwen_en_nederwetten/2025-11-20.json +57 -0
  254. data/data/regulation/nl/gemeentelijke_verordening/oegstgeest/2024-12-18.json +64 -0
  255. data/data/regulation/nl/gemeentelijke_verordening/oegstgeest/2025-12-23.json +64 -0
  256. data/data/regulation/nl/gemeentelijke_verordening/oirschot/2024-12-19.json +188 -0
  257. data/data/regulation/nl/gemeentelijke_verordening/oldambt/2024-01-01.json +73 -0
  258. data/data/regulation/nl/gemeentelijke_verordening/oldambt/2025-01-01.json +73 -0
  259. data/data/regulation/nl/gemeentelijke_verordening/oldebroek/2025-01-01.json +67 -0
  260. data/data/regulation/nl/gemeentelijke_verordening/oldebroek/2025-12-27.json +67 -0
  261. data/data/regulation/nl/gemeentelijke_verordening/oldenzaal/2025-01-01.json +59 -0
  262. data/data/regulation/nl/gemeentelijke_verordening/olst_wijhe/2024-12-25.json +67 -0
  263. data/data/regulation/nl/gemeentelijke_verordening/olst_wijhe/2025-12-23.json +67 -0
  264. data/data/regulation/nl/gemeentelijke_verordening/ommen/2024-12-28.json +70 -0
  265. data/data/regulation/nl/gemeentelijke_verordening/ommen/2025-12-25.json +70 -0
  266. data/data/regulation/nl/gemeentelijke_verordening/oost_gelre/2024-01-01.json +57 -0
  267. data/data/regulation/nl/gemeentelijke_verordening/oost_gelre/2025-01-01.json +57 -0
  268. data/data/regulation/nl/gemeentelijke_verordening/oost_gelre/2026-01-01.json +57 -0
  269. data/data/regulation/nl/gemeentelijke_verordening/oosterhout/2024-12-28.json +112 -0
  270. data/data/regulation/nl/gemeentelijke_verordening/oosterhout/2025-12-18.json +68 -0
  271. data/data/regulation/nl/gemeentelijke_verordening/oostzaan/2025-01-01.json +60 -0
  272. data/data/regulation/nl/gemeentelijke_verordening/oostzaan/2025-12-30.json +60 -0
  273. data/data/regulation/nl/gemeentelijke_verordening/opmeer/2024-12-25.json +59 -0
  274. data/data/regulation/nl/gemeentelijke_verordening/opmeer/2025-12-19.json +59 -0
  275. data/data/regulation/nl/gemeentelijke_verordening/oss/2025-12-17.json +117 -0
  276. data/data/regulation/nl/gemeentelijke_verordening/oude_ijsselstreek/2024-01-01.json +64 -0
  277. data/data/regulation/nl/gemeentelijke_verordening/oude_ijsselstreek/2025-01-01.json +61 -0
  278. data/data/regulation/nl/gemeentelijke_verordening/oude_ijsselstreek/2025-12-30.json +61 -0
  279. data/data/regulation/nl/gemeentelijke_verordening/ouder_amstel/2024-01-01.json +66 -0
  280. data/data/regulation/nl/gemeentelijke_verordening/oudewater/2024-01-01.json +108 -0
  281. data/data/regulation/nl/gemeentelijke_verordening/oudewater/2025-01-01.json +106 -0
  282. data/data/regulation/nl/gemeentelijke_verordening/overbetuwe/2025-01-01.json +73 -0
  283. data/data/regulation/nl/gemeentelijke_verordening/overbetuwe/2026-01-01.json +73 -0
  284. data/data/regulation/nl/gemeentelijke_verordening/papendrecht/2025-01-01.json +61 -0
  285. data/data/regulation/nl/gemeentelijke_verordening/papendrecht/2025-12-17.json +61 -0
  286. data/data/regulation/nl/gemeentelijke_verordening/purmerend/2024-11-21.json +61 -0
  287. data/data/regulation/nl/gemeentelijke_verordening/purmerend/2025-11-25.json +61 -0
  288. data/data/regulation/nl/gemeentelijke_verordening/raalte/2024-01-01.json +67 -0
  289. data/data/regulation/nl/gemeentelijke_verordening/raalte/2025-12-02.json +67 -0
  290. data/data/regulation/nl/gemeentelijke_verordening/reimerswaal/2024-01-01.json +67 -0
  291. data/data/regulation/nl/gemeentelijke_verordening/reimerswaal/2025-01-01.json +67 -0
  292. data/data/regulation/nl/gemeentelijke_verordening/reimerswaal/2026-01-01.json +67 -0
  293. data/data/regulation/nl/gemeentelijke_verordening/renswoude/2025-01-01.json +53 -0
  294. data/data/regulation/nl/gemeentelijke_verordening/reusel_de_mierden/2024-01-01.json +57 -0
  295. data/data/regulation/nl/gemeentelijke_verordening/reusel_de_mierden/2025-01-01.json +57 -0
  296. data/data/regulation/nl/gemeentelijke_verordening/reusel_de_mierden/2026-01-01.json +61 -0
  297. data/data/regulation/nl/gemeentelijke_verordening/rhenen/2025-12-20.json +64 -0
  298. data/data/regulation/nl/gemeentelijke_verordening/rijssen_holten/2024-12-25.json +70 -0
  299. data/data/regulation/nl/gemeentelijke_verordening/rijssen_holten/2025-12-30.json +70 -0
  300. data/data/regulation/nl/gemeentelijke_verordening/rijswijk/2024-11-21.json +61 -0
  301. data/data/regulation/nl/gemeentelijke_verordening/rijswijk/2025-11-28.json +61 -0
  302. data/data/regulation/nl/gemeentelijke_verordening/roosendaal/2024-12-25.json +64 -0
  303. data/data/regulation/nl/gemeentelijke_verordening/roosendaal/2025-12-24.json +64 -0
  304. data/data/regulation/nl/gemeentelijke_verordening/scherpenzeel/2024-12-20.json +61 -0
  305. data/data/regulation/nl/gemeentelijke_verordening/scherpenzeel/2026-01-01.json +61 -0
  306. data/data/regulation/nl/gemeentelijke_verordening/schiermonnikoog/2024-11-15.json +59 -0
  307. data/data/regulation/nl/gemeentelijke_verordening/schiermonnikoog/2025-12-02.json +59 -0
  308. data/data/regulation/nl/gemeentelijke_verordening/schouwen_duiveland/2024-01-01.json +66 -0
  309. data/data/regulation/nl/gemeentelijke_verordening/schouwen_duiveland/2025-01-01.json +108 -0
  310. data/data/regulation/nl/gemeentelijke_verordening/schouwen_duiveland/2026-01-01.json +64 -0
  311. data/data/regulation/nl/gemeentelijke_verordening/simpelveld/2024-11-21.json +70 -0
  312. data/data/regulation/nl/gemeentelijke_verordening/simpelveld/2025-12-20.json +70 -0
  313. data/data/regulation/nl/gemeentelijke_verordening/sint_michielsgestel/2024-01-01.json +105 -0
  314. data/data/regulation/nl/gemeentelijke_verordening/sint_michielsgestel/2024-12-24.json +105 -0
  315. data/data/regulation/nl/gemeentelijke_verordening/sittard_geleen/2024-11-30.json +110 -0
  316. data/data/regulation/nl/gemeentelijke_verordening/sittard_geleen/2025-12-04.json +110 -0
  317. data/data/regulation/nl/gemeentelijke_verordening/sluis/2024-01-01.json +131 -0
  318. data/data/regulation/nl/gemeentelijke_verordening/sluis/2025-01-01.json +131 -0
  319. data/data/regulation/nl/gemeentelijke_verordening/sluis/2026-01-01.json +131 -0
  320. data/data/regulation/nl/gemeentelijke_verordening/smallingerland/2024-12-28.json +83 -0
  321. data/data/regulation/nl/gemeentelijke_verordening/smallingerland/2025-12-31.json +83 -0
  322. data/data/regulation/nl/gemeentelijke_verordening/someren/2024-12-20.json +118 -0
  323. data/data/regulation/nl/gemeentelijke_verordening/someren/2025-12-19.json +118 -0
  324. data/data/regulation/nl/gemeentelijke_verordening/staphorst/2024-11-30.json +70 -0
  325. data/data/regulation/nl/gemeentelijke_verordening/staphorst/2025-12-03.json +70 -0
  326. data/data/regulation/nl/gemeentelijke_verordening/stede_broec/2024-12-31.json +61 -0
  327. data/data/regulation/nl/gemeentelijke_verordening/stede_broec/2026-01-01.json +67 -0
  328. data/data/regulation/nl/gemeentelijke_verordening/steenbergen/2024-12-19.json +70 -0
  329. data/data/regulation/nl/gemeentelijke_verordening/steenbergen/2025-12-19.json +70 -0
  330. data/data/regulation/nl/gemeentelijke_verordening/stein/2024-12-24.json +108 -0
  331. data/data/regulation/nl/gemeentelijke_verordening/stein/2026-01-01.json +108 -0
  332. data/data/regulation/nl/gemeentelijke_verordening/stichtse_vecht/2024-01-01.json +112 -0
  333. data/data/regulation/nl/gemeentelijke_verordening/stichtse_vecht/2024-12-28.json +112 -0
  334. data/data/regulation/nl/gemeentelijke_verordening/stichtse_vecht/2025-12-25.json +112 -0
  335. data/data/regulation/nl/gemeentelijke_verordening/s/303/272dwest_frysl/303/242n/2025-01-01.json +69 -0
  336. data/data/regulation/nl/gemeentelijke_verordening/s/303/272dwest_frysl/303/242n/2026-01-01.json +69 -0
  337. data/data/regulation/nl/gemeentelijke_verordening/terneuzen/2024-01-01.json +67 -0
  338. data/data/regulation/nl/gemeentelijke_verordening/terneuzen/2025-01-01.json +61 -0
  339. data/data/regulation/nl/gemeentelijke_verordening/terneuzen/2026-01-01.json +61 -0
  340. data/data/regulation/nl/gemeentelijke_verordening/terschelling/2024-12-11.json +69 -0
  341. data/data/regulation/nl/gemeentelijke_verordening/terschelling/2025-12-27.json +69 -0
  342. data/data/regulation/nl/gemeentelijke_verordening/texel/2024-12-27.json +66 -0
  343. data/data/regulation/nl/gemeentelijke_verordening/texel/2026-01-01.json +70 -0
  344. data/data/regulation/nl/gemeentelijke_verordening/tholen/2024-01-01.json +61 -0
  345. data/data/regulation/nl/gemeentelijke_verordening/tilburg/2024-11-27.json +62 -0
  346. data/data/regulation/nl/gemeentelijke_verordening/tilburg/2025-12-10.json +62 -0
  347. data/data/regulation/nl/gemeentelijke_verordening/tubbergen/2025-01-01.json +117 -0
  348. data/data/regulation/nl/gemeentelijke_verordening/tubbergen/2025-12-25.json +118 -0
  349. data/data/regulation/nl/gemeentelijke_verordening/twenterand/2024-01-01.json +70 -0
  350. data/data/regulation/nl/gemeentelijke_verordening/twenterand/2025-01-01.json +67 -0
  351. data/data/regulation/nl/gemeentelijke_verordening/twenterand/2026-01-01.json +67 -0
  352. data/data/regulation/nl/gemeentelijke_verordening/uitgeest/2024-12-20.json +110 -0
  353. data/data/regulation/nl/gemeentelijke_verordening/uitgeest/2025-12-18.json +110 -0
  354. data/data/regulation/nl/gemeentelijke_verordening/uithoorn/2024-01-01.json +57 -0
  355. data/data/regulation/nl/gemeentelijke_verordening/uithoorn/2025-01-01.json +57 -0
  356. data/data/regulation/nl/gemeentelijke_verordening/uithoorn/2026-01-01.json +57 -0
  357. data/data/regulation/nl/gemeentelijke_verordening/uithoorn/conformance/previous_ordinance_last_day.json +18 -0
  358. data/data/regulation/nl/gemeentelijke_verordening/uithoorn/conformance/successor_ordinance_first_day.json +18 -0
  359. data/data/regulation/nl/gemeentelijke_verordening/urk/2024-12-05.json +61 -0
  360. data/data/regulation/nl/gemeentelijke_verordening/urk/2026-01-01.json +61 -0
  361. data/data/regulation/nl/gemeentelijke_verordening/veenendaal/2024-01-01.json +64 -0
  362. data/data/regulation/nl/gemeentelijke_verordening/veenendaal/2024-12-17.json +60 -0
  363. data/data/regulation/nl/gemeentelijke_verordening/veenendaal/2025-12-23.json +64 -0
  364. data/data/regulation/nl/gemeentelijke_verordening/veldhoven/2024-01-01.json +139 -0
  365. data/data/regulation/nl/gemeentelijke_verordening/veldhoven/2025-01-01.json +139 -0
  366. data/data/regulation/nl/gemeentelijke_verordening/velsen/2024-01-01.json +64 -0
  367. data/data/regulation/nl/gemeentelijke_verordening/velsen/2025-01-01.json +64 -0
  368. data/data/regulation/nl/gemeentelijke_verordening/velsen/2026-01-01.json +64 -0
  369. data/data/regulation/nl/gemeentelijke_verordening/vijfheerenlanden/2025-01-01.json +150 -0
  370. data/data/regulation/nl/gemeentelijke_verordening/vijfheerenlanden/2026-01-01.json +150 -0
  371. data/data/regulation/nl/gemeentelijke_verordening/vlaardingen/2024-12-27.json +57 -0
  372. data/data/regulation/nl/gemeentelijke_verordening/vlaardingen/2025-12-20.json +57 -0
  373. data/data/regulation/nl/gemeentelijke_verordening/vlieland/2024-12-20.json +73 -0
  374. data/data/regulation/nl/gemeentelijke_verordening/vlieland/2025-12-19.json +73 -0
  375. data/data/regulation/nl/gemeentelijke_verordening/voerendaal/2025-12-24.json +64 -0
  376. data/data/regulation/nl/gemeentelijke_verordening/voorne_aan_zee/2024-12-25.json +117 -0
  377. data/data/regulation/nl/gemeentelijke_verordening/voorne_aan_zee/2025-11-18.json +117 -0
  378. data/data/regulation/nl/gemeentelijke_verordening/voorschoten/2024-11-28.json +57 -0
  379. data/data/regulation/nl/gemeentelijke_verordening/voorschoten/2025-11-25.json +57 -0
  380. data/data/regulation/nl/gemeentelijke_verordening/voorst/2025-01-01.json +147 -0
  381. data/data/regulation/nl/gemeentelijke_verordening/voorst/2026-01-01.json +147 -0
  382. data/data/regulation/nl/gemeentelijke_verordening/waadhoeke/2024-12-25.json +77 -0
  383. data/data/regulation/nl/gemeentelijke_verordening/waalre/2024-01-01.json +64 -0
  384. data/data/regulation/nl/gemeentelijke_verordening/waalre/2025-01-01.json +64 -0
  385. data/data/regulation/nl/gemeentelijke_verordening/waalre/2026-01-01.json +64 -0
  386. data/data/regulation/nl/gemeentelijke_verordening/waddinxveen/2024-12-20.json +64 -0
  387. data/data/regulation/nl/gemeentelijke_verordening/waddinxveen/2025-12-19.json +64 -0
  388. data/data/regulation/nl/gemeentelijke_verordening/wageningen/2024-12-14.json +59 -0
  389. data/data/regulation/nl/gemeentelijke_verordening/wageningen/2025-12-23.json +67 -0
  390. data/data/regulation/nl/gemeentelijke_verordening/wassenaar/2024-12-21.json +107 -0
  391. data/data/regulation/nl/gemeentelijke_verordening/wassenaar/2025-12-06.json +107 -0
  392. data/data/regulation/nl/gemeentelijke_verordening/waterland/2024-12-28.json +73 -0
  393. data/data/regulation/nl/gemeentelijke_verordening/waterland/2025-12-30.json +73 -0
  394. data/data/regulation/nl/gemeentelijke_verordening/weert/2024-12-24.json +108 -0
  395. data/data/regulation/nl/gemeentelijke_verordening/weert/2025-12-20.json +108 -0
  396. data/data/regulation/nl/gemeentelijke_verordening/west_maas_en_waal/2024-12-20.json +73 -0
  397. data/data/regulation/nl/gemeentelijke_verordening/west_maas_en_waal/2025-12-20.json +73 -0
  398. data/data/regulation/nl/gemeentelijke_verordening/westerveld/2024-12-28.json +158 -0
  399. data/data/regulation/nl/gemeentelijke_verordening/westerwolde/2025-01-01.json +61 -0
  400. data/data/regulation/nl/gemeentelijke_verordening/wierden/2025-12-18.json +66 -0
  401. data/data/regulation/nl/gemeentelijke_verordening/wijk_bij_duurstede/2024-12-21.json +100 -0
  402. data/data/regulation/nl/gemeentelijke_verordening/wijk_bij_duurstede/2025-12-20.json +100 -0
  403. data/data/regulation/nl/gemeentelijke_verordening/winterswijk/2024-12-04.json +131 -0
  404. data/data/regulation/nl/gemeentelijke_verordening/winterswijk/2025-11-08.json +131 -0
  405. data/data/regulation/nl/gemeentelijke_verordening/woensdrecht/2025-01-01.json +64 -0
  406. data/data/regulation/nl/gemeentelijke_verordening/wormerland/2024-12-20.json +64 -0
  407. data/data/regulation/nl/gemeentelijke_verordening/wormerland/2025-12-30.json +64 -0
  408. data/data/regulation/nl/gemeentelijke_verordening/woudenberg/2024-12-25.json +64 -0
  409. data/data/regulation/nl/gemeentelijke_verordening/woudenberg/2025-12-24.json +64 -0
  410. data/data/regulation/nl/gemeentelijke_verordening/zaanstad/2025-12-04.json +179 -0
  411. data/data/regulation/nl/gemeentelijke_verordening/zaltbommel/2024-01-01.json +170 -0
  412. data/data/regulation/nl/gemeentelijke_verordening/zaltbommel/2025-01-01.json +170 -0
  413. data/data/regulation/nl/gemeentelijke_verordening/zaltbommel/2026-01-01.json +170 -0
  414. data/data/regulation/nl/gemeentelijke_verordening/zandvoort/2024-12-24.json +66 -0
  415. data/data/regulation/nl/gemeentelijke_verordening/zandvoort/2025-12-23.json +70 -0
  416. data/data/regulation/nl/gemeentelijke_verordening/zeewolde/2024-12-25.json +111 -0
  417. data/data/regulation/nl/gemeentelijke_verordening/zeewolde/2025-12-24.json +111 -0
  418. data/data/regulation/nl/gemeentelijke_verordening/zeist/2025-12-25.json +108 -0
  419. data/data/regulation/nl/gemeentelijke_verordening/zoetermeer/2024-12-20.json +65 -0
  420. data/data/regulation/nl/gemeentelijke_verordening/zoetermeer/2025-12-19.json +65 -0
  421. data/data/regulation/nl/gemeentelijke_verordening/zuidplas/2026-01-01.json +64 -0
  422. data/data/regulation/nl/gemeentelijke_verordening/zundert/2024-12-19.json +70 -0
  423. data/data/regulation/nl/gemeentelijke_verordening/zundert/2025-12-16.json +70 -0
  424. data/data/regulation/nl/gemeentelijke_verordening/zwartewaterland/2024-11-20.json +73 -0
  425. data/data/regulation/nl/gemeentelijke_verordening/zwartewaterland/2025-11-25.json +73 -0
  426. data/data/regulation/nl/gemeentelijke_verordening/zwolle/2024-12-24.json +110 -0
  427. data/data/regulation/nl/gemeentelijke_verordening/zwolle/2025-12-19.json +110 -0
  428. data/lib/tax_conformance_kit/taxctl_client.rb +19 -1
  429. data/lib/tax_conformance_kit/version.rb +1 -1
  430. data/lib/tax_conformance_kit.rb +16 -0
  431. metadata +431 -6
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "es-catalonia-barcelona-city-tourist-home-age-17-taxed",
3
+ "description": "Barcelona city tourist-home stays tax 17-year-olds because only minors under 17 are exempt.",
4
+ "rule_set_path": "../2026-04-01.json",
5
+ "booking_input": {
6
+ "stay_date": "2026-09-10",
7
+ "nights": 3,
8
+ "adults": 1,
9
+ "children": 1,
10
+ "guests": [
11
+ { "age": 41, "role": "guest" },
12
+ { "age": 17, "role": "guest" }
13
+ ],
14
+ "property_location": {
15
+ "country_code": "ES",
16
+ "region_code": "ES-CT",
17
+ "locality_kind": "municipality",
18
+ "locality_code": "08019",
19
+ "locality_name": "Barcelona"
20
+ },
21
+ "accommodation_type": "tourist_home",
22
+ "subtotal": 900
23
+ },
24
+ "expected": {
25
+ "total_tax": 57.0,
26
+ "matched_rule_ids": ["es-ct-bcn-city-2026-tourist-home"]
27
+ }
28
+ }
@@ -0,0 +1,183 @@
1
+ {
2
+ "id": "es-catalonia-rest-of-catalonia-2026-04-01",
3
+ "domain": "tourist_tax",
4
+ "lifecycle": "reviewed",
5
+ "jurisdiction": {
6
+ "country_code": "ES",
7
+ "country_name": "Spain",
8
+ "region_code": "ES-CT",
9
+ "region_name": "Catalonia"
10
+ },
11
+ "assessment_policy": {
12
+ "period": "calendar_half_year",
13
+ "notes": "Catalonia files the IEET twice per year: 1-20 April for stays accrued from October through March, and 1-20 October for stays accrued from April through September."
14
+ },
15
+ "notes": "Reviewed fixture based on the Catalonia Tax Agency's official IEET quota table effective April 1, 2026 for the rest of Catalonia. Barcelona city is excluded explicitly through locality-code predicates. Minors under 17 are exempt and the tax is capped at seven stay units per person.",
16
+ "rules": [
17
+ {
18
+ "id": "es-ct-rest-2026-hotel-5-star",
19
+ "location_scope": {
20
+ "country_code": "ES",
21
+ "region_code": "ES-CT"
22
+ },
23
+ "valid_from": "2026-04-01",
24
+ "valid_to": null,
25
+ "applies_to": {
26
+ "accommodation_types": ["hotel_5_star", "luxury_hotel", "cruise"]
27
+ },
28
+ "predicates": [
29
+ {
30
+ "kind": "location.property_locality_code_not_in",
31
+ "params": { "values": ["08019"] }
32
+ }
33
+ ],
34
+ "calculation": {
35
+ "kind": "generic.per_person_per_night",
36
+ "params": {
37
+ "amount": 4.5,
38
+ "max_nights": 7,
39
+ "taxable_guest_age_gte": 17
40
+ },
41
+ "currency": "EUR"
42
+ },
43
+ "source": {
44
+ "source_url": "https://atc.gencat.cat/es/tributs/ieet/quota-tributaria",
45
+ "reviewed_at": null
46
+ },
47
+ "confidence": "reviewed",
48
+ "notes": "Rest of Catalonia rate from April 1, 2026: EUR 4.50 for 5-star and luxury hotels, campings de lujo, and cruises."
49
+ },
50
+ {
51
+ "id": "es-ct-rest-2026-hotel-4-star",
52
+ "location_scope": {
53
+ "country_code": "ES",
54
+ "region_code": "ES-CT"
55
+ },
56
+ "valid_from": "2026-04-01",
57
+ "valid_to": null,
58
+ "applies_to": {
59
+ "accommodation_types": ["hotel_4_star", "superior_hotel"]
60
+ },
61
+ "predicates": [
62
+ {
63
+ "kind": "location.property_locality_code_not_in",
64
+ "params": { "values": ["08019"] }
65
+ }
66
+ ],
67
+ "calculation": {
68
+ "kind": "generic.per_person_per_night",
69
+ "params": {
70
+ "amount": 1.8,
71
+ "max_nights": 7,
72
+ "taxable_guest_age_gte": 17
73
+ },
74
+ "currency": "EUR"
75
+ },
76
+ "source": {
77
+ "source_url": "https://atc.gencat.cat/es/tributs/ieet/quota-tributaria",
78
+ "reviewed_at": null
79
+ },
80
+ "confidence": "reviewed",
81
+ "notes": "Rest of Catalonia rate from April 1, 2026: EUR 1.80 for 4-star and 4-star superior hotels."
82
+ },
83
+ {
84
+ "id": "es-ct-rest-2026-tourist-home",
85
+ "location_scope": {
86
+ "country_code": "ES",
87
+ "region_code": "ES-CT"
88
+ },
89
+ "valid_from": "2026-04-01",
90
+ "valid_to": null,
91
+ "applies_to": {
92
+ "accommodation_types": ["tourist_apartment", "tourist_home", "private_room"]
93
+ },
94
+ "predicates": [
95
+ {
96
+ "kind": "location.property_locality_code_not_in",
97
+ "params": { "values": ["08019"] }
98
+ }
99
+ ],
100
+ "calculation": {
101
+ "kind": "generic.per_person_per_night",
102
+ "params": {
103
+ "amount": 1.75,
104
+ "max_nights": 7,
105
+ "taxable_guest_age_gte": 17
106
+ },
107
+ "currency": "EUR"
108
+ },
109
+ "source": {
110
+ "source_url": "https://atc.gencat.cat/es/tributs/ieet/quota-tributaria",
111
+ "reviewed_at": null
112
+ },
113
+ "confidence": "reviewed",
114
+ "notes": "Rest of Catalonia rate from April 1, 2026: EUR 1.75 for tourist-use homes, tourist apartments, and private-room establishments."
115
+ },
116
+ {
117
+ "id": "es-ct-rest-2026-hostel",
118
+ "location_scope": {
119
+ "country_code": "ES",
120
+ "region_code": "ES-CT"
121
+ },
122
+ "valid_from": "2026-04-01",
123
+ "valid_to": null,
124
+ "applies_to": {
125
+ "accommodation_types": ["hostel", "guesthouse", "boarding_house", "rural_lodging"]
126
+ },
127
+ "predicates": [
128
+ {
129
+ "kind": "location.property_locality_code_not_in",
130
+ "params": { "values": ["08019"] }
131
+ }
132
+ ],
133
+ "calculation": {
134
+ "kind": "generic.per_person_per_night",
135
+ "params": {
136
+ "amount": 0.8,
137
+ "max_nights": 7,
138
+ "taxable_guest_age_gte": 17
139
+ },
140
+ "currency": "EUR"
141
+ },
142
+ "source": {
143
+ "source_url": "https://atc.gencat.cat/es/tributs/ieet/quota-tributaria",
144
+ "reviewed_at": null
145
+ },
146
+ "confidence": "reviewed",
147
+ "notes": "Rest of Catalonia rate from April 1, 2026: EUR 0.80 for hostels, pensions, guesthouses, rural tourism, and similar categories."
148
+ },
149
+ {
150
+ "id": "es-ct-rest-2026-camping",
151
+ "location_scope": {
152
+ "country_code": "ES",
153
+ "region_code": "ES-CT"
154
+ },
155
+ "valid_from": "2026-04-01",
156
+ "valid_to": null,
157
+ "applies_to": {
158
+ "accommodation_types": ["camping", "camping_luxury"]
159
+ },
160
+ "predicates": [
161
+ {
162
+ "kind": "location.property_locality_code_not_in",
163
+ "params": { "values": ["08019"] }
164
+ }
165
+ ],
166
+ "calculation": {
167
+ "kind": "generic.per_person_per_night",
168
+ "params": {
169
+ "amount": 0.9,
170
+ "max_nights": 7,
171
+ "taxable_guest_age_gte": 17
172
+ },
173
+ "currency": "EUR"
174
+ },
175
+ "source": {
176
+ "source_url": "https://atc.gencat.cat/es/tributs/ieet/quota-tributaria",
177
+ "reviewed_at": null
178
+ },
179
+ "confidence": "reviewed",
180
+ "notes": "Rest of Catalonia rate from April 1, 2026: EUR 0.90 for campsites and campings de lujo."
181
+ }
182
+ ]
183
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "id": "es-catalonia-rest-barcelona-city-excluded",
3
+ "description": "The rest-of-Catalonia ruleset excludes Barcelona city's locality code.",
4
+ "rule_set_path": "../2026-04-01.json",
5
+ "booking_input": {
6
+ "stay_date": "2026-07-20",
7
+ "nights": 2,
8
+ "adults": 2,
9
+ "children": 0,
10
+ "property_location": {
11
+ "country_code": "ES",
12
+ "region_code": "ES-CT",
13
+ "locality_kind": "municipality",
14
+ "locality_code": "08019",
15
+ "locality_name": "Barcelona"
16
+ },
17
+ "accommodation_type": "hotel_4_star",
18
+ "subtotal": 500
19
+ },
20
+ "expected": {
21
+ "total_tax": 0,
22
+ "matched_rule_ids": []
23
+ }
24
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "es-catalonia-rest-girona-hotel-4-star",
3
+ "description": "A Girona 4-star hotel outside Barcelona city uses the rest-of-Catalonia IEET tariff.",
4
+ "rule_set_path": "../2026-04-01.json",
5
+ "booking_input": {
6
+ "stay_date": "2026-07-20",
7
+ "nights": 2,
8
+ "adults": 2,
9
+ "children": 0,
10
+ "guests": [
11
+ { "age": 42, "role": "guest" },
12
+ { "age": 36, "role": "guest" }
13
+ ],
14
+ "property_location": {
15
+ "country_code": "ES",
16
+ "region_code": "ES-CT",
17
+ "locality_kind": "municipality",
18
+ "locality_code": "17079",
19
+ "locality_name": "Girona"
20
+ },
21
+ "accommodation_type": "hotel_4_star",
22
+ "subtotal": 500
23
+ },
24
+ "expected": {
25
+ "total_tax": 7.2,
26
+ "matched_rule_ids": ["es-ct-rest-2026-hotel-4-star"]
27
+ }
28
+ }
@@ -0,0 +1,166 @@
1
+ {
2
+ "id": "es-balearic-islands-2025-05-17",
3
+ "domain": "tourist_tax",
4
+ "lifecycle": "reviewed",
5
+ "jurisdiction": {
6
+ "country_code": "ES",
7
+ "country_name": "Spain",
8
+ "region_code": "ES-IB",
9
+ "region_name": "Illes Balears"
10
+ },
11
+ "assessment_policy": {
12
+ "period": "calendar_quarter",
13
+ "notes": "ATIB files the Balearic tourist-stay tax by quarter using model 700."
14
+ },
15
+ "notes": "Reviewed fixture based on the consolidated Balearic tourist-stay tax law and ATIB guidance. Guests under 16 are exempt. A 75% seasonal reduction applies from 1 November through 30 April, and from the ninth day onward the quota is reduced by 50%.",
16
+ "rules": [
17
+ {
18
+ "id": "es-ib-2025-hotel-4-star-high-season",
19
+ "location_scope": {
20
+ "country_code": "ES",
21
+ "region_code": "ES-IB"
22
+ },
23
+ "valid_from": "2025-05-17",
24
+ "valid_to": null,
25
+ "applies_to": {
26
+ "accommodation_types": ["hotel_4_star", "superior_hotel"]
27
+ },
28
+ "predicates": [
29
+ {
30
+ "kind": "stay.seasonal_window",
31
+ "params": {
32
+ "start_mmdd": "05-01",
33
+ "end_mmdd": "10-31"
34
+ }
35
+ }
36
+ ],
37
+ "calculation": {
38
+ "kind": "generic.per_person_per_night_discount_after_nights",
39
+ "params": {
40
+ "amount": 3.0,
41
+ "discount_start_night": 9,
42
+ "discount_multiplier": 0.5,
43
+ "taxable_guest_age_gte": 16
44
+ },
45
+ "currency": "EUR"
46
+ },
47
+ "source": {
48
+ "source_url": "https://www.boe.es/buscar/act.php?id=BOE-A-2016-4175",
49
+ "reviewed_at": null
50
+ },
51
+ "confidence": "reviewed",
52
+ "notes": "Balearic Islands high-season rate: EUR 3.00 for 4-star hotels and 3-star superior hotels. The law reduces the quota by 50% from the ninth day onward."
53
+ },
54
+ {
55
+ "id": "es-ib-2025-hotel-4-star-low-season",
56
+ "location_scope": {
57
+ "country_code": "ES",
58
+ "region_code": "ES-IB"
59
+ },
60
+ "valid_from": "2025-05-17",
61
+ "valid_to": null,
62
+ "applies_to": {
63
+ "accommodation_types": ["hotel_4_star", "superior_hotel"]
64
+ },
65
+ "predicates": [
66
+ {
67
+ "kind": "stay.seasonal_window",
68
+ "params": {
69
+ "start_mmdd": "11-01",
70
+ "end_mmdd": "04-30"
71
+ }
72
+ }
73
+ ],
74
+ "calculation": {
75
+ "kind": "generic.per_person_per_night_discount_after_nights",
76
+ "params": {
77
+ "amount": 0.75,
78
+ "discount_start_night": 9,
79
+ "discount_multiplier": 0.5,
80
+ "taxable_guest_age_gte": 16
81
+ },
82
+ "currency": "EUR"
83
+ },
84
+ "source": {
85
+ "source_url": "https://www.boe.es/buscar/act.php?id=BOE-A-2016-4175",
86
+ "reviewed_at": null
87
+ },
88
+ "confidence": "reviewed",
89
+ "notes": "Low season applies a 75% reduction to the EUR 3.00 high-season rate, yielding EUR 0.75 before the ninth-day discount."
90
+ },
91
+ {
92
+ "id": "es-ib-2025-tourist-home-high-season",
93
+ "location_scope": {
94
+ "country_code": "ES",
95
+ "region_code": "ES-IB"
96
+ },
97
+ "valid_from": "2025-05-17",
98
+ "valid_to": null,
99
+ "applies_to": {
100
+ "accommodation_types": ["tourist_home", "tourist_apartment", "vacation_rental"]
101
+ },
102
+ "predicates": [
103
+ {
104
+ "kind": "stay.seasonal_window",
105
+ "params": {
106
+ "start_mmdd": "05-01",
107
+ "end_mmdd": "10-31"
108
+ }
109
+ }
110
+ ],
111
+ "calculation": {
112
+ "kind": "generic.per_person_per_night_discount_after_nights",
113
+ "params": {
114
+ "amount": 2.0,
115
+ "discount_start_night": 9,
116
+ "discount_multiplier": 0.5,
117
+ "taxable_guest_age_gte": 16
118
+ },
119
+ "currency": "EUR"
120
+ },
121
+ "source": {
122
+ "source_url": "https://www.boe.es/buscar/act.php?id=BOE-A-2016-4175",
123
+ "reviewed_at": null
124
+ },
125
+ "confidence": "reviewed",
126
+ "notes": "Balearic Islands high-season rate: EUR 2.00 for tourist homes, holiday rentals, and tourist apartments."
127
+ },
128
+ {
129
+ "id": "es-ib-2025-tourist-home-low-season",
130
+ "location_scope": {
131
+ "country_code": "ES",
132
+ "region_code": "ES-IB"
133
+ },
134
+ "valid_from": "2025-05-17",
135
+ "valid_to": null,
136
+ "applies_to": {
137
+ "accommodation_types": ["tourist_home", "tourist_apartment", "vacation_rental"]
138
+ },
139
+ "predicates": [
140
+ {
141
+ "kind": "stay.seasonal_window",
142
+ "params": {
143
+ "start_mmdd": "11-01",
144
+ "end_mmdd": "04-30"
145
+ }
146
+ }
147
+ ],
148
+ "calculation": {
149
+ "kind": "generic.per_person_per_night_discount_after_nights",
150
+ "params": {
151
+ "amount": 0.5,
152
+ "discount_start_night": 9,
153
+ "discount_multiplier": 0.5,
154
+ "taxable_guest_age_gte": 16
155
+ },
156
+ "currency": "EUR"
157
+ },
158
+ "source": {
159
+ "source_url": "https://www.boe.es/buscar/act.php?id=BOE-A-2016-4175",
160
+ "reviewed_at": null
161
+ },
162
+ "confidence": "reviewed",
163
+ "notes": "Low season applies a 75% reduction to the EUR 2.00 high-season rate, yielding EUR 0.50 before the ninth-day discount."
164
+ }
165
+ ]
166
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "id": "es-balearic-palma-hotel-4-star-high-season-long-stay",
3
+ "description": "Balearic high-season stays charge the first eight nights in full and reduce nights 9+ by 50%; guests under 16 remain exempt.",
4
+ "rule_set_path": "../2025-05-17.json",
5
+ "booking_input": {
6
+ "stay_date": "2026-07-10",
7
+ "nights": 10,
8
+ "adults": 2,
9
+ "children": 1,
10
+ "guests": [
11
+ { "age": 40, "role": "guest" },
12
+ { "age": 34, "role": "guest" },
13
+ { "age": 14, "role": "guest" }
14
+ ],
15
+ "property_location": {
16
+ "country_code": "ES",
17
+ "region_code": "ES-IB",
18
+ "locality_kind": "municipality",
19
+ "locality_name": "Palma"
20
+ },
21
+ "operator": {
22
+ "legal_country_code": "NL",
23
+ "legal_name": "Canal Stays BV"
24
+ },
25
+ "accommodation_type": "hotel_4_star",
26
+ "subtotal": 2200
27
+ },
28
+ "expected": {
29
+ "total_tax": 54.0,
30
+ "matched_rule_ids": ["es-ib-2025-hotel-4-star-high-season"]
31
+ }
32
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "id": "es-balearic-tourist-home-low-season",
3
+ "description": "Balearic low-season tourist-home stays apply the 75% seasonal reduction to the base per-person nightly rate.",
4
+ "rule_set_path": "../2025-05-17.json",
5
+ "booking_input": {
6
+ "stay_date": "2026-11-15",
7
+ "nights": 3,
8
+ "adults": 2,
9
+ "children": 0,
10
+ "guests": [
11
+ { "age": 31, "role": "guest" },
12
+ { "age": 29, "role": "guest" }
13
+ ],
14
+ "property_location": {
15
+ "country_code": "ES",
16
+ "region_code": "ES-IB",
17
+ "locality_kind": "municipality",
18
+ "locality_name": "Sant Antoni de Portmany"
19
+ },
20
+ "accommodation_type": "tourist_home",
21
+ "subtotal": 700
22
+ },
23
+ "expected": {
24
+ "total_tax": 3.0,
25
+ "matched_rule_ids": ["es-ib-2025-tourist-home-low-season"]
26
+ }
27
+ }
@@ -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
+ }