Permitting and Licensing Software Problems: The 7 That Cost Agencies Real Money, and How to Avoid Them
The most expensive failure in a permitting build is a fee engine that models a fee schedule as current configuration rather than as a dated legal rule. Your schedule is adopted by ordinance with effective dates, and an application submitted before a mid-year amendment has to price under the old schedule even if it is issued in October. Systems that change a fee for everyone the moment you edit it force permit techs into manual overrides, and manual overrides become the audit finding. One county we worked with was writing off roughly $140,000 a year in miscalculated valuation-based fees because the multipliers in the shared spreadsheet had drifted away from the adopted ordinance, and nobody could reconstruct why any given permit cost what it cost.
Why does a permitting build turn into a replacement for every department's system?
The project starts with a specific, defensible complaint. Plan review is routed on paper, the fee schedule lives in a spreadsheet, and the front counter phone rings all day with people asking where their permit is.
Then Planning wants their entitlement cases in it. Code enforcement wants case management. Business licensing wants renewals. Fire wants inspections. Engineering wants right of way permits. Each request is reasonable on its own, and each one adds a department whose workflow has to be understood, whose staff have to be trained and whose data has to be migrated. What was a twelve week release becomes a two year programme, and the political capital that funded it runs out somewhere in month nine.
What makes this worse in local government than elsewhere is that departments are not obliged to cooperate on someone else's timeline. A build that depends on six departments all making decisions in the same quarter is a build that will slip on the slowest one.
The fix is to scope by pain rather than by org chart. In Digital Heroes delivery experience a focused first release covering intake, an effective dated fee engine, parallel plan review routing and inspection scheduling for one department lands at $60,000 to $130,000 in 12 to 16 weeks. The full platform adding contractor licensing, code enforcement, business licensing, geographic information system (GIS) parcel binding, cashiering and the public portal runs $150,000 to $400,000 phased over 6 to 12 months. Phase it so building services goes first, works, and becomes the argument for the next department rather than a promise about it.
What goes wrong migrating 15 years of Accela or EnerGov records?
Migration is the line item every vendor lowballs and the one that most often blows the schedule. Fifteen years of permit records is not fifteen years of clean rows.
Three specific problems recur. Attachments are the largest by volume and the least considered: plan sets, correction letters, photographs and scanned certificates, often stored with filenames that carry meaning nobody wrote down. Parcel binding is the second, because older records were entered before your assessor's parcel numbering was reliable, or against addresses in subdivisions that have since been renumbered, and a permit that cannot be tied to a parcel is a permit your staff cannot find. The third is dead workflow states: permits sitting in review steps that no longer exist because a workflow was reconfigured in 2019, which cannot be migrated into a live process because there is no live process they belong to.
The approach that works is to split the population. Closed permits migrate as read-only historical records, searchable and complete, with their attachments, and they do not need to fit the new workflow at all. Only open permits enter the live system, and each one gets triaged by a human into a current review state. That single decision removes most of the risk and most of the argument.
Budget 4 to 8 weeks for it as its own workstream with a named owner in the agency, and insist on a reconciliation report before cutover: record counts by type and year, attachment counts, and an explicit list of everything that could not be placed. Nobody enjoys reading that list, and every agency that skipped it found the same records missing later, at a worse moment.
Why do the GIS, cashiering and state license board integrations break after launch?
Permitting integrations fail on republication and on renewal, which are events nobody schedules a change window for.
The GIS layer is the classic. Your parcel layer is republished, geometries shift slightly, and permits bound to a geometry rather than to a stable parcel identifier drift off their lots. Overlay districts, flood zones and historic overlays are separate layers with their own update cadences, and a permit whose review requirements were derived from an overlay at intake will not automatically pick up the fact that the overlay boundary moved. Bind to identifiers, store the overlay determination that was made and when, and re-evaluate deliberately rather than silently.
Cashiering breaks at the ledger. Tyler Munis and CentralSquare Finance both have firm opinions about how a receipt posts, and a fee line without an explicit general ledger account and fund becomes a monthly reconciliation argument with Finance. Every fee line should carry its account and fund from the moment it is calculated, not be mapped later.
State license board lookups are the quietest failure of the three. They are public data sources, not contracted interfaces. They change format without notice, they rate limit, and they go down. A nightly job that silently fails means a contractor whose licence was suspended keeps getting permits issued, which is the failure mode with legal consequences. The fix is unglamorous: the job reports its own success, a run that returns no changes on a day it should have is treated as suspicious rather than clean, and any contractor record older than a set age is flagged as unverified rather than assumed good.
What happens when accessibility and records retention are not covered?
Two obligations get treated as polish in this category and both are enforcement risks.
The first is accessibility. Your public portal is government service delivery, and it needs to meet Web Content Accessibility Guidelines 2.1 level AA. This is not a badge, it is a set of design decisions that reach into every form, every status table, every error message and every document you publish. Retrofitting it onto a finished form heavy application costs several times what building to it does, because the fixes are structural rather than cosmetic. Ask any developer whether they have run an audit with a real screen reader on a multi step application form, and ask to see the report.
The second is records. Every comment, every markup, every status change and every uploaded document in a permitting system is a public record with a retention schedule, and a portion of it is subject to public records requests. That has design consequences: nothing is hard deleted, corrections supersede rather than overwrite, the export path for a records request has to produce a defensible package rather than a screen scrape, and retention periods have to be enforceable per record type.
Add two more if they apply to you. Criminal justice information handling requirements if code enforcement touches law enforcement data. And payment card scope, which you want your cashiering path to keep out of your application entirely rather than bringing in.
Should you build custom or finish configuring what you already own?
For a real share of agencies the right answer is do not build, and we say so regularly.
If you issue under about 1,500 permits a year, run one or two review disciplines and your fee schedule fits on a page, OpenGov Permitting and Licensing or CityView will serve you well. A custom build at that scale is money that would do more good digitising your file room and scanning the microfiche nobody can search. Be honest about which problem you have.
The other honest case is that many agencies running Accela Civic Platform or Tyler EnerGov never finished the configuration. The implementation consultant left, the workflow diagram became unmaintainable, and staff quietly routed around it by email. If your product is capable and the configuration is abandoned, hiring someone to finish it is cheaper and faster than replacing it, and any developer who will not tell you that is not being straight with you.
Configuration runs out at two specific places. The first is effective dated fee rules, because these products model a fee as a current setting rather than as a versioned rule with a validity window, and your ordinance does the opposite. The second is conditional parallel routing with dependency edges and re-entrant cycles, where a resubmittal should reopen only the disciplines that issued comments and restart only their portion of the statutory clock. Both are data model limits rather than settings.
Which is why partial builds are often the right answer. Custom plan review routing and a real public portal on top of an existing Accela or EnerGov back end is typically a $70,000 to $110,000 project that removes most of the daily pain with no migration risk at all.
How do hidden costs get into the quote?
Permitting quotes go wrong on five things, and only the first is usually named.
Permit type count and fee formula complexity. Forty permit types with real valuation tables, per fixture plumbing counts and pass-through state surcharges is materially more work than twelve flat fees, and the difference is not proportional. GIS depth, because binding to a parcel layer with overlay districts is a project inside the project rather than a connector. Cashiering and financial integration. Legacy migration, which is 4 to 8 weeks by itself. And state reporting mandates, which vary by state, are non-negotiable, and are frequently discovered after kickoff.
Then the ones that never appear on a proposal at all. Your staff time, because permit techs, plans examiners and inspectors have to make decisions and test what gets built, and a project that assumes an hour a week from them will slip on that assumption alone. Accessibility audit and remediation, which belongs in the budget rather than in a hope. Change management and training, since the behaviour that has to change is a permit tech's muscle memory around workarounds. And parallel running, because you will take applications in both systems for three to four weeks and that costs real hours.
Ask for exclusions in writing. A developer who will state what is not included has scoped the work.
What separates a build that works from one that fails here?
Hand a candidate developer one page of your adopted ordinance with a valuation table and a mid-year amendment, in the first meeting, and ask them to model it. Within ten minutes a developer who has shipped permitting will be asking about effective dates, general ledger codes, and whether the schedule that applies is the one at submittal or at issuance. A developer who has not will say they will make it configurable, which means you will be the one configuring it.
Ask how they bind a permit to a parcel for a new subdivision lot the assessor has not created a parcel number for yet. Every agency hits this, and a developer who has not is guessing.
The builds that work make the calculation visible. When someone asks why a permit cost $4,317.50, the system renders base fee, valuation tier, plan review percentage and state surcharge, each line citing its ordinance section. That one feature ends more fee disputes than any policy memo, and it is also the feature that proves the fee engine is real.
The builds that fail are the ones where the review workflow was designed in a room without a plans examiner in it. Get your examiners, your permit techs and at least one inspector into design reviews rather than showing them a finished product, because they are the people who know which exceptions actually occur.
Settle ownership before kickoff. You should own the repository, the schema, the infrastructure configuration and the documentation, with no runtime licence back to the developer, and a written transition clause saying another firm can take it over. If a vendor holds the code and rents it back, you have bought the dependency you were trying to escape, with worse support.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- Across more than 5,400 IT projects studied by McKinsey and the University of Oxford BT Centre, large IT projects ran on average 45% over budget and 7% over schedule while delivering 56% less value than predicted. Source: McKinsey & Company / University of Oxford (BT Centre for Major Programme Management) (2012) →
- The median annual wage for U.S. software developers was $133,080 in May 2024, and employment is projected to grow 15% from 2024 to 2034 - a core input to any in-house build-vs-buy TCO model. Source: U.S. Bureau of Labor Statistics (2024) →
- An analysis of enrollment and completion data for 221 MOOCs (Katy Jordan, published in the International Review of Research in Open and Distributed Learning, IRRODL, 16(3), 2015 - not the Journal of Distance Education) found completion rates ranging from 0.7% to 52.1%, with a median completion rate of 12.6%, and completion negatively correlated with course length (longer courses had lower completion rates) - underscoring how unsupported self-paced online courses struggle to finish learners. Source: Journal of Distance Education (via ERIC / Katharina Jordan) (2015) →
- Across ten outpatient clinics the mean no-show rate was 18.8%, and the marginal cost of no-shows reached $14.58 million per year for those clinics, at roughly $196 per missed appointment (2008 figures). Source: BMC Health Services Research / PubMed Central (Kheirkhah et al.) (2015) →
As a senior project manager, Navya holds the line between what a client signed off and what a development team can deliver in the time available. Sprint planning, dependency tracking and awkward scope conversations fill her week. Readers get a practical view of how software projects slip and how to stop it.
View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.
Frequently asked questions
Can a custom fee engine really handle a mid-year ordinance amendment?
How should a resubmittal affect the statutory review clock?
What is the realistic effort to migrate off Accela without losing history?
Where does artificial intelligence genuinely help in permitting?
Does the public portal really need to meet accessibility standards?
Should we replace our permitting system or just build the part that is failing?
How do we stop issuing permits to contractors whose licence or insurance lapsed?
What is the biggest schedule risk on an agency permitting project?
What does a $50,000 custom software budget actually buy?
How do I calculate whether custom software will pay for itself?
How much should a small business budget for its first custom app or website?
Does it matter which tech stack the agency wants to use?
What should I have ready before I contact a development agency?
Can we migrate years of data out of our current system into new custom software?
If an agency builds my software, who actually owns the code?
Who can build a custom software system?
Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.
Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.
What makes Digital Heroes different from other software companies?
Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.
Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.
How can I check Digital Heroes is legitimate before getting in touch?
Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.
Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.