A solar permit fee can look like a state question. It is usually an address question. The state may set a cap or calculation method. The city, county, fire district, or another authority still applies the rule to a defined project.
Direct answer. There is no safe single solar permit fee for most states. Start with the project address and identify the authority having jurisdiction. Then check its current building, electrical, fire, plan review, inspection, platform, and payment charges. California and Colorado publish state fee limits. Oregon publishes a structural permit fee method. The final amount still needs a project lookup.
This guide gives estimators a routing table for all 50 states and Washington, DC. It does not invent state averages. Every project amount stays unresolved until the address, system type, and live fee source are confirmed.
If you need design-service pricing instead, use our solar plan set pricing guide. Government fees and private design charges belong on separate budget lines.
Why do solar permit fee averages fail?
A statewide average hides the fields that control the invoice. Two projects in the same state can use different authorities, fee schedules, and review paths.
The address resolves the authority having jurisdiction. The project scope then determines which schedules apply. A basic residential rooftop system may follow one route. Storage, a service upgrade, a canopy, or a commercial system may add another review.
Project valuation also creates confusion. Some authorities calculate fees from declared valuation. The schedule may include or exclude equipment, labor, racking, or electrical work. A copied amount is useless unless its valuation basis matches the new project.
The practical rule is simple:
A fee is usable only when the source, jurisdiction, project class, calculation basis, and observation date match the job.
That rule also protects a sales quote from an old PDF, a neighboring city, or a search snippet.
Which charges belong in a solar permit budget?
The phrase “permit fee” often combines several payees. Separate them before asking for a total.
| Fee layer | Possible payee | What the charge may cover | Best source |
|---|---|---|---|
| Building permit | City, county, or state office | Structural and building-code review | Current building fee schedule |
| Electrical permit | Electrical authority or state office | Electrical review and inspection | Current electrical fee schedule |
| Fire review | Fire district or fire marshal | Access, labeling, storage, and fire-code review | Current fire prevention fee schedule |
| Plan review | Reviewing department | Document review before permit issuance | Fee schedule or project invoice |
| Inspection | AHJ or contracted inspector | Required site inspections | Permit portal or fee schedule |
| Automation platform | SolarAPP+ or another platform | Automated application processing | Platform checkout and current fee page |
| Payment processing | Portal payment provider | Card or electronic payment handling | Checkout screen |
| Utility interconnection | Serving utility | Application, study, metering, or grid work | Utility tariff and application portal |
The US Department of Energy treats permitting and interconnection as solar soft costs. Its definition also includes design, siting, installation, and financing work. That broader definition does not make every cost a government fee. See the DOE solar soft-cost overview, accessed September 26, 2026.
Private plan preparation is another separate line. Our permit plan-set contents guide explains what that work may include.
How should an estimator find the current fee?
Use this sequence for each address. It takes longer than copying a state average. It produces a number that can survive review.
- Freeze the address. Record the street address, parcel, city, county, and state.
- Resolve the permit authority. Confirm which office issues the building and electrical permits.
- Classify the project. Record residential or commercial use, system size, mounting type, and storage scope.
- List every review owner. Check building, electrical, fire, planning, zoning, and utility paths.
- Open the live source. Prefer an official fee schedule, ordinance, portal calculator, or written AHJ reply.
- Read the calculation basis. Note flat fees, valuation inputs, capacity bands, minimums, and review percentages.
- Separate platform charges. Do not blend SolarAPP+ or card fees into the AHJ amount.
- Save the evidence. Keep the URL, file, page number, access date, and any written confirmation.
- Mark the quote date. State when the amount was checked and when it must be checked again.
The solar permit submission guide covers the next step after this lookup.
Solar permit fees by state: the routing matrix
This matrix answers one question: where should an estimator start? It does not claim that an unlisted state rule does not exist. “Local AHJ path” means this guide does not publish a verified statewide project amount.
California, Colorado, and Oregon receive separate treatment because the official sources reviewed for this article publish a fee limit or method. Every row still requires an address-level lookup.
| State or district. | Fee-control path in this guide. | Official starting point. | Project question. | Project amount. |
|---|---|---|---|---|
| Alabama | Local AHJ path | Project city or county permit office | Which office issues building and electrical permits? | Unresolved until project lookup. |
| Alaska | Local AHJ path | Project municipality or applicable state office | Is the site inside a municipal permit boundary? | Unresolved until project lookup. |
| Arizona | Local AHJ path | Project city or county permit office | Does the AHJ use SolarAPP+ for this system? | Unresolved until project lookup. |
| Arkansas | Local AHJ path | Project city or county permit office | Are electrical and building charges collected together? | Unresolved until project lookup. |
| California | Verified state fee ceiling with local exception process. | Government Code Section 66015 and the local AHJ schedule. | Is the project residential or commercial, and has the AHJ adopted a supported exception? | Unresolved until project lookup. |
| Colorado | Verified state aggregate limit with stated exceptions. | Colorado Revised Statutes Section 24-48.5-113 and the local AHJ schedule. | Is the system below 2 MW direct current, and did the nonresidential AHJ document higher actual cost? | Unresolved until project lookup. |
| Connecticut | Local AHJ path | Project municipality permit office | Which local schedule applies to building and electrical work? | Unresolved until project lookup. |
| Delaware | Local AHJ path | Project city, county, or state permit office | Which authority owns the permit at this address? | Unresolved until project lookup. |
| District of Columbia | District permit path | Current District permit portal and fee schedule | Which permit types and reviews does the scope trigger? | Unresolved until project lookup. |
| Florida | Local AHJ path | Project city or county building department | Do local building, electrical, and fire schedules apply? | Unresolved until project lookup. |
| Georgia | Local AHJ path | Project city or county permit office | Does the quoted fee include plan review and inspection? | Unresolved until project lookup. |
| Hawaii | County permit path | Project county permit office | Which county portal and permit class apply? | Unresolved until project lookup. |
| Idaho | Local or state path | Project AHJ and applicable state permit office | Who owns the electrical permit for this address? | Unresolved until project lookup. |
| Illinois | Local AHJ path | Project municipality or county permit office | Are building and electrical permits issued by one office? | Unresolved until project lookup. |
| Indiana | Local AHJ path | Project city or county permit office | Does the schedule use valuation, capacity, or a flat class? | Unresolved until project lookup. |
| Iowa | Local AHJ path | Project city or county permit office | Which inspection charges sit outside the permit fee? | Unresolved until project lookup. |
| Kansas | Local AHJ path | Project city or county permit office | Does the address require separate trade permits? | Unresolved until project lookup. |
| Kentucky | Local or state path | Project local office and applicable state building office | Which authority reviews this project class? | Unresolved until project lookup. |
| Louisiana | Local AHJ path | Project parish or municipal permit office | Which parish or city schedule controls the work? | Unresolved until project lookup. |
| Maine | Local AHJ path | Project municipality permit office | Does the town issue both building and electrical permits? | Unresolved until project lookup. |
| Maryland | Local AHJ path | Project county or city permit office | Which local permit and review fees apply? | Unresolved until project lookup. |
| Massachusetts | Local AHJ path | Project municipality permit office | Are wiring and building permits priced separately? | Unresolved until project lookup. |
| Michigan | Local AHJ path | Project enforcing agency | Which agency owns building and electrical enforcement? | Unresolved until project lookup. |
| Minnesota | Local AHJ path | Project municipality and electrical authority | Does a separate electrical inspection fee apply? | Unresolved until project lookup. |
| Mississippi | Local AHJ path | Project city or county permit office | Which department reviews structural and electrical scope? | Unresolved until project lookup. |
| Missouri | Local AHJ path | Project city or county permit office | Does each trade use a separate fee schedule? | Unresolved until project lookup. |
| Montana | Local or state path | Project AHJ and applicable state permit office | Is the site under local or state enforcement? | Unresolved until project lookup. |
| Nebraska | Local AHJ path | Project city or county permit office | Which permit class covers rooftop PV and storage? | Unresolved until project lookup. |
| Nevada | Local AHJ path | Project city or county building department | Does the current portal show all review charges? | Unresolved until project lookup. |
| New Hampshire | Local AHJ path | Project municipality permit office | Which local building and electrical schedules apply? | Unresolved until project lookup. |
| New Jersey | Local AHJ path | Project enforcing agency | Which local forms and fee calculations apply? | Unresolved until project lookup. |
| New Mexico | Local or state path | Project AHJ and applicable state permit office | Who has enforcement authority at the site? | Unresolved until project lookup. |
| New York | Local AHJ path | Project city, town, village, or county permit office | Which municipality issues the building permit? | Unresolved until project lookup. |
| North Carolina | Local AHJ path | Project city or county inspections office | Are plan review and trade permits separate charges? | Unresolved until project lookup. |
| North Dakota | Local or state path | Project AHJ and applicable electrical authority | Who collects building and electrical fees? | Unresolved until project lookup. |
| Ohio | Local AHJ path | Project certified building department | Which department has jurisdiction over the address? | Unresolved until project lookup. |
| Oklahoma | Local AHJ path | Project city or county permit office | Does the fee include required inspections? | Unresolved until project lookup. |
| Oregon | Verified statewide structural fee methodology. | OAR 918-050-0180, electrical fee rules, and the local schedule. | Is the system prescriptive, and which electrical permit items apply? | Unresolved until project lookup. |
| Pennsylvania | Local AHJ path | Project municipality or contracted code office | Does a third-party review or inspection fee apply? | Unresolved until project lookup. |
| Rhode Island | Local AHJ path | Project municipality permit office | Which building and electrical fees apply? | Unresolved until project lookup. |
| South Carolina | Local AHJ path | Project city or county permit office | Does the schedule use valuation or a permit class? | Unresolved until project lookup. |
| South Dakota | Local or state path | Project AHJ and applicable electrical authority | Who issues each required permit? | Unresolved until project lookup. |
| Tennessee | Local or state path | Project AHJ and applicable state permit office | Is the address under local or state enforcement? | Unresolved until project lookup. |
| Texas | Local AHJ path | Project city or county permit office | Does this address require local building and electrical permits? | Unresolved until project lookup. |
| Utah | Local AHJ path | Project city or county permit office | Which permit class and review path apply? | Unresolved until project lookup. |
| Vermont | State and local review path | Applicable state application path and local office | Which state and local approvals does the scope require? | Unresolved until project lookup. |
| Virginia | Local AHJ path | Project city or county building department | Which local fee schedule and trade permits apply? | Unresolved until project lookup. |
| Washington | Local AHJ path | Project city or county permit office | Does the fee include plan review and electrical inspection? | Unresolved until project lookup. |
| West Virginia | Local or state path | Project AHJ and applicable state office | Which authority owns building and electrical review? | Unresolved until project lookup. |
| Wisconsin | Local AHJ path | Project municipality permit office | Which local building and electrical charges apply? | Unresolved until project lookup. |
| Wyoming | Local or state path | Project AHJ and applicable electrical authority | Who issues each permit at this address? | Unresolved until project lookup. |
The repeated unresolved status is intentional. It prevents a routing reference from becoming a false price list.
What does California law limit?
California Government Code Section 66015 controls specified local permit fees for solar energy systems. The current section became effective January 1, 2024. It remains in effect until January 1, 2034, unless later law changes it.
For residential photovoltaic systems, the section sets a ceiling of $450. It adds $15 per kilowatt above 15 kW. The defined residential permit fee is the sum of local charges connected with the application.
The rule has an exception. A city or county may charge more after making a written finding and adopting a resolution or ordinance. The action must provide substantial evidence of the reasonable permit cost.
For commercial photovoltaic systems, the ceiling starts at $1,000 for systems through 50 kW. The law adds $7 per kilowatt from 51 kW through 250 kW. It adds $5 per kilowatt above 250 kW. A documented local exception can also apply.
Read the exact language in California Government Code Section 66015, accessed September 26, 2026.
Do not calculate the invoice from the ceiling alone. First confirm how the AHJ treats capacity, batteries, other trades, and any adopted exception. Save the local schedule with the statute.
What does Colorado law limit?
Colorado Revised Statutes Section 24-48.5-113 addresses the aggregate of state and local charges for installing an active solar energy system. The official 2024 codification says the limit is the lesser of actual permitting cost or a stated ceiling.
For systems below 2 MW direct current, the listed ceiling is $500 for a residential application. It is $1,000 for a nonresidential application. The section permits recovery of higher actual costs for an individual nonresidential application. The authority must provide written proof to the applicant.
The statute also requires the invoice to identify fees and taxes individually. Its definition of an active solar energy system includes an energy storage system. The section is scheduled for repeal on December 31, 2029.
Use the official Colorado Revised Statutes 2024, Title 24 PDF. Section 24-48.5-113 appears on printed page 1585. This source was accessed September 26, 2026.
The official file is marked as an uncertified printout. Confirm the current section before quoting a live project. Also retain the local invoice because the law requires itemization.
How does Oregon calculate structural permit fees?
Oregon uses a statewide methodology rather than one statewide project amount. Oregon Administrative Rule 918-050-0180 separates prescriptive and non-prescriptive installations.
A structural permit for a prescriptive installation uses a flat fee. That fee includes one inspection and municipal permit review. A non-prescriptive installation uses the value of structural elements and related installation labor.
The rule says the non-prescriptive structural valuation includes racking, mounting elements, rails, and installation labor. It excludes solar electrical equipment, collector panels, and inverters. The municipality then applies its fee schedule.
Plan review uses a percentage set by the municipality. Electrical work needs an electrical permit under separate Oregon electrical fee rules.
Read OAR 918-050-0180, effective October 1, 2022. Oregon also publishes an ePermitting workflow for solar installations. Both sources were accessed September 26, 2026.
An estimator still needs the municipality’s current flat fee or valuation schedule. The state rule supplies the method, not the final project amount.
Does SolarAPP+ replace the AHJ fee?
No. SolarAPP+ review and the AHJ permit charge are separate fee layers.
The official SolarAPP+ knowledge base says an installer pays its administration fee in addition to fees set by the AHJ. Its fee page listed $35 for a solar permit on September 26, 2026. It listed $30 for an energy-storage add-on and $30 for storage only.
Those platform amounts can change. Payment processing fees may also apply. Confirm the checkout screen before putting a platform charge into a customer quote.
The collection path depends on the local setup. A standalone SolarAPP+ jurisdiction may collect both amounts during one checkout. A jurisdiction using another government portal may collect the local fee there. SolarAPP+ then collects its own fee separately.
See the official SolarAPP+ installer fee page and AHJ fee collection explanation. Both were accessed September 26, 2026.
Our SolarAPP+ states guide covers eligibility and local adoption. The SolarAPP+ glossary entry defines the platform without merging it with local permitting.
How should residential and commercial estimates differ?
Project labels matter because fee rules often use them. Do not move a residential amount into a commercial estimate.
Residential rooftop PV
Record direct-current capacity, roof mounting, service work, and storage. Confirm whether the address qualifies for an automated or prescriptive route.
Ask if one payment includes plan review and inspection. Some portals show a permit total before adding payment processing.
Residential PV with storage
Add battery model, quantity, capacity, location, and operating mode. Storage can trigger separate fire, electrical, or platform review.
The design package may also change. Use the solar storage plan-set requirements before assuming a solar-only fee route still applies.
Commercial rooftop, canopy, and ground mount
Confirm the occupancy, capacity, valuation basis, and number of disciplines. Fire access, structural work, grading, planning, and civil scope may create separate charges.
Do not infer that a commercial amount includes every department. Ask for an itemized estimate when the portal only shows one total.
Equipment change after application
An inverter, module, battery, or service change can create a revision charge. Record what the original fee includes before promising free resubmission.
Our permit redline and resubmission guide explains how to isolate corrections from owner-driven changes.
How do you reconcile a portal total?
A portal total is the start of the check. It is not proof that every required charge is present.
Create one row for each fee owner. Then reconcile the portal against the published schedule and project scope.
| Reconciliation row | Input to capture | Question to answer |
|---|---|---|
| Building permit | Permit class and base charge | Does this cover structural review? |
| Plan review | Percentage, flat charge, or included status | Is review inside the base permit? |
| Electrical permit | Circuit, equipment, capacity, or valuation input | Is electrical collected by another office? |
| Fire review | System type and battery details | Does the fire district invoice separately? |
| Inspection | Included visits and extra inspection rates | What triggers another inspection charge? |
| Platform | Application type and add-ons | Is this SolarAPP+ or another portal charge? |
| Processing | Payment method and provider | Does the card fee appear only at checkout? |
| Utility | Application class and study path | Is this a permit cost or utility cost? |
Suppose the portal displays one amount after a residential PV application. Do not label it “all permit fees” yet. Check the receipt or estimate for line items.
Next, compare the scope with the submitted equipment. A battery omitted from intake may add fire, electrical, or platform review. A service upgrade may add another permit class.
Then check payment timing. Some portals calculate the permit before card processing. Another office may invoice after plan review.
Finish with a three-part result:
- Confirmed now: charges supported by a current source or portal result.
- Expected later: known reviews that invoice after another step.
- Unresolved: charges that need an AHJ or utility answer.
This format is more honest than one unsupported total. It also tells accounting which amounts can still change.
Which fee mistakes cause quote problems?
Most fee errors come from a source mismatch. The arithmetic is usually the easy part.
Using a neighboring jurisdiction
A postal city does not always identify the permit authority. Confirm the actual jurisdiction before opening its fee schedule.
Record the department name beside the address. This prevents a later estimator from repeating the same location error.
Treating a ceiling as the price
A statutory ceiling is not a standard charge. The AHJ may charge less. A valid exception may also change the result.
Use the local calculation first. Apply the state rule as a compliance check.
Copying a search snippet
A snippet can omit the effective date, project class, or exception. It can also quote an old PDF.
Open the official source and preserve the supporting page. If the source has vanished, keep the amount unresolved.
Mixing design and government costs
A private provider’s quote may cover drawings, calculations, or coordination. It does not become the AHJ fee.
Maintain separate purchase orders or budget lines. Label the payee for every charge.
Ignoring storage and service work
The original PV scope may qualify for one route. Batteries, generators, or service equipment can add another review owner.
Run the lookup again after any equipment change. Do not reuse the first estimate without checking scope differences.
Dropping the access date
An amount without a date cannot show whether it was current. Fee schedules, portals, and payment charges change.
Put the observation date beside the amount. Set a new lookup date before submission.
What evidence should the estimator save?
A fee note should let another team member reproduce the result. Save these fields with the quote.
| Evidence field | What to record | Failure prevented |
|---|---|---|
| Project identity | Address, parcel, customer reference | Wrong property or neighboring AHJ |
| Jurisdiction | Full AHJ name and department | Wrong city or county schedule |
| Project class | Residential, commercial, storage, canopy, or ground mount | Wrong fee band |
| System basis | Capacity, valuation, permit type, and trade scope | Wrong calculation |
| Fee components | Building, electrical, fire, review, inspection, and portal | Hidden line items |
| Source | Official URL, PDF title, page, or written AHJ reply | Unverifiable amount |
| Observation date | Date and time checked | Stale schedule |
| Version marker | Effective date, revision date, or ordinance number | Superseded rule |
| Calculation | Inputs, formula, rounding, and subtotal | Arithmetic drift |
| Expiration | Quote validity or planned recheck date | Old amount used at filing |
Keep a screenshot or PDF when the portal permits it. Dynamic calculators can change without leaving a public archive.
Mark verbal guidance as verbal. Ask the permit office for a written fee estimate when the amount affects a signed contract.
How often should fee research be refreshed?
Use a short review cycle for volatile fields. Platform charges and portal totals should be checked at each submission. Local fee schedules should be checked before every customer quote.
State statutes and administrative rules change less often. They still need a review before use. Track legislative amendments, effective dates, repeal dates, and local exception ordinances.
Use these working controls:
- At quote: confirm the AHJ, project class, and current source.
- Before submission: rerun the portal calculation and capture the total.
- After a scope change: recalculate every affected fee layer.
- Quarterly: test saved links and replace superseded schedules.
- Annually: review state statutes, rules, and internal estimating notes.
Do not silently overwrite old evidence. Preserve the prior version and record what changed.
Where does permit design support fit?
Fee research is part of intake. It is not a substitute for a complete permit package.
Heaven Designs provides solar permit design services for defined project scopes. The team can review available AHJ requirements and prepare the agreed drawing package. Exact deliverables, engineering needs, submission work, revisions, and government fees belong in the written scope.
Heaven Designs does not publish a universal price card here. The company also does not present local government fees as its own charges.
If your team needs a scoped design discussion, contact Heaven Designs with the project address, system type, equipment, and available site data. Confirm who owns permit payment and portal submission before work starts.
Solar permit fee questions
Is there one solar permit fee for each state?
Usually not. The address and project class often control the final route. A state may set a cap or method without issuing the local invoice.
Are solar permit fees included in plan-set pricing?
Do not assume so. A plan-set provider charges for a defined service. The AHJ, utility, platform, or payment processor may charge separate amounts.
Does a state fee cap guarantee the invoice amount?
No. A cap limits covered charges under stated conditions. It does not calculate every project fee. Exceptions, other departments, and separate charges may apply.
Are electrical and fire review fees part of the building permit?
Sometimes. The answer depends on the authority and portal. Request an itemized total or check each department’s schedule.
Is SolarAPP+ free for installers?
No. The official fee page lists administration charges. They are separate from the local permit fee and may change.
Can a search result provide a reliable fee?
No. A search result can help find a source. Use the live official page, ordinance, schedule, calculator, or written AHJ response.
What amount should enter the estimate before the address is known?
Use an unresolved allowance, not a claimed permit fee. Replace it after the address, scope, AHJ, and current source are confirmed.
Who should review these figures before you rely on them?
Have a qualified US permit or legal professional confirm the state-law summaries for your jurisdiction. Confirm project-specific charges directly with the local authority issuing the permit.
The estimate is finished only when another person can reproduce it
A clean permit budget names every payee. It shows the source and calculation for each amount. It also preserves the lookup date.
Start with the 51-jurisdiction matrix. Resolve the address. Then replace every unresolved field with current evidence. That process is slower than copying a state average, but it produces a defensible estimate.