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.
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/workflows/ci.yml +5 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/AGENTS.md +6 -0
- mcp_server_taxcode-1.0.0/CONTRIBUTING.md +59 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/PKG-INFO +5 -2
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/README.md +4 -1
- mcp_server_taxcode-1.0.0/docs/ak/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/al/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/ar/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/az/llms-full.txt +19 -0
- mcp_server_taxcode-1.0.0/docs/ca/llms-full.txt +37 -0
- mcp_server_taxcode-1.0.0/docs/co/llms-full.txt +19 -0
- mcp_server_taxcode-1.0.0/docs/ct/llms-full.txt +28 -0
- mcp_server_taxcode-1.0.0/docs/dc/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/de/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/fl/llms-full.txt +28 -0
- mcp_server_taxcode-1.0.0/docs/ga/llms-full.txt +64 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_20.md +1 -1
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_20_2024.md +1 -1
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_20_2025.md +1 -1
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_27.md +1 -1
- mcp_server_taxcode-1.0.0/docs/hi/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/ia/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/id/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/il/llms-full.txt +28 -0
- mcp_server_taxcode-1.0.0/docs/in/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/ks/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/ky/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/la/llms-full.txt +19 -0
- mcp_server_taxcode-1.0.0/docs/llms-full.txt +57 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/llms.txt +6 -2
- mcp_server_taxcode-1.0.0/docs/ma/llms-full.txt +28 -0
- mcp_server_taxcode-1.0.0/docs/md/llms-full.txt +28 -0
- mcp_server_taxcode-1.0.0/docs/me/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/mi/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/mn/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/mo/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/ms/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/mt/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/nc/llms-full.txt +19 -0
- mcp_server_taxcode-1.0.0/docs/nd/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/ne/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/nh/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/nj/llms-full.txt +28 -0
- mcp_server_taxcode-1.0.0/docs/nm/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/nv/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/ny/llms-full.txt +37 -0
- mcp_server_taxcode-1.0.0/docs/oh/llms-full.txt +19 -0
- mcp_server_taxcode-1.0.0/docs/ok/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/or/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/pa/llms-full.txt +28 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley22_3_2012.md +1 -1
- mcp_server_taxcode-1.0.0/docs/pr/llms-full.txt +538 -0
- mcp_server_taxcode-1.0.0/docs/ri/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/sc/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/sd/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/tn/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/tx/llms-full.txt +19 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/cfr_1_937_1.md +1 -1
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/cfr_1_937_2.md +1 -1
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/cfr_1_937_3.md +1 -1
- mcp_server_taxcode-1.0.0/docs/us/llms-full.txt +1501 -0
- mcp_server_taxcode-1.0.0/docs/ut/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/va/llms-full.txt +28 -0
- mcp_server_taxcode-1.0.0/docs/vt/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/wa/llms-full.txt +28 -0
- mcp_server_taxcode-1.0.0/docs/wi/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/wv/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/docs/wy/llms-full.txt +10 -0
- mcp_server_taxcode-1.0.0/scripts/build_catalog.py +147 -0
- mcp_server_taxcode-1.0.0/scripts/ingest_statutes.py +510 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/skills/taxcode-mcp/SKILL.md +3 -1
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/catalog.py +710 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/jurisdictions.json +55 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ak.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/al.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ar.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/az.json +45 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ca.json +71 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/co.json +45 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ct.json +58 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/dc.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/de.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/fl.json +45 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ga.json +136 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/hi.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ia.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/id.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/il.json +58 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/in.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ks.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ky.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/la.json +45 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ma.json +58 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/md.json +71 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/me.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/mi.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/mn.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/mo.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ms.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/mt.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nc.json +45 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nd.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ne.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nh.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nj.json +58 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nm.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/nv.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ny.json +71 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/oh.json +58 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ok.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/or.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/pa.json +71 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/pr.json +578 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ri.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/sc.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/sd.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/tn.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/tx.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/us.json +305 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/ut.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/va.json +71 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/vt.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/wa.json +58 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/wi.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/wv.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/manifest/wy.json +32 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/ga.json +24 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/md.json +15 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/oh.json +15 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/pa.json +15 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/pr.json +240 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/us.json +60 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/publications/va.json +15 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ak.json +12 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/al.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ar.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/az.json +13 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ca.json +50 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/co.json +13 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ct.json +50 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/dc.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/de.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ga.json +36 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/hi.json +19 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ia.json +19 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/id.json +16 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/il.json +13 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/in.json +18 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ks.json +15 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ky.json +15 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/la.json +23 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ma.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/md.json +49 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/me.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/mi.json +15 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/mn.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/mo.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ms.json +15 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/mt.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nc.json +29 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nd.json +25 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ne.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nh.json +12 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nj.json +50 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nm.json +20 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/nv.json +12 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ny.json +58 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/oh.json +48 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ok.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/or.json +18 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/pa.json +9 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ri.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/sc.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/sd.json +12 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/tn.json +12 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/ut.json +15 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/va.json +58 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/vt.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/wa.json +10 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/wi.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/wv.json +17 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/rates/wy.json +12 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ak.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/al.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ar.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/az.json +50 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ca.json +96 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/co.json +50 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ct.json +73 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/dc.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/de.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/fl.json +73 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ga.json +168 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/hi.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ia.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/id.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/il.json +73 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/in.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ks.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ky.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/la.json +50 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ma.json +73 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/md.json +73 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/me.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/mi.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/mn.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/mo.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ms.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/mt.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nc.json +51 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nd.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ne.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nh.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nj.json +73 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nm.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/nv.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ny.json +95 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/oh.json +50 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ok.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/or.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/pa.json +74 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/pr.json +796 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ri.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/sc.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/sd.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/tn.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/tx.json +50 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/us.json +1747 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/ut.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/va.json +74 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/vt.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/wa.json +73 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/wi.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/wv.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/data/statutes/wy.json +26 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/db.py +821 -0
- mcp_server_taxcode-1.0.0/src/taxcode_mcp/paging.py +159 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/tools/compliance.py +97 -491
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/tools/statutes.py +155 -38
- mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_calculate_built_in_gain_sourcing.jsonl.gz +0 -0
- mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_cross_border_tax_analysis.jsonl.gz +0 -0
- mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_evaluate_georgia_residency.jsonl.gz +0 -0
- mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_evaluate_pr_bona_fide_residency.jsonl.gz +0 -0
- mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/compliance_evaluate_state_residency.jsonl.gz +0 -0
- mcp_server_taxcode-1.0.0/tests/fixtures/compliance_golden/constants.json +5 -0
- mcp_server_taxcode-1.0.0/tests/golden_compliance.py +144 -0
- mcp_server_taxcode-1.0.0/tests/test_catalog.py +461 -0
- mcp_server_taxcode-1.0.0/tests/test_compliance_golden.py +46 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_federal.py +14 -5
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_ingest.py +36 -35
- mcp_server_taxcode-1.0.0/tests/test_paging.py +323 -0
- mcp_server_taxcode-1.0.0/tests/test_rate_tables.py +192 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_search_snippets.py +6 -1
- mcp_server_taxcode-0.8.0/CONTRIBUTING.md +0 -10
- mcp_server_taxcode-0.8.0/docs/llms-full.txt +0 -2821
- mcp_server_taxcode-0.8.0/scripts/ingest_statutes.py +0 -8159
- mcp_server_taxcode-0.8.0/src/taxcode_mcp/db.py +0 -9369
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/dependabot.yml +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/workflows/dependabot-automerge.yml +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/workflows/drift-monitor.yml +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.github/workflows/release.yml +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/.gitignore +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/CHANGELOG.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/CODE_OF_CONDUCT.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/Dockerfile +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/LICENSE +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/SECURITY.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/conformance-baseline.yml +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docker/pip-bootstrap.txt +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ak/alaska stat._43_05_080.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/al/ala. code_40_18_2.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ar/a.c.a._26_51_201.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/az/a.r.s._43_1011.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/az/a.r.s._43_104.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ca/caccr_17014.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ca/rtc_17014.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ca/rtc_17041.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ca/rtc_17951.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/co/c.r.s._39_22_103.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/co/c.r.s._39_22_104.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ct/c.g.s._12_700.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ct/c.g.s._12_701.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ct/c.g.s._12_711.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/dc/d.c. code_47_1806_03.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/de/del. code_1102.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/fl/flconst_art__vii_sec__5.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/fl/flstat_196_031.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/fl/flstat_222_17.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/gareg_560_7_3__01.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_1.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ga/ocga_48_7_30.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/hi/hrs_235_51.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ia/iowa code_422_5.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/id/idaho code_63_3024.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/il/ilcs_5_1501_a_20.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/il/ilcs_5_201.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/il/ilcs_5_301.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/in/ind. code_6_3_2_1.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ks/k.s.a._79_32,110.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ky/krs_141_020.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/la/la. r.s._47_32.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/la/la. r.s._47_32_2022.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ma/maconst_art__xliv.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ma/mgl_62_1_f.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ma/mgl_62_4.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/md/md. code_10_101.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/md/md. code_10_105.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/md/md. code_10_106.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/me/36 m.r.s._5111.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/mi/mcl_206_51.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/mn/minn. stat._290_06.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/mo/rsmo_143_011.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ms/miss. code_27_7_5.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/mt/mca_15_30_2103.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nc/n.c.g.s._105_153_3.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nc/n.c.g.s._105_153_7.md +0 -0
- {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
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ne/neb. rev. stat._77_2715_03.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nh/rsa_77_1_2024.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nj/njac_18_35_5_2.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nj/njsa_54a_1_2.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nj/njsa_54a_2_1.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nm/nmsa_7_2_7.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/nv/nev. const._art__10,_/302/247_1.md" +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ny/nycrr_105_20.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ny/nycrr_132_18.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ny/nytax_601.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ny/nytax_605.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/oh/r.c._5747_02.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/oh/r.c._5747_24.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ok/68 o.s._2355.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/or/ors_316_037.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pa/p.s._7301.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pa/p.s._7302.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pa/pa. code_109_8.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1010_01.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1031_01.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1031_02.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1062_01.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/cri_1062_03.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_1020_02.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2021_01.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2022_01.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2022_01_2019.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2022_02.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2031_01.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_2032_01.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6020_03.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6020_10.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6020_10_2019.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6020_10_2025.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/pr/ley60_6070_55.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ri/r.i.g.l._44_30_1.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/sc/s.c. code_12_6_510.md +0 -0
- {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
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/tn/tenn. const._art__ii,_/302/247_28.md" +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/tx/txconst_art__viii_sec__24_a.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/tx/txtax_171_001.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_1.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_1411.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_24.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_32.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_6012.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_61.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_62.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_63.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_6688.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_865.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_911.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_933.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_937.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/us/irc_957.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/ut/utah code_59_10_104.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/va/va. code_58_1_302.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/va/va. code_58_1_320.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/va/va. code_58_1_342.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/vt/32 v.s.a._5822.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wa/rcw_82_87_020.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wa/rcw_82_87_040.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wa/waconst_art__vii_sec__1.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wi/wis. stat._71_06.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wv/w. va. code_11_21_4e.md +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/docs/wy/wyo. const._art__15,_/302/247_18.md" +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/fastmcp.json +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/pyproject.toml +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/check_conformance.sh +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/check_openapi_drift.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/check_tool_contract.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/check_version.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/release_notes.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/scripts/setup_repo_governance.sh +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/server.json +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/__init__.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/auth.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/client.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/config.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/disclaimers.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/errors.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/middleware.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/profiles.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/server.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/ssrf.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/tools/__init__.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/src/taxcode_mcp/tools/system.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/conftest.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/fake_network.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/fixtures/usc26_sample.xml +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_batch.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_check_version.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_client.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_code_mode_extra.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_config.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_conftest_auth_env.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_db.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_disclaimers.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_dockerfile.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_drift.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_e2e_live.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_errors.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_http_auth.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_layered.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_network_guard.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_otel_spans.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_profiles.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_protocol.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_release_notes.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_search_normalize.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_server.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_ssrf.py +0 -0
- {mcp_server_taxcode-0.8.0 → mcp_server_taxcode-1.0.0}/tests/test_version.py +0 -0
- {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.
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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).
|