Yes, most Oakland County cities and townships require a building permit for a full roof replacement, but there is no single countywide fee. Oakland County itself does not issue roofing permits; each of its cities, villages, and townships runs its own building department with its own cost. In the 27 Oakland County communities we serve, confirmed fees range from $95 in Oxford Township's village to over $500 in Rochester Hills and Orion Township, and a handful require no permit at all for a standard reshingle.
I'm Aaron Scott, a licensed Michigan residential builder and the owner of Roofing Army. We pull roofing permits across Oakland County every week, and this guide compiles the real, verified fee or status for every community we work in, in one place, so you are not stuck guessing based on what a neighboring city charges.
Does Oakland County Require a Roofing Permit?
Michigan's Stille-DeRossett-Hale Single State Construction Code Act delegates permit enforcement to the local building department, not the county or the state. Oakland County has 61 cities, villages, and townships, and each one sets its own rule, its own fee schedule, and its own inspection process for a roof replacement. That is why Rochester and Rochester Hills, two cities that share a border and part of a name, run completely different fee structures, and why Oxford Township requires no permit at all while the Village of Oxford a few blocks away does. You cannot assume anything about your permit cost based on a neighboring town's fee, or even based on what a neighbor on your own street paid last year if their roof fell under a different jurisdiction.

How Much Does a Roofing Permit Cost in Each Oakland County City We Serve?
We confirm the exact fee for every address directly with the local building department before quoting a job, and the cost is always itemized in your written estimate, never added later. Generic online permit estimators give ranges that frequently conflict with each other and with the actual published fee schedule, so rather than repeat an estimate we cannot stand behind, here is what each jurisdiction actually charges or requires, current as of this writing:
| City, Village, or Township | Permit Required? | Typical Fee |
|---|---|---|
| Oxford Township | No | N/A |
| Village of Oxford | Yes | $95 under $10k; ~$130 plus $500 refundable bond above $10k |
| Village of Lake Orion | No (standard reshingle, up to 2 layers) | N/A; permit needed only for deck or structural work |
| Orion Township | Yes | ~$535 on a $15,000 job (valuation-based) |
| Village of Clarkston | No (standard reshingle) | N/A; permit needed for deck/rafter work; HDC review separate |
| Independence Township | Yes | Scales with project cost; no flat fee published |
| Leonard | Yes | ~$310 on a $15,000 job, plus $10 per inspection travel fee |
| Addison Township | Yes | $345 total ($95 in fees plus $250 refundable bond) |
| City of Rochester | Yes, once 25%+ of the roof is replaced | $140 flat ($100 permit + $40 admin) |
| Rochester Hills | Yes | ~$530 on a $15,000 job (valuation-based) |
| Troy | Yes | ~$170 on a $15,000 job (1% of cost + $20) |
| Auburn Hills | Yes | ~$221 on a $12,000 job (valuation-based) |
| Novi | Yes | $40 + $60 for the first $1k + $4.50 per additional $1k (~$163 on $15,000) |
| Hazel Park | Yes | $75 for the first $1k + $10 per additional $1k (~$215 on $15,000), plus $75/inspection |
| Madison Heights | Yes | $30 + $75 for the first $1k + $6.30 per additional $1k (~$193 on $15,000) |
| Pleasant Ridge | Yes | $75 minimum, scales with project value |
| Ferndale | Yes | Not published; confirmed with the city before every job |
| Royal Oak | Yes | Not published; confirmed with the city before every job |
| Berkley | Yes | Not published; two inspections required (open-roof and final) |
| Oak Park | Yes | Not published |
| Huntington Woods | Yes | Not published |
| Clawson | Yes | Not published |
| Southfield | Yes | Not published |
| Birmingham | Yes | Not published |
| Bloomfield Township | Yes | Not published |
| Bloomfield Hills | Yes | Not published |
| Brandon Township | Yes | Not published |
| Oakland Township | Yes | Not published |
| Ortonville | Yes | Not published |
| Lake Angelus | Yes | Not published |
Note: "Not published" means the local building department has not posted a flat dollar fee schedule we can independently verify, not that no permit is required. We still pull the permit, confirm the real number with the department, and include it in your written estimate before work starts.
Which Oakland County Communities Split Into a Village and a Township?
Four of the communities above are actually two separate jurisdictions sharing one name on a map, and this is where homeowner research goes sideways most often:
- Oxford. Homes around M-24, Burdick Street, and the downtown core are in the Village of Oxford, which requires a permit. Everything outside is Oxford Township, which does not.
- Lake Orion. The village covers the downtown area around Broadway Street and the lake, where a standard reshingle of up to two layers needs no permit. Most surrounding neighborhoods are in Orion Township, where every roof replacement does, regardless of scope.
- Clarkston. The village is the small downtown core around Main Street, where standard re-shingling is exempt. Most Clarkston-area homes are actually in Independence Township, which requires a permit for all roofing work.
- Leonard. An unincorporated village sitting inside Addison Township, with its own separate building department and fee schedule from the township that surrounds it.
We know exactly which jurisdiction covers your specific address in each of these communities and handle the correct paperwork either way, so this is never something you have to sort out yourself.

