Property tax assessment appeal deadlines by state
Missing a property-tax appeal window usually forfeits the appeal for that year, and the deadline is a different shape in each state, which is what a generic answer gets wrong. Three shapes appear here: a fixed calendar date that does not move (Nevada's January 15, Nebraska's June 30, New Hampshire's March 1); a count of days running from the day a specific notice was mailed, so the date differs per property (Georgia's 45 days from the assessment notice, Kansas's 30 days from the valuation notice, Maine's 185 days from commitment); and a filing window tied to when the review body sits (Iowa's April 2 to April 30, New York's fourth Tuesday of May in most towns, Vermont's day of the listers' grievance meeting). Texas combines two of them — May 15 or 30 days after the notice of appraised value, whichever is later. 14 states, each with the rule quoted verbatim from the statute or agency form it comes from, and a link to that page. Answers 'when do I have to file a property tax appeal in [state]', 'how many days after my assessment notice can I protest in [state]'.
The data
| State | Deadline type | Deadline rule | Notice the clock runs from | Filed with | Statute or source citation |
|---|---|---|---|---|---|
| Florida | rolling-from-notice | at any time during the taxable year on or before the 25th day following the mailing of notice by the property appraiser | notice by the property appraiser | the clerk of the value adjustment board of the county | 194.011 |
| Georgia | rolling-from-notice | within 45 days from the date the Assessment Notice was sent | Assessment Notice | County Board of Tax Assessors | PT-311A Appeal of Assessment Form |
| Idaho | fixed-date | on or before the end of the county’s normal business hours on the fourth Monday of June | county board of equalization | 63-501A | |
| Iowa | board-session | on or after April 2, to and including April 30, of the year of the assessment | board of review | 441.37 | |
| Kansas | rolling-from-notice | within 30 days subsequent to the date of mailing of the valuation notice | valuation notice | county appraiser | 79-1448 |
| Maine | rolling-from-notice | within 185 days from commitment | commitment | assessors | 841 |
| Montana | rolling-from-notice | must be filed within 30 days from the date on the notice of the department's determination | notice of the department's determination | county tax appeal board | 15-7-102 |
| Nebraska | fixed-date | on or before June 30 | county board of equalization | 77-1502 | |
| Nevada | fixed-date | not later than January 15 of the fiscal year in which the assessment was made | county board of equalization | 361.357 | |
| New Hampshire | fixed-date | by March 1, following the date of notice of tax under RSA 76:1-a, and not afterwards | selectmen or assessors | 76:16 | |
| New York | board-session | on or before the first day the board of assessment review meets to hear complaints | the assessor or the board of assessment review | RP-524-Ins (3/09) | |
| Rhode Island | fixed-date | on or before November 15 of each year, but not less than ninety (90) days after the first tax payment is due | the local office of tax assessment | 44-5-26 | |
| Texas | rolling-from-notice | May 15 or 30 days after the appraisal district mails the property owner the notice of appraised value, whichever is later | notice of appraised value | appraisal review board (ARB) | Form 50-132, Property Owner’s Notice of Protest |
| Vermont | board-session | on or before the day of the grievance meeting, file with them his or her objections in writing | listers | 32 V.S.A. § 4111 |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 14 sources this dataset was assembled from.
- leg.state.fl.ushttps://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0100-0199/0194/Sections/0194.011.html
- dor.georgia.govhttps://dor.georgia.gov/documents/pt-311a-appeal-assessment-form
- legislature.idaho.govhttps://legislature.idaho.gov/statutesrules/idstat/Title63/T63CH5/SECT63-501A/
- legis.iowa.govhttps://www.legis.iowa.gov/docs/code/441.37.pdf
- ksrevisor.govhttps://www.ksrevisor.gov/statutes/chapters/ch79/079_014_0048.html
- legislature.maine.govhttps://legislature.maine.gov/statutes/36/title36sec841.html
- mca.legmt.govhttps://mca.legmt.gov/bills/mca/title_0150/chapter_0070/part_0010/section_0020/0150-0070-0010-0020.html
- nebraskalegislature.govhttps://nebraskalegislature.gov/laws/statutes.php?statute=77-1502
- leg.state.nv.ushttps://www.leg.state.nv.us/nrs/nrs-361.html
- gencourt.state.nh.ushttps://www.gencourt.state.nh.us/rsa/html/V/76/76-16.htm
- tax.ny.govhttps://www.tax.ny.gov/pdf/current_forms/orpts/rp524ins.pdf
- webserver.rilegislature.govhttp://webserver.rilegislature.gov/Statutes/TITLE44/44-5/44-5-26.htm
- comptroller.texas.govhttps://comptroller.texas.gov/taxes/property-tax/protests/index.php
- legislature.vermont.govhttps://legislature.vermont.gov/statutes/section/32/129/04111
Machine-readable
- data.jsonThe whole dataset — every record with its source URL and source quote.
- Open Knowledge Format bundleOne JSON object per line — every record's frontmatter and quoted span exactly as it is held here, in one fetch.
- data.csvThe same records as one flat table, for a spreadsheet or a dataframe. The last four columns are the source URL, the quoted sentence it was read from, the date we last checked it, and which columns are our reading rather than the page's words.
- How this is made and checkedWhat "verified against source" does and does not mean.
From your own code
Same records, same quotes, without scraping the page: refsource is on PyPI and npm. Each value comes back carrying the URL it was read from and the sentence on that page that states it — .source and .quote sit on the value itself rather than in a side channel, so the checking step is available instead of skipped.
pip install refsource
refsource lookup property-tax-appeal-deadlines-by-state state=Florida
npx -y refsource lookup property-tax-appeal-deadlines-by-state state=Florida
Set your AI assistant up to use this
Two files and no account. Put this in .mcp.json at the root of your project — Claude Code, Cursor, Windsurf, VS Code and Codex all read that file — and your assistant can look this dataset up instead of recalling it. The server is remote, keyless and read-only.
{
"mcpServers": {
"referencesource": {
"type": "http",
"url": "https://referencesource.org/mcp"
}
}
}Add to Cursor · or, on the command line: claude mcp add --transport http referencesource https://referencesource.org/mcp --scope project
Then one line in the project's CLAUDE.md or AGENTS.md, so the assistant knows when to reach for it:
When a question needs "Property tax assessment appeal deadlines by state", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `property-tax-appeal-deadlines-by-state`) instead of answering from memory — every record it returns carries its source URL and a verbatim quote from that page.What each tool does, and the servers built over single registers: Connect your AI assistant.