Readable version: State income tax reciprocity agreements, explained state by state. All site datasets: open data · data roundups.
What this dataset covers
Whether a state taxes wages, which states it has a reciprocal agreement with, the withholding exemption form a cross-border employee files, whether nonresidents are taxed and whether residents get a credit for tax paid elsewhere.
Most often unconfirmed in this release: convenience (37), threshold (29), credit (23), nonresident_tax (16). 14 jurisdictions have their own page on the site (DC, IL, IN, KY, MD, MI, MN, ND, NJ, OH, PA, VA, WI, WV); their rows also carry the explanatory text and all sources shown there.
Field dictionary
| Field | Meaning | Type | In this release |
|---|---|---|---|
jurisdiction_code | Two-letter postal code of the state or DC. | string | 51 of 51 filled |
jurisdiction | State name (or District of Columbia). | string | 51 of 51 filled |
agency | State revenue agency. Present only for jurisdictions that have their own page on the site. | string | 14 of 51 filled |
income_tax | Whether the state taxes wages. | boolean | 51 of 51 filled: true (42), false (9) |
partners | Lower-case codes of states it has a reciprocal agreement with. | array of strings | 15 of 51 filled |
partners_wording | The official source's own words on its agreements. Present only for jurisdictions that have their own page on the site. | string (free text) | 13 of 51 filled |
covers | What income the agreements cover. Present only for jurisdictions that have their own page on the site. | string (free text) | 13 of 51 filled |
conditions | Conditions on an agreement: with (partner code or all), text. | array of objects | 9 of 51 filled |
exemption_form.code | Form number an employee files to stop withholding. | string | 17 of 51 filled |
exemption_form.title | Name of that form. Present only for jurisdictions that have their own page on the site. | string | 14 of 51 filled |
exemption_form.for | Codes of states whose residents may use it. | array of strings | 17 of 51 filled |
exemption_form.use | Who uses the form, in plain English. Present only for jurisdictions that have their own page on the site. | string (free text) | 14 of 51 filled |
exemption_form.wording | The official source's own words. Present only for jurisdictions that have their own page on the site. | string (free text) | 14 of 51 filled |
nonresident_tax | Whether the state taxes nonresidents on wages earned there. | boolean | 35 of 51 filled: true (25), false (10) |
nonresident_wording | The official source's own words. Present only for jurisdictions that have their own page on the site. | string (free text) | 13 of 51 filled |
credit | Whether residents get a credit for tax paid to another state. | boolean | 19 of 51 filled: true (19) |
credit_text | Detail on that credit. Present only for jurisdictions that have their own page on the site. | string (free text) | 12 of 51 filled |
convenience.text | "Convenience of the employer" rule, where the state has one. Present only for jurisdictions that have their own page on the site. | string (free text) | 1 of 51 filled |
threshold.text | Day or income threshold before nonresidents owe tax. Present only for jurisdictions that have their own page on the site. | string (free text) | 4 of 51 filled |
notes | Other points from the official source. Present only for jurisdictions that have their own page on the site. | array of strings | 9 of 51 filled |
unconfirmed | Fields the official sources read did not confirm for this row. Those values are null. | array of strings | 40 of 51 rows list at least one |
source_urls | Links to the official sources (all of them for jurisdictions with their own page; the main linked source for the others). | array of strings | 51 of 51 filled |
checked | When the row's sources were opened (YYYY-MM or YYYY-MM-DD). A row with no official source carries the date of the check that found none. | date (YYYY-MM-DD) | 51 of 51 filled |
page_url | The page on mcc-solutionsnj.com that explains this row. | string (URL) | 51 of 51 filled |
Preview: the first 10 rows
jurisdiction | income_tax | partners | exemption_form.code | nonresident_tax | credit | checked |
|---|---|---|---|---|---|---|
| Alabama | true | null | null | null | 2026-11 | |
| Alaska | false | null | false | null | 2026-11 | |
| Arizona | true | WEC | true | null | 2026-11 | |
| Arkansas | true | null | null | null | 2026-11 | |
| California | true | null | true | true | 2026-11 | |
| Colorado | true | null | null | null | 2026-11 | |
| Connecticut | true | null | true | null | 2026-11 | |
| Delaware | true | null | true | null | 2026-11 | |
| District of Columbia | true | D-4A | false | true | 2026-11 | |
| Florida | false | null | false | null | 2026-11 |
7 of 24 columns shown; the downloads have every column in full.
Download formats
The CSV has one row per jurisdiction and one column per field above, UTF-8, comma-separated. Nested fields use dotted names (exemption_form.code); lists are joined with | , and lists of objects become key: value; key: value items. The JSON keeps types (numbers, true/false, null, arrays) and includes this dictionary, the license and the checked date.
License
License: free to copy, share and adapt, including commercially, under the Creative Commons Attribution 4.0 International (CC BY 4.0) license.
Attribution required: credit "MCC Solutions" and link to this dataset page (https://mcc-solutionsnj.com/data/reciprocity). The cite box below has text ready to paste.
Accuracy
Accuracy: every fact comes from an official government page as it read when checked (November 2026 for this release). Anything those pages did not confirm is null and named in the row's unconfirmed list; a null that is not on the list means the point does not apply or the source states none. This is general information, not legal or tax advice. We are not lawyers, and MCC Solutions is not a law firm.
Cite this data
Free to reuse under CC BY 4.0: credit MCC Solutions and link to https://mcc-solutionsnj.com/data/reciprocity.
Changelog
- November 2026: sources checked for all 51 jurisdictions; this release has 24 fields, 284 confirmed values and 105 unconfirmed items.
- Downloads are generated from the data files on each request, so a corrected file shows up in the CSV and JSON straight away; a new entry is added here when the sources are checked again.