Novi's Roofing Permit Fee, Now Confirmed
Novi is one of the larger cities in our Oakland County footprint, and until recently we could not independently verify a specific published fee for a residential roofing permit there. We have since confirmed it directly: Novi's Community Development Department charges a $40 application fee for single-family alterations and repairs, plus a permit fee of $60 for the first $1,000 of job value and $4.50 for each additional $1,000, filed through the city's BS&A online portal. On a typical $15,000 reroof, that works out to roughly $163 total. The city has referenced a newer fee schedule effective July 1, 2026, so we confirm the current amount with the Building Division at 45175 Ten Mile Road before every Novi job, but this gives homeowners a real number to plan around instead of an unconfirmed estimate.
Does a Historic District Add Another Approval Step?
In a few Oakland County communities, a roof replacement needs more than a building permit. Clarkston's Village Historic District requires Historic District Commission approval for exterior changes before a reroof can proceed, regardless of whether the standard permit itself is required. Pleasant Ridge sits almost entirely inside a federally designated historic district with its own design standards, and Birmingham has design review requirements for exterior work in some areas. We cover the fees, meeting schedules, and penalties for historic district review across our service area in detail in our guide to roofing a historic Michigan home, rather than repeat that research here.

What Happens If You Skip a Required Permit?
It is a real financial risk, not a technicality. Leonard doubles the permit fee for work started without one first. Rochester adds a $100 stop-work fee plus 150 percent of the standard permit fee, close to $210 on top of the job itself. Beyond the immediate penalty, an unpermitted roof can surface later during a home sale, a mortgage refinance, or an insurance claim, when an inspector finds no permit on file for a roof that is clearly newer than the house. For the fuller picture across our whole service area, including jurisdictions outside Oakland County, see our Southeast Michigan roof permit guide.
Who Handles the Permit When Roofing Army Replaces Your Roof?
Permit handling is part of the job, not an add-on. We confirm which building department covers your specific address, file the application, pay the fee, and schedule every required inspection, including the open-roof inspections some cities like Berkley require before the final. The exact cost is built into your written estimate up front, never added as a surprise after the crew is already on your roof. A Roofing Army project manager is on site for every job, we never take a deposit, and every installation follows the Michigan Residential Code's two-layer limit and ice-and-water-shield requirements regardless of what a specific jurisdiction's permit process looks like.
Check Your City's Permit Rules Before You Get a Quote
We serve all 27 of these Oakland County communities from our Oakland County service area, with offices anchored in Oxford, Rochester Hills, and Ferndale. See the local permit detail, verified housing stock, and real completed projects for individual cities including Clarkston, Leonard, and Novi, or browse real priced projects across the county in our job gallery. For the full picture of what a roof actually costs beyond the permit, start with our Michigan roof replacement cost guide, or schedule a free inspection on our roof replacement page and we will confirm your exact permit requirement before you ever see a quote.
Frequently Asked Questions
Does every city in Oakland County require a roofing permit?
No. Oxford Township, a standard reshingle in the Village of Lake Orion, and a standard reshingle in the Village of Clarkston do not require a permit. Every other city, village, and township we serve in Oakland County does require one for a full roof replacement. Because the rule is set locally, not countywide, you have to check the specific jurisdiction your address falls under.
How much does a roof permit cost in Oakland County?
It depends entirely on the city or township. Confirmed fees in our service area range from $95 in the Village of Oxford on a job under $10,000 to roughly $530 to $535 in Rochester Hills and Orion Township, where fees scale with the project's value. Several communities, including Ferndale, Royal Oak, and Southfield, have not published a flat fee schedule, so we confirm the exact number with the building department before quoting any job there.
Is Oxford Township different from the Village of Oxford for roofing permits?
Yes. Oxford Township does not require a building permit for a residential roof replacement. The Village of Oxford, covering the downtown core around M-24 and Burdick Street, does, with a typical fee of $95 for jobs under $10,000 and around $130 plus a $500 refundable bond above that. We confirm which jurisdiction covers your specific address before pulling any permit.
Does Novi require a permit for a roof replacement, and how much does it cost?
Yes. Novi requires a building permit for every roof replacement, filed through the city's BS&A online portal. The confirmed fee is a $40 application charge plus $60 for the first $1,000 of job value and $4.50 for each additional $1,000, which works out to roughly $163 on a typical $15,000 reroof. We confirm the current amount with Novi's Building Division before every job.
What happens if I replace my roof in Oakland County without a required permit?
You risk a real penalty. Leonard doubles the permit fee for work started without one, and Rochester adds a $100 stop-work fee plus 150 percent of the standard permit cost. An unpermitted roof can also create problems later during a home sale, refinance, or insurance claim if an inspector finds no permit on file. We handle every permit up front on every job so this never becomes an issue for our customers.


