Michigan Porch

Open data

Michigan data downloads

These are the datasets behind Michigan Porch's calculators, as free JSON files. Use them in apps, spreadsheets, articles, or research. Each file names its official source and its vintage — the report and year the numbers come from — inside the file itself. The license and the credit line ride along too, so a copy that travels still says where it came from.

File format

One JSON object per dataset

The rows sit under the data key. The rest of the object describes the rows: source,vintage,lastUpdated,fields,rowCount,license,attribution, andciteAs. The endpoints are versioned under/data/v1/ and allow cross-origin requests, so a script or page on another site can fetch them directly.

Dataset

Michigan property tax millage rates

Total property tax millage rates for Michigan cities and townships, by school district. One mill is $1 of tax per $1,000 of Taxable Value. The rows are parsed from the Michigan Treasury 2025 Total Property Tax Rates report.

One row per city or township and school-district combination, covering all 83 counties. This file powers the Michigan Homebuyer Tax Calculator.

Rows
3,574
Vintage
2025 Michigan Treasury Total Property Tax Rates
Last updated
2026-05-28
Download millage-rates.jsonJSON · CC BY 4.0 · no key, no signup

License and citation

Licensed CC BY 4.0. Reuse is welcome, including commercial reuse. Keep this credit line with the data:

Data: Michigan Porch (michiganporch.com) — CC BY 4.0

For a formal reference, cite the file like this:

Michigan Porch, "Michigan property tax millage rates" (2025 Michigan Treasury Total Property Tax Rates). https://michiganporch.com/data/v1/millage-rates.json. CC BY 4.0. Underlying figures: Michigan Treasury 2025 Total Property Tax Rates report.

Field dictionary

FieldTypeMeaning
countystringMichigan county name.
municipalitystringLocal taxing unit name as printed in the Treasury report, for example "Alcona Twp".
unitCodestringSix-digit Michigan Treasury code for the local unit of government.
schoolDistrictstringSchool district name as printed in the Treasury report (uppercase, sometimes shortened). Some entries carry a tax-area or village suffix.
preMillagenumberTotal millage, in mills, for a home with a Principal Residence Exemption (PRE). Does not include ad valorem special-assessment mills.
nonHomesteadMillagenumberTotal millage, in mills, for non-homestead property — property without a PRE, such as rentals and second homes. Does not include ad valorem special-assessment mills.
preMillageWithSpecialnumberPRE millage including any ad valorem special-assessment mills the report lists for the unit.
nonHomesteadMillageWithSpecialnumberNon-homestead millage including any ad valorem special-assessment mills the report lists for the unit.
commercialPersonalMillagenumberTotal millage the report lists for commercial personal property, in mills.
industrialPersonalMillagenumberTotal millage the report lists for industrial personal property, in mills.
displayNamestringReader-friendly unit name used on Michigan Porch, for example "Alcona Township".
typestringLocal unit type: "city", "township", or "village".
slugstringMichigan Porch place identifier. The matching page is michiganporch.com/places/{slug}/.

Dataset

Michigan city income tax rates

The 24 Michigan cities that levy a city income tax, with resident and nonresident rates as decimals. Most cities use 1% for residents and 0.5% for nonresidents; Detroit, Grand Rapids, Highland Park, and Saginaw use higher rates.

One row per taxing city. This file powers the city income tax checker.

Rows
24
Vintage
Michigan Treasury city-income-tax list and 2025 taxpayer manual
Last updated
2026-05-29
Download city-income-tax.jsonJSON · CC BY 4.0 · no key, no signup

License and citation

Licensed CC BY 4.0. Reuse is welcome, including commercial reuse. Keep this credit line with the data:

Data: Michigan Porch (michiganporch.com) — CC BY 4.0

For a formal reference, cite the file like this:

Michigan Porch, "Michigan city income tax rates" (Michigan Treasury city-income-tax list and 2025 taxpayer manual). https://michiganporch.com/data/v1/city-income-tax.json. CC BY 4.0. Underlying figures: Michigan Treasury list of cities that impose an income tax.

Field dictionary

FieldTypeMeaning
citystringCity name. City income tax applies inside the legal city boundary, not the wider mailing area that shares the city's name.
residentRatenumberRate for people who live in the city, as a decimal (0.01 = 1%).
nonresidentRatenumberRate for people who live elsewhere but earn wages inside the city, as a decimal (0.005 = 0.5%). It applies to the in-city wages.

