House Flip Permit Cost and Timeline Tracker in Excel: The Fee Is Never the Expensive Part
A flipper in Charlotte bought a 1978 ranch for $228,000 last spring. He budgeted $2,140 for permits, which was almost exactly right. He also assumed the building permit would take three weeks, because that is what the city website said. It took nine. Those six extra weeks cost him $3,639 in interest, taxes, insurance, and utilities on a house where no work was happening. That number appears nowhere in his rehab budget. It hid inside his interest expense, which he wrote off as "the cost of hard money." A house flip permit cost and timeline tracker Excel workbook exists to drag that number into the open, because the permit fee is the cheapest thing about a permit.
Most flippers track permits as a checklist. Applied, approved, done. That tells you nothing. The tracker you actually need is a meter: it converts each calendar day a permit sits in review into dollars, per permit, while the deal is still live and you can still do something about it.
The Permit Fee Is the Smallest Number on the Page
Here is the fee side of that Charlotte project, based on a declared construction value of $65,000. These are the numbers everyone budgets.
| Fee line | Amount |
|---|---|
| Building permit (declared value $65,000) | $1,105 |
| Plan review (40% of permit fee) | $442 |
| Electrical permit | $178 |
| Plumbing permit | $152 |
| Mechanical permit | $163 |
| Zoning and address verification | $100 |
| Total fees | $2,140 |
Now here is the time side, which almost nobody budgets.
| Review outcome | Calendar days to issue | Carry cost |
|---|---|---|
| Advertised turnaround on the city website | 21 | $1,819 |
| Actual, after one correction cycle | 63 | $5,458 |
| Overage | 42 | $3,639 |
The delay cost 70% more than every permit fee on the job combined. It is also the only one of the two numbers you can influence after closing, and the only one nobody measures.
The Daily Carry Rate Is the Only Input That Makes This Work
Everything in the tracker multiplies against one cell. Build it first, on a tab called Carry.
| Cell | Input | Example value |
|---|---|---|
| B4 | Loan amount | $200,000 |
| B5 | Rate, interest only | 11.0% |
| B6 | Property tax, annual | $3,650 |
| B7 | Builder's risk and vacant policy, annual | $2,190 |
| B8 | Utilities, monthly | $195 |
| B9 | Lawn, security, dumpster standby, monthly | $120 |
| B10 | Daily carry rate | $86.63 |
=(B4*B5/365)+(B6/365)+(B7/365)+((B8+B9)*12/365)
The rule for what belongs in this cell: include only costs that accrue because the house is still yours today. Origination points, title, and commission are real money but they do not care how long you own the house, so they stay out. A partner preferred return that accrues daily belongs in. Get this wrong in the generous direction and you will talk yourself out of paying for the expedited review that would have saved you four times its price.
Build the Permit Register, One Row per Permit
Second tab. One row per permit, not one row per project. The whole point is to see which permit is holding the job hostage.
| ID | Type | Submitted | SLA | Target | Issued | Blocks work | Days over | Delay cost |
|---|---|---|---|---|---|---|---|---|
| P-01 | Building | 03/04 | 15 | 03/25 | 05/06 | Y | 42 | $3,639 |
| P-02 | Electrical | 03/18 | 5 | 03/25 | 03/27 | N | 2 | $0 |
| P-03 | Plumbing | 03/18 | 5 | 03/25 | 03/26 | N | 1 | $0 |
| P-04 | Mechanical | 03/18 | 5 | 03/25 | 03/26 | N | 1 | $0 |
| P-05 | Roofing | 04/22 | 3 | 04/25 | 04/28 | N | 3 | $0 |
The SLA column holds the jurisdiction's stated review time in business days, pulled from a lookup table so you are not retyping it: =VLOOKUP($C4,Jurisdictions!$A$4:$D$40,3,FALSE). The target issue date respects weekends and holidays: =WORKDAY(D4,E4,Holidays!$A$2:$A$30).
Days over target is calendar, not business, because interest does not take Saturdays off: =MAX(0,IF(G4="",TODAY(),G4)-F4). The IF(G4="") is the part that matters. A permit still in review keeps accruing against today, so the number grows while you watch it instead of sitting frozen until someone remembers to update the sheet.
Delay cost charges only permits on the critical path: =IF(H4="Y",I4*Carry!$B$10,0), and the project total is =SUM(J4:J40).
That single column changes behavior. On this job the three trade permits ran two days late each and cost exactly nothing, because the building permit was gating all of them anyway. Late is not the same as expensive. Only serial delay costs money, which is why the first question at the permit desk should be whether trade permits can be filed concurrently with the building permit rather than after issuance.
The other thing this register exposes: the building permit was submitted on March 4, after closing. In most jurisdictions a seller can sign an owner authorization letter that lets you submit during due diligence. Filing on February 12 would have burned 21 of those 42 days before the loan clock ever started. That is $1,819 recovered with one signature and a scanned PDF.
The Stall Flag
Add a status column that tells you when to pick up the phone:
=IF(G4<>"","ISSUED",IF(TODAY()>F4+7,"ESCALATE",IF(TODAY()>F4,"LATE","OK")))
ESCALATE means something specific. Email the plans examiner by name, copy the permit supervisor, and ask one answerable question: "Is application 25-04412 assigned to a reviewer, and what is the current position in queue?" A message that says "any update?" gets filed. A message that names the application and asks for queue position gets a reply, because it is easier to answer than to ignore.
The Correction Cycle Is the Real Killer
Plenty of jurisdictions send a resubmittal to the back of the queue rather than back to the same reviewer. That means a correction cycle does not cost you three days. It costs you a full review period, again.
Price it in a cell so it stops being abstract: =E4*1.4*Carry!$B$10. Fifteen business days converts to roughly 21 calendar days, times $86.63, is $1,819 per cycle. Two correction cycles on one permit is $3,639 spent before a single wall comes down.
Against that, paying your drafter or architect $400 to $900 for a pre-submittal completeness check is not an expense. It is a bet that pays 2 to 1 if it removes a single cycle, and the most common corrections are boring and preventable: missing energy compliance sheet, no structural detail for the beam you called out, egress dimensions not labeled on the plan.
Inspections Are a Second Timeline, and It Is Longer Than You Think
Getting the permit issued is half the calendar. The other half is waiting for inspectors, and it is the half that runs straight through your construction schedule.
| Inspection | Slot wait (bus. days) | First-pass fail rate | Re-inspection fee | Days lost on fail | Expected drag |
|---|---|---|---|---|---|
| Footing | 2 | 15% | $0 | 4 | 2.6 |
| Framing | 3 | 25% | $75 | 6 | 4.5 |
| Rough electrical | 3 | 30% | $75 | 6 | 4.8 |
| Rough plumbing | 3 | 22% | $75 | 6 | 4.3 |
| Insulation | 2 | 12% | $0 | 3 | 2.4 |
| Final and certificate of occupancy | 4 | 20% | $125 | 8 | 5.6 |
| Total | 24.2 |
Expected drag per inspection is =B4+(C4*E4), and the total is =SUM(F4:F9). Twenty-four business days is about 34 calendar days, or $2,945 at your carry rate. That is the schedule cost of a job where nothing goes wrong, where every inspection either passes or fails at a completely normal rate.
This is why the 90-day flip becomes a 124-day flip. Not incompetence, not a bad contractor. Thirty-four days of inspection drag that were never in the schedule to begin with. Put them in the Gantt as their own line items and your draw schedule stops lying to your lender.
The Expiration Clock Nobody Watches
Most jurisdictions void a permit if no approved inspection happens within 180 days. Flips stall for ordinary reasons: cabinets are eight weeks out, a draw is late, a subcontractor vanishes. Add a warning:
=IF(TODAY()-MAX($M$4:$M$40)>150,"PERMIT AT RISK, SCHEDULE ANY INSPECTION","OK")
Reinstating a dead permit means new fees and, worse, review under whatever code cycle is current at reinstatement. A permit issued under the 2018 code and revived in a 2024 code jurisdiction can pull in requirements your plans never showed.
Underwrite the Permit Before You Write the Offer
The tracker's real output is not a report at the end of the flip. It is a number you subtract from your next offer. Same house, same $65,000 scope, three jurisdiction profiles:
| Jurisdiction profile | Days to issue | Carry cost | Fees | Total permit cost |
|---|---|---|---|---|
| Over the counter, like-for-like, no structural work | 1 | $87 | $1,340 | $1,427 |
| Standard plan review, 15 business days, one correction likely | 45 | $3,898 | $2,140 | $6,038 |
| Historic district or design review board | 95 | $8,230 | $3,600 | $11,830 |
A $10,403 spread on identical work. That is larger than the contingency line most flippers carry, and it is knowable before you sign anything.
So put it in the offer math. The standard 70% rule, =(ARV*0.7)-Rehab, quietly assumes permits are free. Make them explicit: =(ARV*0.7)-Rehab-PermitFees-PermitCarry. On a $385,000 ARV with $65,000 in rehab, the lazy version gives you a maximum offer of $204,500. In the historic-district jurisdiction the honest version gives you $192,670, and you can defend the difference line by line to the listing agent.
Six Questions Before You Offer
- Call the permit desk and ask for the current plan review turnaround in business days. Then ask when that number was last true. The website figure is often a year stale.
- Ask whether a resubmittal returns to the same reviewer or re-enters the queue. This single answer sets the price of a correction cycle.
- Ask whether trade permits can be issued before the building permit. If yes, file everything on day one.
- Ask whether your scope triggers plan review at all. Like-for-like replacement frequently does not, and that is the difference between one day and 45.
- Search the address in the permit portal. Expired permits and unpermitted additions transfer to you at closing, along with the cost of legalizing them.
- Ask what the current code requires that a 1978 house does not have. Then price the tail below.
| Code compliance triggered by pulling a permit | Typical cost |
|---|---|
| Hardwired interconnected smoke and CO alarms | $400 to $900 |
| AFCI and GFCI protection, panel dependent | $600 to $1,500 |
| Egress window for a finished basement bedroom | $3,500 to $6,500 |
| Stair rail and guard geometry correction | $350 to $1,200 |
| Service panel replacement if the existing one fails | $2,200 to $4,000 |
Somebody is now thinking the obvious thought: skip the permit. It works right up until the appraiser measures a bedroom that is not on the tax card, or the buyer's lender asks for a certificate of occupancy, or the buyer's inspector photographs the panel. Then you are renegotiating from behind, on a house you cannot legally market as advertised, with a closing date you have already committed to. The unpermitted path does not remove the cost. It moves the cost to the worst possible moment and adds leverage to the other side.
What to Do Before Your Next Offer
Spend twenty minutes on the phone with the permit desk of the jurisdiction you are about to buy in. Write the answers into a Jurisdictions tab as an SLA in business days and a resubmittal policy. Compute your daily carry rate to the cent. Then subtract permit fees plus permit carry from your maximum offer and see whether the deal survives.
If it does not survive, the deal was already dead. You just found out while it was still someone else's problem, which is worth more than any formula in this article.
If you would rather not rebuild this workbook from scratch on every deal, the SheetCraft Flip and BRRRR Calculator already carries the pieces this article assembles: a daily carry rate that feeds every holding-cost line, a timeline module where permit and inspection days flow straight into interest and taxes, and a maximum offer calculation that treats permit time as an acquisition cost rather than an afterthought. Plug in the jurisdiction turnaround you just got over the phone, and the model tells you what that city is worth to you in offer dollars.
Related template
BRRRR Deal Calculator
Model the full Buy-Rehab-Rent-Refinance-Repeat cycle. See exactly how much capital comes back at refinance — before you commit a dollar.
Get the Template — $49