mcp-server-taxcode 0.8.0__tar.gz → 1.0.0__tar.gz

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. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/workflows/ci.yml +5 -0
  2. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/AGENTS.md +6 -0
  3. mcp_server_taxcode-1.0.0/CONTRIBUTING.md +59 -0
  4. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/PKG-INFO +5 -2
  5. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/README.md +4 -1
  6. mcp_server_taxcode-1.0.0/docs/ak/llms-full.txt +10 -0
  7. mcp_server_taxcode-1.0.0/docs/al/llms-full.txt +10 -0
  8. mcp_server_taxcode-1.0.0/docs/ar/llms-full.txt +10 -0
  9. mcp_server_taxcode-1.0.0/docs/az/llms-full.txt +19 -0
  10. mcp_server_taxcode-1.0.0/docs/ca/llms-full.txt +37 -0
  11. mcp_server_taxcode-1.0.0/docs/co/llms-full.txt +19 -0
  12. mcp_server_taxcode-1.0.0/docs/ct/llms-full.txt +28 -0
  13. mcp_server_taxcode-1.0.0/docs/dc/llms-full.txt +10 -0
  14. mcp_server_taxcode-1.0.0/docs/de/llms-full.txt +10 -0
  15. mcp_server_taxcode-1.0.0/docs/fl/llms-full.txt +28 -0
  16. mcp_server_taxcode-1.0.0/docs/ga/llms-full.txt +64 -0
  17. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_20.md +1 -1
  18. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_20_2024.md +1 -1
  19. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_20_2025.md +1 -1
  20. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_27.md +1 -1
  21. mcp_server_taxcode-1.0.0/docs/hi/llms-full.txt +10 -0
  22. mcp_server_taxcode-1.0.0/docs/ia/llms-full.txt +10 -0
  23. mcp_server_taxcode-1.0.0/docs/id/llms-full.txt +10 -0
  24. mcp_server_taxcode-1.0.0/docs/il/llms-full.txt +28 -0
  25. mcp_server_taxcode-1.0.0/docs/in/llms-full.txt +10 -0
  26. mcp_server_taxcode-1.0.0/docs/ks/llms-full.txt +10 -0
  27. mcp_server_taxcode-1.0.0/docs/ky/llms-full.txt +10 -0
  28. mcp_server_taxcode-1.0.0/docs/la/llms-full.txt +19 -0
  29. mcp_server_taxcode-1.0.0/docs/llms-full.txt +57 -0
  30. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/llms.txt +6 -2
  31. mcp_server_taxcode-1.0.0/docs/ma/llms-full.txt +28 -0
  32. mcp_server_taxcode-1.0.0/docs/md/llms-full.txt +28 -0
  33. mcp_server_taxcode-1.0.0/docs/me/llms-full.txt +10 -0
  34. mcp_server_taxcode-1.0.0/docs/mi/llms-full.txt +10 -0
  35. mcp_server_taxcode-1.0.0/docs/mn/llms-full.txt +10 -0
  36. mcp_server_taxcode-1.0.0/docs/mo/llms-full.txt +10 -0
  37. mcp_server_taxcode-1.0.0/docs/ms/llms-full.txt +10 -0
  38. mcp_server_taxcode-1.0.0/docs/mt/llms-full.txt +10 -0
  39. mcp_server_taxcode-1.0.0/docs/nc/llms-full.txt +19 -0
  40. mcp_server_taxcode-1.0.0/docs/nd/llms-full.txt +10 -0
  41. mcp_server_taxcode-1.0.0/docs/ne/llms-full.txt +10 -0
  42. mcp_server_taxcode-1.0.0/docs/nh/llms-full.txt +10 -0
  43. mcp_server_taxcode-1.0.0/docs/nj/llms-full.txt +28 -0
  44. mcp_server_taxcode-1.0.0/docs/nm/llms-full.txt +10 -0
  45. mcp_server_taxcode-1.0.0/docs/nv/llms-full.txt +10 -0
  46. mcp_server_taxcode-1.0.0/docs/ny/llms-full.txt +37 -0
  47. mcp_server_taxcode-1.0.0/docs/oh/llms-full.txt +19 -0
  48. mcp_server_taxcode-1.0.0/docs/ok/llms-full.txt +10 -0
  49. mcp_server_taxcode-1.0.0/docs/or/llms-full.txt +10 -0
  50. mcp_server_taxcode-1.0.0/docs/pa/llms-full.txt +28 -0
  51. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley22_3_2012.md +1 -1
  52. mcp_server_taxcode-1.0.0/docs/pr/llms-full.txt +538 -0
  53. mcp_server_taxcode-1.0.0/docs/ri/llms-full.txt +10 -0
  54. mcp_server_taxcode-1.0.0/docs/sc/llms-full.txt +10 -0
  55. mcp_server_taxcode-1.0.0/docs/sd/llms-full.txt +10 -0
  56. mcp_server_taxcode-1.0.0/docs/tn/llms-full.txt +10 -0
  57. mcp_server_taxcode-1.0.0/docs/tx/llms-full.txt +19 -0
  58. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/cfr_1_937_1.md +1 -1
  59. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/cfr_1_937_2.md +1 -1
  60. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/cfr_1_937_3.md +1 -1
  61. mcp_server_taxcode-1.0.0/docs/us/llms-full.txt +1501 -0
  62. mcp_server_taxcode-1.0.0/docs/ut/llms-full.txt +10 -0
  63. mcp_server_taxcode-1.0.0/docs/va/llms-full.txt +28 -0
  64. mcp_server_taxcode-1.0.0/docs/vt/llms-full.txt +10 -0
  65. mcp_server_taxcode-1.0.0/docs/wa/llms-full.txt +28 -0
  66. mcp_server_taxcode-1.0.0/docs/wi/llms-full.txt +10 -0
  67. mcp_server_taxcode-1.0.0/docs/wv/llms-full.txt +10 -0
  68. mcp_server_taxcode-1.0.0/docs/wy/llms-full.txt +10 -0
  69. mcp_server_taxcode-1.0.0/scripts/build_catalog.py +147 -0
  70. mcp_server_taxcode-1.0.0/scripts/ingest_statutes.py +510 -0
  71. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/skills/taxcode-mcp/SKILL.md +3 -1
  72. mcp_server_taxcode-1.0.0/src/taxcode_mcp/catalog.py +710 -0
  73. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/jurisdictions.json +55 -0
  74. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ak.json +32 -0
  75. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/al.json +32 -0
  76. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ar.json +32 -0
  77. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/az.json +45 -0
  78. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ca.json +71 -0
  79. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/co.json +45 -0
  80. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ct.json +58 -0
  81. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/dc.json +32 -0
  82. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/de.json +32 -0
  83. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/fl.json +45 -0
  84. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ga.json +136 -0
  85. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/hi.json +32 -0
  86. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ia.json +32 -0
  87. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/id.json +32 -0
  88. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/il.json +58 -0
  89. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/in.json +32 -0
  90. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ks.json +32 -0
  91. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ky.json +32 -0
  92. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/la.json +45 -0
  93. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ma.json +58 -0
  94. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/md.json +71 -0
  95. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/me.json +32 -0
  96. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/mi.json +32 -0
  97. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/mn.json +32 -0
  98. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/mo.json +32 -0
  99. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ms.json +32 -0
  100. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/mt.json +32 -0
  101. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nc.json +45 -0
  102. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nd.json +32 -0
  103. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ne.json +32 -0
  104. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nh.json +32 -0
  105. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nj.json +58 -0
  106. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nm.json +32 -0
  107. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nv.json +32 -0
  108. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ny.json +71 -0
  109. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/oh.json +58 -0
  110. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ok.json +32 -0
  111. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/or.json +32 -0
  112. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/pa.json +71 -0
  113. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/pr.json +578 -0
  114. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ri.json +32 -0
  115. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/sc.json +32 -0
  116. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/sd.json +32 -0
  117. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/tn.json +32 -0
  118. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/tx.json +32 -0
  119. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/us.json +305 -0
  120. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ut.json +32 -0
  121. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/va.json +71 -0
  122. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/vt.json +32 -0
  123. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/wa.json +58 -0
  124. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/wi.json +32 -0
  125. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/wv.json +32 -0
  126. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/wy.json +32 -0
  127. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/ga.json +24 -0
  128. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/md.json +15 -0
  129. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/oh.json +15 -0
  130. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/pa.json +15 -0
  131. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/pr.json +240 -0
  132. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/us.json +60 -0
  133. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/va.json +15 -0
  134. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ak.json +12 -0
  135. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/al.json +17 -0
  136. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ar.json +17 -0
  137. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/az.json +13 -0
  138. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ca.json +50 -0
  139. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/co.json +13 -0
  140. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ct.json +50 -0
  141. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/dc.json +17 -0
  142. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/de.json +17 -0
  143. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ga.json +36 -0
  144. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/hi.json +19 -0
  145. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ia.json +19 -0
  146. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/id.json +16 -0
  147. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/il.json +13 -0
  148. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/in.json +18 -0
  149. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ks.json +15 -0
  150. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ky.json +15 -0
  151. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/la.json +23 -0
  152. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ma.json +17 -0
  153. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/md.json +49 -0
  154. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/me.json +17 -0
  155. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/mi.json +15 -0
  156. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/mn.json +17 -0
  157. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/mo.json +17 -0
  158. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ms.json +15 -0
  159. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/mt.json +17 -0
  160. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nc.json +29 -0
  161. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nd.json +25 -0
  162. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ne.json +17 -0
  163. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nh.json +12 -0
  164. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nj.json +50 -0
  165. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nm.json +20 -0
  166. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nv.json +12 -0
  167. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ny.json +58 -0
  168. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/oh.json +48 -0
  169. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ok.json +17 -0
  170. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/or.json +18 -0
  171. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/pa.json +9 -0
  172. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ri.json +17 -0
  173. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/sc.json +17 -0
  174. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/sd.json +12 -0
  175. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/tn.json +12 -0
  176. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ut.json +15 -0
  177. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/va.json +58 -0
  178. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/vt.json +17 -0
  179. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/wa.json +10 -0
  180. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/wi.json +17 -0
  181. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/wv.json +17 -0
  182. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/wy.json +12 -0
  183. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ak.json +26 -0
  184. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/al.json +26 -0
  185. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ar.json +26 -0
  186. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/az.json +50 -0
  187. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ca.json +96 -0
  188. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/co.json +50 -0
  189. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ct.json +73 -0
  190. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/dc.json +26 -0
  191. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/de.json +26 -0
  192. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/fl.json +73 -0
  193. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ga.json +168 -0
  194. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/hi.json +26 -0
  195. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ia.json +26 -0
  196. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/id.json +26 -0
  197. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/il.json +73 -0
  198. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/in.json +26 -0
  199. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ks.json +26 -0
  200. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ky.json +26 -0
  201. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/la.json +50 -0
  202. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ma.json +73 -0
  203. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/md.json +73 -0
  204. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/me.json +26 -0
  205. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/mi.json +26 -0
  206. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/mn.json +26 -0
  207. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/mo.json +26 -0
  208. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ms.json +26 -0
  209. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/mt.json +26 -0
  210. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nc.json +51 -0
  211. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nd.json +26 -0
  212. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ne.json +26 -0
  213. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nh.json +26 -0
  214. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nj.json +73 -0
  215. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nm.json +26 -0
  216. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nv.json +26 -0
  217. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ny.json +95 -0
  218. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/oh.json +50 -0
  219. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ok.json +26 -0
  220. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/or.json +26 -0
  221. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/pa.json +74 -0
  222. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/pr.json +796 -0
  223. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ri.json +26 -0
  224. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/sc.json +26 -0
  225. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/sd.json +26 -0
  226. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/tn.json +26 -0
  227. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/tx.json +50 -0
  228. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/us.json +1747 -0
  229. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ut.json +26 -0
  230. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/va.json +74 -0
  231. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/vt.json +26 -0
  232. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/wa.json +73 -0
  233. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/wi.json +26 -0
  234. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/wv.json +26 -0
  235. mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/wy.json +26 -0
  236. mcp_server_taxcode-1.0.0/src/taxcode_mcp/db.py +821 -0
  237. mcp_server_taxcode-1.0.0/src/taxcode_mcp/paging.py +159 -0
  238. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/tools/compliance.py +97 -491
  239. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/tools/statutes.py +155 -38
  240. mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_calculate_built_in_gain_sourcing.jsonl.gz +0 -0
  241. mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_cross_border_tax_analysis.jsonl.gz +0 -0
  242. mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_evaluate_georgia_residency.jsonl.gz +0 -0
  243. mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_evaluate_pr_bona_fide_residency.jsonl.gz +0 -0
  244. mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_evaluate_state_residency.jsonl.gz +0 -0
  245. mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/constants.json +5 -0
  246. mcp_server_taxcode-1.0.0/tests/golden_compliance.py +144 -0
  247. mcp_server_taxcode-1.0.0/tests/test_catalog.py +461 -0
  248. mcp_server_taxcode-1.0.0/tests/test_compliance_golden.py +46 -0
  249. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_federal.py +14 -5
  250. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_ingest.py +36 -35
  251. mcp_server_taxcode-1.0.0/tests/test_paging.py +323 -0
  252. mcp_server_taxcode-1.0.0/tests/test_rate_tables.py +192 -0
  253. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_search_snippets.py +6 -1
  254. mcp_server_taxcode-0.8.0/CONTRIBUTING.md +0 -10
  255. mcp_server_taxcode-0.8.0/docs/llms-full.txt +0 -2821
  256. mcp_server_taxcode-0.8.0/scripts/ingest_statutes.py +0 -8159
  257. mcp_server_taxcode-0.8.0/src/taxcode_mcp/db.py +0 -9369
  258. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/dependabot.yml +0 -0
  259. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/workflows/dependabot-automerge.yml +0 -0
  260. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/workflows/drift-monitor.yml +0 -0
  261. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/workflows/release.yml +0 -0
  262. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.gitignore +0 -0
  263. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/CHANGELOG.md +0 -0
  264. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/CODE_OF_CONDUCT.md +0 -0
  265. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/Dockerfile +0 -0
  266. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/LICENSE +0 -0
  267. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/SECURITY.md +0 -0
  268. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/conformance-baseline.yml +0 -0
  269. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docker/pip-bootstrap.txt +0 -0
  270. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ak/alaska stat._43_05_080.md +0 -0
  271. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/al/ala. code_40_18_2.md +0 -0
  272. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ar/a.c.a._26_51_201.md +0 -0
  273. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/az/a.r.s._43_1011.md +0 -0
  274. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/az/a.r.s._43_104.md +0 -0
  275. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ca/caccr_17014.md +0 -0
  276. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ca/rtc_17014.md +0 -0
  277. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ca/rtc_17041.md +0 -0
  278. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ca/rtc_17951.md +0 -0
  279. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/co/c.r.s._39_22_103.md +0 -0
  280. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/co/c.r.s._39_22_104.md +0 -0
  281. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ct/c.g.s._12_700.md +0 -0
  282. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ct/c.g.s._12_701.md +0 -0
  283. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ct/c.g.s._12_711.md +0 -0
  284. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/dc/d.c. code_47_1806_03.md +0 -0
  285. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/de/del. code_1102.md +0 -0
  286. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/fl/flconst_art__vii_sec__5.md +0 -0
  287. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/fl/flstat_196_031.md +0 -0
  288. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/fl/flstat_222_17.md +0 -0
  289. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/gareg_560_7_3__01.md +0 -0
  290. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_1.md +0 -0
  291. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_30.md +0 -0
  292. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/hi/hrs_235_51.md +0 -0
  293. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ia/iowa code_422_5.md +0 -0
  294. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/id/idaho code_63_3024.md +0 -0
  295. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/il/ilcs_5_1501_a_20.md +0 -0
  296. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/il/ilcs_5_201.md +0 -0
  297. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/il/ilcs_5_301.md +0 -0
  298. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/in/ind. code_6_3_2_1.md +0 -0
  299. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ks/k.s.a._79_32,110.md +0 -0
  300. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ky/krs_141_020.md +0 -0
  301. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/la/la. r.s._47_32.md +0 -0
  302. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/la/la. r.s._47_32_2022.md +0 -0
  303. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ma/maconst_art__xliv.md +0 -0
  304. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ma/mgl_62_1_f.md +0 -0
  305. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ma/mgl_62_4.md +0 -0
  306. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/md/md. code_10_101.md +0 -0
  307. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/md/md. code_10_105.md +0 -0
  308. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/md/md. code_10_106.md +0 -0
  309. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/me/36 m.r.s._5111.md +0 -0
  310. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/mi/mcl_206_51.md +0 -0
  311. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/mn/minn. stat._290_06.md +0 -0
  312. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/mo/rsmo_143_011.md +0 -0
  313. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ms/miss. code_27_7_5.md +0 -0
  314. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/mt/mca_15_30_2103.md +0 -0
  315. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nc/n.c.g.s._105_153_3.md +0 -0
  316. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nc/n.c.g.s._105_153_7.md +0 -0
  317. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nd/n.d.c.c._57_38_30_3.md +0 -0
  318. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ne/neb. rev. stat._77_2715_03.md +0 -0
  319. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nh/rsa_77_1_2024.md +0 -0
  320. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nj/njac_18_35_5_2.md +0 -0
  321. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nj/njsa_54a_1_2.md +0 -0
  322. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nj/njsa_54a_2_1.md +0 -0
  323. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nm/nmsa_7_2_7.md +0 -0
  324. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nv/nev. const._art__10,_/302/247_1.md" +0 -0
  325. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ny/nycrr_105_20.md +0 -0
  326. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ny/nycrr_132_18.md +0 -0
  327. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ny/nytax_601.md +0 -0
  328. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ny/nytax_605.md +0 -0
  329. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/oh/r.c._5747_02.md +0 -0
  330. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/oh/r.c._5747_24.md +0 -0
  331. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ok/68 o.s._2355.md +0 -0
  332. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/or/ors_316_037.md +0 -0
  333. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pa/p.s._7301.md +0 -0
  334. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pa/p.s._7302.md +0 -0
  335. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pa/pa. code_109_8.md +0 -0
  336. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1010_01.md +0 -0
  337. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1031_01.md +0 -0
  338. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1031_02.md +0 -0
  339. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1062_01.md +0 -0
  340. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1062_03.md +0 -0
  341. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_1020_02.md +0 -0
  342. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2021_01.md +0 -0
  343. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2022_01.md +0 -0
  344. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2022_01_2019.md +0 -0
  345. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2022_02.md +0 -0
  346. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2031_01.md +0 -0
  347. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2032_01.md +0 -0
  348. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6020_03.md +0 -0
  349. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6020_10.md +0 -0
  350. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6020_10_2019.md +0 -0
  351. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6020_10_2025.md +0 -0
  352. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6070_55.md +0 -0
  353. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ri/r.i.g.l._44_30_1.md +0 -0
  354. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/sc/s.c. code_12_6_510.md +0 -0
  355. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/sd/s.d. const._art__xi,_/302/247_2.md" +0 -0
  356. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/tn/tenn. const._art__ii,_/302/247_28.md" +0 -0
  357. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/tx/txconst_art__viii_sec__24_a.md +0 -0
  358. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/tx/txtax_171_001.md +0 -0
  359. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_1.md +0 -0
  360. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_1411.md +0 -0
  361. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_24.md +0 -0
  362. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_32.md +0 -0
  363. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_6012.md +0 -0
  364. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_61.md +0 -0
  365. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_62.md +0 -0
  366. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_63.md +0 -0
  367. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_6688.md +0 -0
  368. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_865.md +0 -0
  369. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_911.md +0 -0
  370. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_933.md +0 -0
  371. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_937.md +0 -0
  372. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_957.md +0 -0
  373. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ut/utah code_59_10_104.md +0 -0
  374. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/va/va. code_58_1_302.md +0 -0
  375. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/va/va. code_58_1_320.md +0 -0
  376. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/va/va. code_58_1_342.md +0 -0
  377. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/vt/32 v.s.a._5822.md +0 -0
  378. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wa/rcw_82_87_020.md +0 -0
  379. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wa/rcw_82_87_040.md +0 -0
  380. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wa/waconst_art__vii_sec__1.md +0 -0
  381. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wi/wis. stat._71_06.md +0 -0
  382. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wv/w. va. code_11_21_4e.md +0 -0
  383. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wy/wyo. const._art__15,_/302/247_18.md" +0 -0
  384. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/fastmcp.json +0 -0
  385. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/pyproject.toml +0 -0
  386. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/check_conformance.sh +0 -0
  387. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/check_openapi_drift.py +0 -0
  388. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/check_tool_contract.py +0 -0
  389. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/check_version.py +0 -0
  390. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/release_notes.py +0 -0
  391. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/setup_repo_governance.sh +0 -0
  392. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/server.json +0 -0
  393. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/__init__.py +0 -0
  394. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/auth.py +0 -0
  395. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/client.py +0 -0
  396. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/config.py +0 -0
  397. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/disclaimers.py +0 -0
  398. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/errors.py +0 -0
  399. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/middleware.py +0 -0
  400. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/profiles.py +0 -0
  401. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/server.py +0 -0
  402. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/ssrf.py +0 -0
  403. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/tools/__init__.py +0 -0
  404. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/tools/system.py +0 -0
  405. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/conftest.py +0 -0
  406. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/fake_network.py +0 -0
  407. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/fixtures/usc26_sample.xml +0 -0
  408. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_batch.py +0 -0
  409. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_check_version.py +0 -0
  410. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_client.py +0 -0
  411. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_code_mode_extra.py +0 -0
  412. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_config.py +0 -0
  413. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_conftest_auth_env.py +0 -0
  414. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_db.py +0 -0
  415. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_disclaimers.py +0 -0
  416. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_dockerfile.py +0 -0
  417. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_drift.py +0 -0
  418. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_e2e_live.py +0 -0
  419. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_errors.py +0 -0
  420. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_http_auth.py +0 -0
  421. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_layered.py +0 -0
  422. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_network_guard.py +0 -0
  423. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_otel_spans.py +0 -0
  424. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_profiles.py +0 -0
  425. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_protocol.py +0 -0
  426. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_release_notes.py +0 -0
  427. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_search_normalize.py +0 -0
  428. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_server.py +0 -0
  429. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_ssrf.py +0 -0
  430. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_version.py +0 -0
  431. {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/uv.lock +0 -0
@@ -126,6 +126,11 @@ jobs:
126
126
  - name: Verify OpenAPI drift
127
127
  run: uv run python scripts/check_openapi_drift.py
128
128
 
129
+ - name: Verify data files, source manifest and generated docs
130
+ # Fails when a data file breaks the schema or canonical form, a manifest entry is
131
+ # missing or disagrees with its row, or docs/ differs from the regenerated output.
132
+ run: uv run python scripts/build_catalog.py --check
133
+
129
134
  - name: Set up Node.js 22
130
135
  uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
131
136
  with:
@@ -44,6 +44,9 @@ Host configuration JSON for these doc servers (`mcp_config.json` and other deskt
44
44
  - `src/<name>_mcp/auth.py` — `SharedTokenVerifier` (FastMCP `TokenVerifier`) for `<NAME>_MCP_AUTH_TOKEN` and the HTTP bind policy; the verifier is attached at server build, so `fastmcp run` and `http_app()` enforce the token too (`COOKBOOK.md` Recipe 8).
45
45
  - `src/<name>_mcp/tools/<domain>.py` — domain sub-servers (template ships `system.py`, `items.py`); re-exported from `tools/__init__.py`.
46
46
  - `src/<name>_mcp/client.py` — async HTTP client; `ssrf.py` — SSRF / DNS-rebinding guard; `errors.py` — exceptions and secret redaction; `middleware.py` — parent and child middleware; `config.py` — settings.
47
+ - `src/taxcode_mcp/data/` — the single source of truth for statute and publication rows: `jurisdictions.json` (catalog order), `statutes/<code>.json`, `publications/<code>.json`, `manifest/<code>.json` (one source record per row), and `rates/<code>.json` (the compliance tools' rate tables, one per state in `RATE_TABLE_MODELS`). `src/taxcode_mcp/catalog.py` loads and validates them; `db.py` seeds DuckDB from the rows, and `tools/compliance.py` reads every rate from the rate tables. Row layout, manifest fields and how to add a row: `CONTRIBUTING.md` (Adding or changing a row).
48
+ - `scripts/build_catalog.py` — rewrites the data files in canonical form and generates `docs/<code>/*.md`, `docs/<code>/llms-full.txt` (one jurisdiction's full text), `docs/llms.txt` and `docs/llms-full.txt` (the index of the per-jurisdiction files) from them; `--check` (run in CI and by `tests/test_catalog.py`) fails on a schema or canonical-form error (rate tables included, and a missing or stray rate table), an incomplete or mismatched manifest entry, or docs that differ from the generated output. Never edit generated docs by hand.
49
+ - `src/taxcode_mcp/paging.py` — hard response cap (32,000 characters of JSON) and paging for the statutes tools: `statutes_lookup_statute` pages long text (`page_cursor` / `next_cursor`), search and publications clamp `limit` to 1..25 items per call (`offset` / `next_offset`), and the `taxcode://statutes/{jurisdiction}/{section}{?page_cursor}` resource returns the same 8,000-character pages, ending a non-final page with the full URI of the next one (`...?page_cursor=`). The template has no `statutes/` segment of its own: the `statutes` mount namespace supplies it.
47
50
  - `scripts/check_tool_contract.py` — source of truth for the expected tool set and annotations. Do not hard-code tool counts elsewhere.
48
51
  - `scripts/check_openapi_drift.py`, `scripts/check_conformance.sh` + `conformance-baseline.yml` — drift and protocol conformance.
49
52
  - `tests/` — offline unit, layered-composition, and protocol tests; `test_e2e_live.py` is opt-in (`-m e2e`).
@@ -187,6 +190,9 @@ uv run python scripts/check_tool_contract.py
187
190
  # Upstream OpenAPI / route drift check
188
191
  uv run python scripts/check_openapi_drift.py
189
192
 
193
+ # Data files, source manifest and generated docs are current
194
+ uv run python scripts/build_catalog.py --check
195
+
190
196
  # Protocol integration tests (stdio handshake & stateless streamable HTTP)
191
197
  uv run pytest tests/test_protocol.py
192
198
 
@@ -0,0 +1,59 @@
1
+ # Contributing Guidelines
2
+
3
+ Thank you for your interest in contributing!
4
+
5
+ 1. Fork or branch from `main`: `git checkout -b feat/your-feature`.
6
+ 2. Ensure strict static typing: `mypy --strict src/`.
7
+ 3. Ensure the test suite passes: `pytest` (coverage threshold configured in `pyproject.toml`).
8
+ 4. Validate tool contracts: `python scripts/check_tool_contract.py`.
9
+ 5. Open a Pull Request. Merges are performed via **Squash Merge** with Conventional Commit titles (`feat:`, `fix:`, `docs:`, `chore:`).
10
+ 6. Changing statute or publication rows? Follow "Adding or changing a row" below and run `uv run python scripts/build_catalog.py --check`.
11
+ 7. Do not edit version numbers or `CHANGELOG.md`: the git tag is the version, and GitHub Releases are the changelog. The squash commit message is the PR body, so a breaking (`feat!:` / `fix!:`) PR ends its body with one `BREAKING CHANGE:` final paragraph that lists the breaking items, with no migration steps.
12
+
13
+ ## Adding or changing a row
14
+
15
+ Statute and publication rows live only in the data files under `src/taxcode_mcp/data/`. The server seeds its database from them, and `scripts/ingest_statutes.py` and the docs read them too. Never add rows as Python literals.
16
+
17
+ | File | Holds |
18
+ | --- | --- |
19
+ | `jurisdictions.json` | Jurisdiction codes in catalog order. Rows load in this order, then in file order. |
20
+ | `statutes/<code>.json` | One jurisdiction's statute rows (`us.json`, `pr.json`, `ga.json`, ...). `text_en` and `text_es` are lists of lines, joined with a newline when loaded. |
21
+ | `publications/<code>.json` | Publications whose `id` starts with `<code>-`. |
22
+ | `manifest/<code>.json` | One source record per statute and publication row and per rate table of that jurisdiction. |
23
+ | `rates/<code>.json` | The rate table the compliance tools compute a state's tax from. See "Changing a rate table" below. |
24
+
25
+ Every manifest entry has every field below. A value we don't have is the explicit string `"not_recorded"`, never a missing key and never a guess.
26
+
27
+ | Field | Meaning |
28
+ | --- | --- |
29
+ | `kind`, `id` | `statute` or `publication` and the row's `id`, or `rate_table` and `<code>-rates`. |
30
+ | `url` | Must equal the row's (or rate table's) `source_url`. |
31
+ | `edition` | Which text the source at `url` is: `as_enacted` (the law as passed), `amended_compilation` (a compilation with later amendments folded in, such as an OGP "según enmendada" text), or `"not_recorded"`. |
32
+ | `official` | `true` when the URL is on the issuing government body's own site, `false` for a third-party site, or `"not_recorded"`. It says nothing about whether the stored text is official. |
33
+ | `licence` | Reuse terms of the source, or `"not_recorded"`. |
34
+ | `retrieved` | Date the source was fetched (`YYYY-MM-DD`), or `"not_recorded"`. |
35
+ | `content_sha256` | SHA-256 of the fetched source artifact, or `"not_recorded"`. |
36
+ | `enacting_law` | Law that enacted or last amended the text, or `"not_recorded"`. |
37
+ | `effective_date` | Date the text took effect (`YYYY-MM-DD`), or `"not_recorded"`. |
38
+ | `verification` | `verified_verbatim` (checked word for word against the fetched source; needs `retrieved` and `content_sha256`), `summary` (the stored text is a summary, not a copy), or `"not_recorded"`. |
39
+
40
+ To add or change a row:
41
+
42
+ 1. Edit the row in `statutes/<code>.json` or `publications/<code>.json`. A new prior-year version is a new row with its own `id` and `effective_year`; set `superseded_year` on the version it replaces. Never copy current text into an earlier year.
43
+ 2. Add or update its entry in `manifest/<code>.json`.
44
+ 3. Run `uv run python scripts/build_catalog.py`. It rewrites the data files in canonical form and regenerates `docs/<code>/*.md`, `docs/<code>/llms-full.txt` (that jurisdiction's full text), `docs/llms.txt` and `docs/llms-full.txt` (an index of the per-jurisdiction files), so a content PR only changes the full-text file of the jurisdictions it touches.
45
+ 4. Run `uv run python scripts/build_catalog.py --check` and the test suite. CI runs the same check and fails if a data file, a manifest entry or a generated docs file is out of step.
46
+
47
+ A new jurisdiction also needs its code in `jurisdictions.json` and, for its name to resolve, in `JURISDICTION_NAMES` (`src/taxcode_mcp/db.py`). Content-only PRs touch just the data files, the manifest and the generated docs; keep code changes in their own PR.
48
+
49
+ ## Changing a rate table
50
+
51
+ Every deduction, exemption, bracket, rate and per-year value the compliance tools use lives in `src/taxcode_mcp/data/rates/<code>.json`, one file per state that has one (`RATE_TABLE_MODELS` in `src/taxcode_mcp/catalog.py`). FL and TX have none. Never add a rate as a Python literal.
52
+
53
+ - `model` names the shape of `params` and which formula reads it. It must match `RATE_TABLE_MODELS`.
54
+ - Amounts and rates are floats (`1000.0`, not `1000`), because tool output prints them as stored.
55
+ - `brackets` and `rates` are lists tried in order: the first step whose `over` the taxable income exceeds (or whose `from_year` the tax year has reached) applies, and the last step's `over` or `from_year` is `null`. Filing-status values are `{"single": ..., "mfj": ...}`.
56
+ - Each table has a `source_url` and a `rate_table` entry in `manifest/<code>.json` with the same `url`. No table cites a source yet, so both are `"not_recorded"`. Record a source only once it has been checked.
57
+ - `registry` tables keep their original keys. A `_YYYY` suffix holds the value from that tax year on, and the unsuffixed key covers the years before. Never copy a current value into an earlier year.
58
+
59
+ The files load and are validated when the server starts. `tests/test_compliance_golden.py` pins the exact output of every compliance tool over a wide input grid, so a rate change also updates those files (`uv run python tests/golden_compliance.py --write`) and the diff shows which answers moved.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: mcp-server-taxcode
3
- Version: 0.8.0
3
+ Version: 1.0.0
4
4
  Summary: Enterprise Model Context Protocol (MCP) server for Tax Code
5
5
  Project-URL: Homepage, https://github.com/christianclaudio/mcp-server-taxcode
6
6
  Project-URL: Documentation, https://github.com/christianclaudio/mcp-server-taxcode#readme
@@ -70,7 +70,7 @@ graph TD
70
70
  Gateway["FastMCP Root Gateway<br>(stdio / streamable-http)"]
71
71
  ParentMW["Parent Middleware<br>(Audit Logging, Timing, Secret Redaction, ReadOnly Gate)"]
72
72
  SysSub["System Sub-server (mount: 'system')<br>• system_get_health_status<br>• taxcode://system/reference/capabilities"]
73
- StatSub["Statutes Sub-server (mount: 'statutes')<br>• statutes_lookup_statute<br>• statutes_search_tax_code<br>• statutes_list_publications"]
73
+ StatSub["Statutes Sub-server (mount: 'statutes')<br>• statutes_lookup_statute<br>• statutes_search_tax_code<br>• statutes_list_publications<br>• taxcode://statutes/{jurisdiction}/{section}"]
74
74
  CompSub["Compliance Sub-server (mount: 'compliance')<br>• compliance_evaluate_pr_bona_fide_residency<br>• compliance_calculate_built_in_gain_sourcing<br>• compliance_evaluate_georgia_residency<br>• compliance_evaluate_state_residency"]
75
75
  DuckDB["DuckDB In-Memory & File Engine<br>(117 Statutes, 18 Publications, Full-Text Search, Temporal Versions)"]
76
76
 
@@ -92,6 +92,8 @@ graph TD
92
92
  * **Puerto Rico (`PR`)**: Act 60-2019 (Resident Individual Investors, Export Services & Opportunity Zone definitions, Sec. 6020.10 annual reports), Ley 1-2011 (including Sec. 1031.02 exemptions and Sec. 1062.01 wage withholding and Sec. 1062.03 withholding on payments for services), Act 22-2012 predecessor versions, and administrative publications (CC RI 21-10, CC RI 25-12, CC RI 26-13, DA 21-04, DA 23-04, BI RI 26-02).
93
93
  * **All 50 US States + District of Columbia**: Comprehensive statutory definitions and tax computations covering no-income-tax states (AK, FL, NV, NH, SD, TN, TX, WA, WY), flat-tax regimes (AZ, CO, GA, ID, IL, IN, IA, KS, KY, MI, MS, NC, PA, UT), and graduated/surtax jurisdictions (AL, AR, CA, CT, DE, DC, HI, LA, ME, MD, MA, MN, MO, MT, NE, NJ, NM, NY, ND, OH, OK, OR, RI, SC, VT, VA, WV, WI) including Convenience of the Employer rules (NY, PA, NJ, CT, DE, NE) and local piggyback taxes (MD, IN, OH, NY).
94
94
  * **Snippet Search, Full Text by Id**: `statutes_search_tax_code` matches and ranks on the full text but returns a short snippet (up to 300 characters around the first matched term) plus each result's `id`, citation, title, jurisdiction, year, validity and content labels. Pass an `id` to `statutes_lookup_statute` as `citation_or_section` for the full text.
95
+ * **Bounded Responses with Paging**: Every statutes tool result stays under 32,000 characters of JSON. `statutes_lookup_statute` returns long text in pages of up to 8,000 characters per text field (`text_page` gives the offset and full lengths; pass `next_cursor` back as `page_cursor` for the next page). `statutes_search_tax_code` and `statutes_list_publications` clamp `limit` to 1..25 items per call, with `offset` and `next_offset` for the next page. The `taxcode://statutes/{jurisdiction}/{section}` resource (for example `taxcode://statutes/US/933`) uses the same 8,000-character pages and cap: a page that is not the last ends with the URI of the next one, which carries a `?page_cursor=` query.
96
+ * **Versioned Data Files**: Every statute and publication row lives in per-jurisdiction JSON under `src/taxcode_mcp/data/` with a source record per row, and the docs under `docs/` are generated from them (see [`CONTRIBUTING.md`](CONTRIBUTING.md)).
95
97
  * **Temporal Statutory Versioning**: Point-in-time statutory lookup with `superseded_year` filtering and descending historical ordering (`tax_year` parameter).
96
98
  * **Deterministic Compliance Engines**:
97
99
  * `evaluate_pr_bona_fide_residency`: Evaluates IRC § 937 presence (183-day, 549-day 3-year, 90-day US), tax home, and closer connection tests.
@@ -306,6 +308,7 @@ uv run ruff format --check .
306
308
  # 4. Tool contract, protocol & drift assertions
307
309
  uv run python scripts/check_tool_contract.py
308
310
  uv run python scripts/check_openapi_drift.py
311
+ uv run python scripts/build_catalog.py --check # data files, source manifest, generated docs
309
312
  uv run pytest tests/test_protocol.py
310
313
  uv run pytest tests/test_e2e_live.py -m e2e # on demand; default CI uses -m 'not e2e'
311
314
  ./scripts/check_conformance.sh
@@ -25,7 +25,7 @@ graph TD
25
25
  Gateway["FastMCP Root Gateway<br>(stdio / streamable-http)"]
26
26
  ParentMW["Parent Middleware<br>(Audit Logging, Timing, Secret Redaction, ReadOnly Gate)"]
27
27
  SysSub["System Sub-server (mount: 'system')<br>• system_get_health_status<br>• taxcode://system/reference/capabilities"]
28
- StatSub["Statutes Sub-server (mount: 'statutes')<br>• statutes_lookup_statute<br>• statutes_search_tax_code<br>• statutes_list_publications"]
28
+ StatSub["Statutes Sub-server (mount: 'statutes')<br>• statutes_lookup_statute<br>• statutes_search_tax_code<br>• statutes_list_publications<br>• taxcode://statutes/{jurisdiction}/{section}"]
29
29
  CompSub["Compliance Sub-server (mount: 'compliance')<br>• compliance_evaluate_pr_bona_fide_residency<br>• compliance_calculate_built_in_gain_sourcing<br>• compliance_evaluate_georgia_residency<br>• compliance_evaluate_state_residency"]
30
30
  DuckDB["DuckDB In-Memory & File Engine<br>(117 Statutes, 18 Publications, Full-Text Search, Temporal Versions)"]
31
31
 
@@ -47,6 +47,8 @@ graph TD
47
47
  * **Puerto Rico (`PR`)**: Act 60-2019 (Resident Individual Investors, Export Services & Opportunity Zone definitions, Sec. 6020.10 annual reports), Ley 1-2011 (including Sec. 1031.02 exemptions and Sec. 1062.01 wage withholding and Sec. 1062.03 withholding on payments for services), Act 22-2012 predecessor versions, and administrative publications (CC RI 21-10, CC RI 25-12, CC RI 26-13, DA 21-04, DA 23-04, BI RI 26-02).
48
48
  * **All 50 US States + District of Columbia**: Comprehensive statutory definitions and tax computations covering no-income-tax states (AK, FL, NV, NH, SD, TN, TX, WA, WY), flat-tax regimes (AZ, CO, GA, ID, IL, IN, IA, KS, KY, MI, MS, NC, PA, UT), and graduated/surtax jurisdictions (AL, AR, CA, CT, DE, DC, HI, LA, ME, MD, MA, MN, MO, MT, NE, NJ, NM, NY, ND, OH, OK, OR, RI, SC, VT, VA, WV, WI) including Convenience of the Employer rules (NY, PA, NJ, CT, DE, NE) and local piggyback taxes (MD, IN, OH, NY).
49
49
  * **Snippet Search, Full Text by Id**: `statutes_search_tax_code` matches and ranks on the full text but returns a short snippet (up to 300 characters around the first matched term) plus each result's `id`, citation, title, jurisdiction, year, validity and content labels. Pass an `id` to `statutes_lookup_statute` as `citation_or_section` for the full text.
50
+ * **Bounded Responses with Paging**: Every statutes tool result stays under 32,000 characters of JSON. `statutes_lookup_statute` returns long text in pages of up to 8,000 characters per text field (`text_page` gives the offset and full lengths; pass `next_cursor` back as `page_cursor` for the next page). `statutes_search_tax_code` and `statutes_list_publications` clamp `limit` to 1..25 items per call, with `offset` and `next_offset` for the next page. The `taxcode://statutes/{jurisdiction}/{section}` resource (for example `taxcode://statutes/US/933`) uses the same 8,000-character pages and cap: a page that is not the last ends with the URI of the next one, which carries a `?page_cursor=` query.
51
+ * **Versioned Data Files**: Every statute and publication row lives in per-jurisdiction JSON under `src/taxcode_mcp/data/` with a source record per row, and the docs under `docs/` are generated from them (see [`CONTRIBUTING.md`](CONTRIBUTING.md)).
50
52
  * **Temporal Statutory Versioning**: Point-in-time statutory lookup with `superseded_year` filtering and descending historical ordering (`tax_year` parameter).
51
53
  * **Deterministic Compliance Engines**:
52
54
  * `evaluate_pr_bona_fide_residency`: Evaluates IRC § 937 presence (183-day, 549-day 3-year, 90-day US), tax home, and closer connection tests.
@@ -261,6 +263,7 @@ uv run ruff format --check .
261
263
  # 4. Tool contract, protocol & drift assertions
262
264
  uv run python scripts/check_tool_contract.py
263
265
  uv run python scripts/check_openapi_drift.py
266
+ uv run python scripts/build_catalog.py --check # data files, source manifest, generated docs
264
267
  uv run pytest tests/test_protocol.py
265
268
  uv run pytest tests/test_e2e_live.py -m e2e # on demand; default CI uses -m 'not e2e'
266
269
  ./scripts/check_conformance.sh
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: AK
2
+
3
+ ## Alaska Stat. § 43.05.080: Revenue Administration and Absence of Individual Income Tax
4
+ `Alaska Stat. > Title 43 > Chapter 05 > § 43.05.080`
5
+
6
+ ### English
7
+ Empowers the Department of Revenue to administer tax laws, operating alongside the historic repeal of former AS 43.20 individual income tax by Ch. 1, SLA 1980.
8
+
9
+ ### Español
10
+ Faculta al Departamento de Ingresos a reglamentar la administración tributaria estatal, tras la histórica derogación del impuesto individual por el Cap. 1, SLA 1980.
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: AL
2
+
3
+ ## Ala. Code § 40-18-2: Tax on Individuals
4
+ `Ala. Code > Title 40 > Chapter 18 > § 40-18-2`
5
+
6
+ ### English
7
+ Imposes graduated individual income tax rates of 2%, 4%, and 5% on taxable net income of individuals in Alabama.
8
+
9
+ ### Español
10
+ Impone tasas impositivas individuales graduadas del 2%, 4% y 5% sobre el ingreso neto gravable de individuos en Alabama.
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: AR
2
+
3
+ ## Ark. Code Ann. § 26-51-201: Tax on Individuals, Trusts, and Estates
4
+ `A.C.A. > Title 26 > Subtitle 5 > Chapter 51 > Subchapter 2 > § 26-51-201`
5
+
6
+ ### English
7
+ Imposes individual income tax with graduated brackets and top rate of 3.90% under Arkansas Act 1 of 2024.
8
+
9
+ ### Español
10
+ Impone impuesto sobre el ingreso individual con tramos graduados y tasa máxima de 3.90% bajo la Ley 1 de 2024 de Arkansas.
@@ -0,0 +1,19 @@
1
+ # Full Statutory Corpus: AZ
2
+
3
+ ## A.R.S. § 43-1011: Taxes and Tax Rates - Individuals
4
+ `A.R.S. > Title 43 > Chapter 10 > Article 1 > § 43-1011`
5
+
6
+ ### English
7
+ Imposes a flat individual income tax rate of 2.50% on Arizona taxable income, enacted by SB 1828 to replace graduated individual tax brackets.
8
+
9
+ ### Español
10
+ Impone una tasa impositiva fija del 2.50% sobre el ingreso gravable de Arizona de individuos, promulgada bajo SB 1828 eliminando tramos graduales anteriores.
11
+
12
+ ## A.R.S. § 43-104: Definitions - Resident and Presumption of Residency
13
+ `A.R.S. > Title 43 > Chapter 1 > Article 1 > § 43-104`
14
+
15
+ ### English
16
+ Defines resident as every individual in Arizona for other than a temporary or transitory purpose; individuals spending in the aggregate more than nine months (270 days) of the tax year in state are presumed residents.
17
+
18
+ ### Español
19
+ Define residente como todo individuo en Arizona para fines no temporales ni transitorios; quien pase en agregado más de nueve meses (270 días) en el estado se presume residente.
@@ -0,0 +1,37 @@
1
+ # Full Statutory Corpus: CA
2
+
3
+ ## Cal. Rev. & Tax Code § 17014: Definition of Resident (Non-Temporary Purpose Test)
4
+ `Cal. Rev. & Tax Code > Part 10 > Chapter 1 > § 17014`
5
+
6
+ ### English
7
+ Defines resident as every individual who is in California for other than a temporary or transitory purpose, and every individual domiciled in California who is outside the state for a temporary or transitory purpose. Presumption under § 17016 at 9 months.
8
+
9
+ ### Español
10
+ Define residente como todo individuo que permanezca en California para fines que no sean temporales o transitorios, y todo domiciliado que esté fuera del estado de forma temporal. Aplica el criterio de conexión más cercana.
11
+
12
+ ## Cal. Rev. & Tax Code § 17041: Individual Income Tax Rates and Brackets
13
+ `Cal. Rev. & Tax Code > Part 10 > Chapter 2 > § 17041`
14
+
15
+ ### English
16
+ Imposes graduated income tax rates on California taxable income ranging from 1% to 12.3%, plus a 1% Mental Health Services Tax surcharge on taxable income exceeding $1,000,000, creating a top marginal individual rate of 13.3%.
17
+
18
+ ### Español
19
+ Grava el ingreso tributable de California con tasas escalonadas del 1% al 12.3%, más 1% de recargo para servicios de salud mental sobre ingresos mayores a $1M (Proposición 63), para una tasa marginal máxima de 13.3%.
20
+
21
+ ## Cal. Rev. & Tax Code § 17951: Gross Income of Nonresidents and Sourcing
22
+ `Cal. Rev. & Tax Code > Part 10 > Chapter 9 > § 17951`
23
+
24
+ ### English
25
+ In the case of nonresidents, gross income includes only gross income from sources within California, including income from a business, trade, or profession conducted in the state, and compensation for personal services performed in California.
26
+
27
+ ### Español
28
+ Para no residentes, el ingreso bruto comprende únicamente ingresos derivados de fuentes en California, incluyendo negocios, profesiones y servicios personales realizados dentro del estado.
29
+
30
+ ## 18 CCR § 17014: FTB Residence and Domicile Guidelines
31
+ `18 CCR > Division 3 > Chapter 2.5 > Subchapter 1 > § 17014`
32
+
33
+ ### English
34
+ FTB regulation detailing domicile and residence determination. A person may have multiple residences but only one domicile. Applies the closest connection test evaluating real property, family, bank accounts, business affiliations, and licenses.
35
+
36
+ ### Español
37
+ Reglamento de la FTB sobre residencia y domicilio. Aplica el criterio de conexión más cercana evaluando propiedades inmuebles, familia, cuentas bancarias, licencias profesionales y afiliaciones comerciales.
@@ -0,0 +1,19 @@
1
+ # Full Statutory Corpus: CO
2
+
3
+ ## Colo. Rev. Stat. § 39-22-104: Levy of Tax - Single Rate for Individuals
4
+ `C.R.S. > Title 39 > Article 22 > Part 1 > § 39-22-104`
5
+
6
+ ### English
7
+ Imposes a flat tax of 4.40% on Colorado modified federal taxable income of individuals pursuant to voter-approved Proposition 121 (reduced from 4.55%).
8
+
9
+ ### Español
10
+ Impone una tasa uniforme del 4.40% sobre el ingreso federal tributable modificado de individuos de Colorado bajo la Proposición 121 aprobada por los electores.
11
+
12
+ ## Colo. Rev. Stat. § 39-22-103: Definitions - Resident Individual
13
+ `C.R.S. > Title 39 > Article 22 > Part 1 > § 39-22-103`
14
+
15
+ ### English
16
+ Defines a resident individual as one domiciled in Colorado, or who maintains a permanent place of abode in Colorado and spends in the aggregate more than six months of the taxable year in Colorado.
17
+
18
+ ### Español
19
+ Define individuo residente como quien tiene domicilio en Colorado, o mantiene morada permanente y pasa en agregado más de seis meses del año contributivo en Colorado.
@@ -0,0 +1,28 @@
1
+ # Full Statutory Corpus: CT
2
+
3
+ ## Conn. Gen. Stat. § 12-700: Imposition of Income Tax and Rates
4
+ `C.G.S. > Title 12 > Chapter 229 > § 12-700`
5
+
6
+ ### English
7
+ Imposes graduated personal income tax rates from 3.0% to 6.99% on resident Connecticut taxable income with benefit phase-out recaptures for high earners.
8
+
9
+ ### Español
10
+ Impone tasas impositivas graduadas del 3.0% al 6.99% sobre el ingreso neto de residentes, con eliminación progresiva de tramos de exención en ingresos altos.
11
+
12
+ ## Conn. Gen. Stat. § 12-701: Definitions - Resident and Sourcing
13
+ `C.G.S. > Title 12 > Chapter 229 > § 12-701`
14
+
15
+ ### English
16
+ Defines resident as an individual domiciled in Connecticut or who maintains a permanent place of abode and spends in the aggregate more than 183 days of the taxable year in state.
17
+
18
+ ### Español
19
+ Define residente statutario como quien mantiene un lugar permanente de morada en Connecticut y pasa en total más de 183 días en el año contributivo.
20
+
21
+ ## Conn. Gen. Stat. § 12-711: Convenience of Employer Rule
22
+ `C.G.S. > Title 12 > Chapter 229 > § 12-711`
23
+
24
+ ### English
25
+ Applies a reciprocal convenience of the employer test to nonresident compensation earned while telecommuting for a Connecticut employer if employee's state applies a convenience rule.
26
+
27
+ ### Español
28
+ Aplica la regla de conveniencia del patrono para determinar la fuente de ingresos salariales de no residentes que teletrabajan si su estado de residencia aplica una regla similar.
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: DC
2
+
3
+ ## D.C. Code § 47-1806.03: Tax on Residents - Rates
4
+ `D.C. Code > Title 47 > Chapter 18 > Subchapter VI > § 47-1806.03`
5
+
6
+ ### English
7
+ Imposes graduated personal income tax rates from 4.0% to top rate 10.75% for taxable income exceeding $1,000,000 in the District of Columbia.
8
+
9
+ ### Español
10
+ Impone tasas de impuesto sobre ingresos personales graduadas desde 4.0% hasta tasa máxima de 10.75% sobre ingresos superiores a $1,000,000 en el Distrito de Columbia.
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: DE
2
+
3
+ ## 30 Del. C. § 1102: Levy and Rates of Personal Income Tax
4
+ `Del. Code > Title 30 > Part II > Chapter 11 > Subchapter I > § 1102`
5
+
6
+ ### English
7
+ Imposes graduated income tax rates from 2.2% to 6.6% and applies convenience of employer rules to nonresident compensation.
8
+
9
+ ### Español
10
+ Impone tasas de impuesto sobre la renta graduadas del 2.2% al 6.6% y aplica reglas de conveniencia del empleador a remuneraciones de no residentes.
@@ -0,0 +1,28 @@
1
+ # Full Statutory Corpus: FL
2
+
3
+ ## Fla. Const. Art. VII § 5: Constitutional Prohibition of Personal Income Tax
4
+ `Fla. Const. > Article VII > Section 5`
5
+
6
+ ### English
7
+ Prohibits any tax upon the income of natural persons who are residents or citizens of Florida, guaranteeing the absence of state individual income taxation.
8
+
9
+ ### Español
10
+ Prohíbe constitucionalmente cualquier impuesto sobre el ingreso de personas naturales residentes o ciudadanas de Florida, garantizando la ausencia de impuesto estatal sobre ingresos individuales.
11
+
12
+ ## Fla. Stat. § 222.17: Manifesting and Evidencing Domicile in Florida
13
+ `Fla. Stat. > Title XV > Chapter 222 > § 222.17`
14
+
15
+ ### English
16
+ Authorizes any person who has established a domicile in Florida to manifest that domicile by filing a sworn, notarized statement of domicile with the clerk of the circuit court in the county of residence.
17
+
18
+ ### Español
19
+ Autoriza a toda persona que haya establecido domicilio en Florida a manifestarlo formalmente mediante declaración jurada radicada ante el secretario del tribunal de circuito del condado correspondiente.
20
+
21
+ ## Fla. Stat. § 196.031: Exemption of Homesteads
22
+ `Fla. Stat. > Title XIV > Chapter 196 > § 196.031`
23
+
24
+ ### English
25
+ Grants up to $50,000 homestead property tax exemption to persons who maintain permanent residence. Claiming Florida homestead establishes prima facie proof of Florida domicile.
26
+
27
+ ### Español
28
+ Concede hasta $50,000 de exención contributiva sobre la propiedad principal a residentes permanentes. Solicitar la exención de 'homestead' constituye prueba prima facie de domicilio en Florida.
@@ -0,0 +1,64 @@
1
+ # Full Statutory Corpus: GA
2
+
3
+ ## O.C.G.A. § 48-7-1: Income Tax Definitions / Residency Rules
4
+ `O.C.G.A. > Title 48 > Chapter 7 > Article 1 > § 48-7-1`
5
+
6
+ ### English
7
+ Defines Georgia resident as any individual who is a legal resident of Georgia on income tax day, who resides within the state for 183 days or more in the aggregate during the taxable year, or who maintains a permanent place of abode within the state.
8
+
9
+ ### Español
10
+ Define residente de Georgia como todo individuo con residencia legal en Georgia el día de pago del impuesto, que resida en el estado al menos 183 días del año contributivo, o que mantenga una vivienda permanente.
11
+
12
+ ## O.C.G.A. § 48-7-20: Individual Income Tax Rates (2024 Flat Rate: 5.49%)
13
+ `O.C.G.A. > Title 48 > Chapter 7 > Article 2 > § 48-7-20 (2024)`
14
+
15
+ ### English
16
+ Imposes a flat individual income tax rate of 5.49% on Georgia taxable net income for tax year 2024 pursuant to HB 1023, eliminating previous graduated brackets.
17
+
18
+ ### Español
19
+ Establece una tasa impositiva fija (flat tax) de 5.49% sobre el ingreso neto tributable de individuos para el año contributivo 2024 bajo HB 1023.
20
+
21
+ ## O.C.G.A. § 48-7-20: Individual Income Tax Rates (2025 Flat Rate: 5.39%)
22
+ `O.C.G.A. > Title 48 > Chapter 7 > Article 2 > § 48-7-20 (2025)`
23
+
24
+ ### English
25
+ Accelerates the reduction of the flat individual income tax rate to 5.39% for tax year 2025 pursuant to HB 1015.
26
+
27
+ ### Español
28
+ Acelera la reducción de la tasa impositiva individual fija al 5.39% para el año contributivo 2025 bajo HB 1015.
29
+
30
+ ## O.C.G.A. § 48-7-20: Individual Income Tax Rates (2026 Target Flat Rate: 4.99%)
31
+ `O.C.G.A. > Title 48 > Chapter 7 > Article 2 > § 48-7-20 (2026)`
32
+
33
+ ### English
34
+ Imposes the target flat individual income tax rate of 4.99% for taxable years beginning on or after January 1, 2026 pursuant to HB 1023.
35
+
36
+ ### Español
37
+ Establece la tasa impositiva fija objetivo de 4.99% sobre el ingreso neto tributable a partir del 1 de enero de 2026 bajo HB 1023.
38
+
39
+ ## O.C.G.A. § 48-7-27: Computation of Georgia Taxable Net Income
40
+ `O.C.G.A. > Title 48 > Chapter 7 > Article 2 > § 48-7-27`
41
+
42
+ ### English
43
+ Calculates Georgia taxable net income from Federal AGI, allowing standard deductions of $12,000 (single) or $24,000 (married filing jointly), and a retirement income exclusion of up to $65,000 for individuals age 65 or older ($35,000 for ages 62-64).
44
+
45
+ ### Español
46
+ Dispone el cálculo del ingreso neto gravable a partir del AGI federal, deducción estándar de $12,000 (solteros) o $24,000 (casados), y exclusión de hasta $65,000 en ingresos de jubilación para mayores de 65 años.
47
+
48
+ ## O.C.G.A. § 48-7-30: Taxation of Nonresidents
49
+ `O.C.G.A. > Title 48 > Chapter 7 > Article 2 > § 48-7-30`
50
+
51
+ ### English
52
+ Taxes nonresidents on gross income derived from Georgia sources, including compensation for services performed within Georgia, property located in Georgia, and business conducted in the state.
53
+
54
+ ### Español
55
+ Grava a personas no residentes sobre su ingreso bruto derivado de fuentes de Georgia, incluyendo compensación por servicios realizados en Georgia y actividades comerciales locales.
56
+
57
+ ## Ga. Comp. R. & Regs. r. 560-7-3-.01: Residence and Domicile
58
+ `Ga. Comp. R. & Regs. > Chapter 560-7 > Subject 560-7-3 > Rule 560-7-3-.01`
59
+
60
+ ### English
61
+ Georgia Department of Revenue rule governing residence and legal domicile. Domicile in Georgia is presumed to continue until the taxpayer establishes abandonment and acquisition of a permanent domicile elsewhere.
62
+
63
+ ### Español
64
+ Reglamento del Departamento de Ingresos de Georgia sobre domicilio y residencia. El domicilio en Georgia se presume continuo a menos que el contribuyente demuestre abandono definitivo y adquisición de nuevo domicilio.
@@ -4,7 +4,7 @@
4
4
  - **Corpus:** OCGA
5
5
  - **Effective Year:** 2026
6
6
  - **Superseded Year:** Current / In Force
7
- - **Source:** [https://dor.georgia.gov/taxes/individual-income-tax](https://dor.georgia.gov/taxes/individual-income-tax)
7
+ - **Source:** [https://dor.georgia.gov/taxes/taxes-individuals](https://dor.georgia.gov/taxes/taxes-individuals)
8
8
  - **Hierarchy:** `O.C.G.A. > Title 48 > Chapter 7 > Article 2 > § 48-7-20 (2026)`
9
9
  - **Cross References:** `O.C.G.A. § 48-7-1`, `O.C.G.A. § 48-7-27`
10
10
 
@@ -4,7 +4,7 @@
4
4
  - **Corpus:** OCGA
5
5
  - **Effective Year:** 2024
6
6
  - **Superseded Year:** 2025
7
- - **Source:** [https://dor.georgia.gov/taxes/individual-income-tax](https://dor.georgia.gov/taxes/individual-income-tax)
7
+ - **Source:** [https://dor.georgia.gov/taxes/taxes-individuals](https://dor.georgia.gov/taxes/taxes-individuals)
8
8
  - **Hierarchy:** `O.C.G.A. > Title 48 > Chapter 7 > Article 2 > § 48-7-20 (2024)`
9
9
  - **Cross References:** `O.C.G.A. § 48-7-1`, `O.C.G.A. § 48-7-27`
10
10
 
@@ -4,7 +4,7 @@
4
4
  - **Corpus:** OCGA
5
5
  - **Effective Year:** 2025
6
6
  - **Superseded Year:** 2026
7
- - **Source:** [https://dor.georgia.gov/taxes/individual-income-tax](https://dor.georgia.gov/taxes/individual-income-tax)
7
+ - **Source:** [https://dor.georgia.gov/taxes/taxes-individuals](https://dor.georgia.gov/taxes/taxes-individuals)
8
8
  - **Hierarchy:** `O.C.G.A. > Title 48 > Chapter 7 > Article 2 > § 48-7-20 (2025)`
9
9
  - **Cross References:** `O.C.G.A. § 48-7-1`, `O.C.G.A. § 48-7-27`
10
10
 
@@ -4,7 +4,7 @@
4
4
  - **Corpus:** OCGA
5
5
  - **Effective Year:** 2024
6
6
  - **Superseded Year:** Current / In Force
7
- - **Source:** [https://dor.georgia.gov/taxes/individual-income-tax](https://dor.georgia.gov/taxes/individual-income-tax)
7
+ - **Source:** [https://dor.georgia.gov/taxes/taxes-individuals](https://dor.georgia.gov/taxes/taxes-individuals)
8
8
  - **Hierarchy:** `O.C.G.A. > Title 48 > Chapter 7 > Article 2 > § 48-7-27`
9
9
  - **Cross References:** `O.C.G.A. § 48-7-20`, `26 U.S.C. § 62`
10
10
 
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: HI
2
+
3
+ ## Haw. Rev. Stat. § 235-51: Tax on Individuals, Estates, and Trusts
4
+ `HRS > Title 14 > Chapter 235 > Part I > § 235-51`
5
+
6
+ ### English
7
+ Imposes graduated individual income tax rates up to 11.0% under Act 97 (2024 Hawaii tax reform).
8
+
9
+ ### Español
10
+ Impone tasas de impuesto sobre la renta individual graduadas de hasta 11.0% bajo la Ley 97 (reforma contributiva de Hawaii de 2024).
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: IA
2
+
3
+ ## Iowa Code § 422.5: Tax Imposed - Rates
4
+ `Iowa Code > Title X > Subtitle 2 > Chapter 422 > Subchapter II > § 422.5`
5
+
6
+ ### English
7
+ Imposes personal income tax transitioning to a flat 3.80% rate under SF 2442 in Iowa.
8
+
9
+ ### Español
10
+ Impone impuesto sobre la renta personal en transición hacia una tasa fija uniforme del 3.80% bajo SF 2442 en Iowa.
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: ID
2
+
3
+ ## Idaho Code § 63-3024: Individuals' Tax and Tax on Estates and Trusts
4
+ `Idaho Code > Title 63 > Chapter 30 > § 63-3024`
5
+
6
+ ### English
7
+ Imposes a flat individual income tax rate of 5.695% on taxable income under HB 521 in Idaho.
8
+
9
+ ### Español
10
+ Impone una tasa impositiva individual fija del 5.695% sobre el ingreso gravable de individuos bajo HB 521 en Idaho.
@@ -0,0 +1,28 @@
1
+ # Full Statutory Corpus: IL
2
+
3
+ ## 35 ILCS 5/201: Illinois Individual Income Tax Rate
4
+ `35 ILCS 5/ > Article 2 > Section 201`
5
+
6
+ ### English
7
+ Constitutionally mandated non-graduated flat income tax rate of 4.95% on net income of individuals, trusts, and estates.
8
+
9
+ ### Español
10
+ Impuesto estatal no graduado a tasa fija del 4.95% sobre el ingreso neto de personas naturales, mandatado por la Constitución de Illinois.
11
+
12
+ ## 35 ILCS 5/1501(a)(20): Definition of Resident
13
+ `35 ILCS 5/ > Article 15 > Section 1501(a)(20)`
14
+
15
+ ### English
16
+ Defines resident as an individual who is in Illinois for other than a temporary or transitory purpose during the taxable year or who is domiciled in Illinois.
17
+
18
+ ### Español
19
+ Define residente como persona en Illinois para fines no transitorios o temporales, o domiciliada en Illinois ausente temporalmente.
20
+
21
+ ## 35 ILCS 5/301: Compensation and Nonresident Income Sourcing
22
+ `35 ILCS 5/ > Article 3 > Section 301`
23
+
24
+ ### English
25
+ Rules for allocating and sourcing compensation and business income of nonresidents based on physical days of services performed within Illinois.
26
+
27
+ ### Español
28
+ Reglas de asignación de ingresos y salarios de no residentes a Illinois basándose en servicios efectivamente prestados en el estado.
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: IN
2
+
3
+ ## Ind. Code § 6-3-2-1: Imposition of Adjusted Gross Income Tax
4
+ `Ind. Code > Title 6 > Article 3 > Chapter 2 > § 6-3-2-1`
5
+
6
+ ### English
7
+ Imposes flat adjusted gross income tax of 3.05% for 2024 alongside county local income taxes (LIT) in Indiana.
8
+
9
+ ### Español
10
+ Impone una tasa fija de impuesto sobre el ingreso bruto ajustado del 3.05% para 2024 junto a impuestos locales de condado (LIT) en Indiana.
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: KS
2
+
3
+ ## Kan. Stat. Ann. § 79-32,110: Tax Imposed - Classes of Taxpayers
4
+ `K.S.A. > Chapter 79 > Article 32 > § 79-32,110`
5
+
6
+ ### English
7
+ Imposes individual income tax at rates of 5.20% and 5.58% under 2024 Special Session SB 1 in Kansas.
8
+
9
+ ### Español
10
+ Impone impuesto sobre el ingreso individual a tasas del 5.20% y 5.58% bajo la sesión extraordinaria de 2024 SB 1 en Kansas.
@@ -0,0 +1,10 @@
1
+ # Full Statutory Corpus: KY
2
+
3
+ ## Ky. Rev. Stat. Ann. § 141.020: Levy of Tax on Individuals
4
+ `KRS > Title XI > Chapter 141 > § 141.020`
5
+
6
+ ### English
7
+ Imposes flat individual income tax rate of 4.0% on net income under statutory rate-reduction triggers in Kentucky.
8
+
9
+ ### Español
10
+ Impone una tasa fija de impuesto sobre la renta del 4.0% sobre el ingreso neto bajo criterios estatutarios de reducción en Kentucky.
@@ -0,0 +1,19 @@
1
+ # Full Statutory Corpus: LA
2
+
3
+ ## La. Rev. Stat. Ann. § 47:32: Rates of Tax (Graduated Schedule through 2024)
4
+ `La. R.S. > Title 47 > Subtitle II > Chapter 1 > Part I > § 47:32`
5
+
6
+ ### English
7
+ Imposes graduated personal income tax rates of 1.85%, 3.50%, and 4.25% in Louisiana applicable through tax year 2024.
8
+
9
+ ### Español
10
+ Impone tasas de impuesto sobre la renta personal graduadas de 1.85%, 3.50% y 4.25% en Luisiana aplicables hasta el año contributivo 2024.
11
+
12
+ ## La. Rev. Stat. Ann. § 47:32: Flat Individual Income Tax Rate (Act 11 of 2024 3rd Ex. Sess.)
13
+ `La. R.S. > Title 47 > Subtitle II > Chapter 1 > Part I > § 47:32`
14
+
15
+ ### English
16
+ Imposes a flat individual income tax rate of 3.00% on net taxable income effective for tax periods beginning on or after January 1, 2025 (Act 11 of 2024).
17
+
18
+ ### Español
19
+ Impone una tasa fija de impuesto sobre la renta del 3.00% sobre el ingreso neto gravable de individuos a partir del 1 de enero de 2025 (Act 11 de 2024).