Dataset

Michigan recurring deadlines

The recurring dates that matter to Michigan homeowners, homebuyers, movers, and the outdoors crowd — tax bills, PRE deadlines, the March Board of Review, license years, and season opens. The dates are the same for everyone statewide; each row links the page that explains it.

One row per recurring statewide date. This file powers the homepage calendar and the .ics feed.

Rows
18
Vintage
Michigan statutes and 2026 agency pages, as cited per row
Last updated
2026-07-08
Download deadlines.jsonJSON · CC BY 4.0 · no key, no signup

License and citation

Licensed CC BY 4.0. Reuse is welcome, including commercial reuse. Keep this credit line with the data:

Data: Michigan Porch (michiganporch.com) — CC BY 4.0

For a formal reference, cite the file like this:

Michigan Porch, "Michigan recurring deadlines" (Michigan statutes and 2026 agency pages, as cited per row). https://michiganporch.com/data/v1/deadlines.json. CC BY 4.0. Underlying figures: Official sources linked per row (Michigan Treasury, DNR, legislature.mi.gov).

Field dictionary

FieldTypeMeaning
slugstringStable event identifier.
labelstringEvent name.
monthnumberMonth of the year, 1–12.
daynumberDay of month for fixed statutory or season dates. Absent when the date shifts year to year.
windowstringDisplay text for events without a fixed day, for example "The last Saturday in April".
audiencestringWho the date matters to: "buyer", "owner", "mover", or "outdoors".
blurbstringOne or two plain sentences on what the date means.
urlstringThe michiganporch.com page that explains the date.
officialLabelstringName of the official source, when one is linked.
officialUrlstringOfficial source URL, when one is linked.

Dataset

Michigan nearby property-tax pairs

Nearby places with the largest primary-home rate gaps inside a shared school district, ranked. Built by crossing the millage table with Census place centers; it is a proximity screen, not a municipal-border dataset.

One row per nearby pair, ranked by the rate gap. This file powers the nearby property-tax gap ranking.

Rows
50
Vintage
2025 Michigan Treasury Total Property Tax Rates
Last updated
2026-07-31
Download boundary-pairs.jsonJSON · CC BY 4.0 · no key, no signup

License and citation

Licensed CC BY 4.0. Reuse is welcome, including commercial reuse. Keep this credit line with the data:

Data: Michigan Porch (michiganporch.com) — CC BY 4.0

For a formal reference, cite the file like this:

Michigan Porch, "Michigan nearby property-tax pairs" (2025 Michigan Treasury Total Property Tax Rates). https://michiganporch.com/data/v1/boundary-pairs.json. CC BY 4.0. Underlying figures: Michigan Treasury 2025 Total Property Tax Rates report + U.S. Census place centroids.

Field dictionary

FieldTypeMeaning
histringObject: the higher-rate place — slug, name, county, type, pre (mills), nonHomestead (mills), population.
lostringObject: the lower-rate place, same shape as hi.
sharedDistrictstringThe school district both places levy inside — the control that isolates the municipal difference.
deltaMillsnumberPRE millage gap between the two places inside the shared district.
deltaDollars300knumberThe gap in dollars per year on a $300,000 purchase (Taxable Value $150,000).
distanceKmnumberDistance between the two place centers, kilometers.
combinedPopulationnumberBoth places' Census population estimates, summed.

License

License and attribution

Both files are licensedCreative Commons Attribution 4.0 (CC BY 4.0). You can copy, reshape, and republish the data — in a product, a story, a model, or a class project — as long as the credit line stays with it.

The State of Michigan publishes the underlying figures. The license covers Michigan Porch's cleaned, combined, and documented files. When a number is load-bearing for your work, check it against the official source linked on each dataset — that source decides.

Sources and review

The official sources

Michigan Porch parses and rechecks official state publications. These are the documents behind the two files.

Last reviewed
July 31, 2026

Use this carefully: These files are planning aids. The local assessor, city treasurer, or Michigan Treasury controls the official number for a specific parcel, taxpayer, or year.

Rules, rates, forms, office practices, and local facts can change. For a legal, tax, insurance, safety, or filing decision, confirm the current details with the responsible office or a qualified Michigan professional.

Next steps

Where to next

The tools these files power, plus the rest of the toolbox.

Page feedback

See something wrong or unclear?

Send a note about this page. The page address will be included automatically.

Send a note