Problems & solutions · Custom Software

Professional Licensing Board Software Problems: The 7 That Cost Boards Real Money, and How to Avoid Them

Professional Licensing Board Software product interface illustration showing common problems and fixes.
The short answer

The most expensive failure in a licensing board build is scoping the licensure eligibility engine as an application form. A board funds online applications and renewals, then discovers in month four that its statute encodes education equivalency, examination attempt limits, supervised hour rules and endorsement pathways that interact with each other, and the module has to be rebuilt. In our delivery experience that rework costs a board 6 to 10 weeks and $30,000 to $70,000 against a first release priced at $80,000 to $180,000, and the board still ends up making determinations in a staff member's head with only the outcome recorded, which is exactly the exposure that loses an appeal.

Why does the eligibility engine get underscoped so often?

Read almost any board's requirements document and you will find a line that says online application and renewal with document upload and reviewer workflow. That sentence is priced by every vendor as a form builder. It is not a form builder. It is your statute.

Take a real applicant. They graduated from a programme that lost accreditation for two years, part of which overlaps their enrolment. They passed the national examination on the third attempt in another state. They completed 1,340 of the required supervised hours under a supervisor whose own licence lapsed for three months in the middle of that period. They are applying by endorsement. Every one of those facts triggers a rule in your law or your administrative rules, and the rules interact. The accreditation gap may or may not be curable by additional coursework. The third attempt may or may not require a remedial plan. The hours worked under a lapsed supervisor may count, may be void, or may be curable by board determination.

A form with a reviewer checklist handles this by putting the analysis in a person and storing the answer. That works until the applicant appeals and asks the board to explain the determination, or until the same pattern arrives again and a different analyst reaches a different conclusion. Inconsistent determinations are how boards end up in litigation, and the record shows nothing except a checked box.

The fix is to write the rules down before you price anything. Take your five most common licence types and document the criteria as evaluated conditions: education verified against the institution, examination results from the testing body, hours accrued against supervisor records with the supervisor's standing checked as at the date worked. Each criterion resolves to pass, fail or manual determination, and a manual determination carries the reasoning. That document is your specification, and a vendor pricing without it is guessing.

What goes wrong when you migrate a legacy licensing database?

Licensing databases are old. Many boards are running something that has been extended by three different contractors across fifteen years, and nobody has audited the data in that time. The migration line in the proposal says data conversion and carries a modest number. It is almost always the single most underestimated item in the project.

What is actually in there: the same human being as three person records because they held licences under a maiden name, a married name and a transliteration. Licences with expiry dates before their issue dates. A free text notes field carrying structured meaning nobody documented, such as a convention where a leading asterisk means a practice restriction. Supervisors recorded as typed strings rather than as licensee records. Discipline outcomes stored as scanned documents with no structured fields, so your reporting obligations were always met by hand.

The fix is to profile the data before you plan the migration, not after. Run the duplicate analysis, the date sanity checks and the free text pattern analysis in week one, and put the results in front of the people who created the data, because only they can tell you what an asterisk meant in 2011.

Then migrate in three tiers. Current licensee record and standing at full fidelity, because that is what drives renewal and public verification. Historical licences and discipline outcomes as structured summary. Everything older as a read only archive that staff can search but the engine never recalculates. Budget the cleanup as a named work stream with a named owner on your side, not as a task inside the development estimate.

Why do payment, identity and background check integrations break after launch?

Three integrations decide whether a licensing system survives its first renewal season, and all three sit outside the vendor's control.

The state payment gateway is the first. It works fine in testing at five transactions a minute and then meets a biennial renewal deadline where a third of your licensees renew in the last 72 hours. Failure modes are specific: a payment authorised but the application not marked paid because the callback timed out, a duplicate charge from a licensee who refreshed, a refund needed because an application was withdrawn, and a convenience fee your statute constrains in a way the gateway does not natively express. The fix is that your system holds its own payment record and reconciles against the gateway daily. Never let the gateway be the only place a payment exists.

The identity provider is the second. Licensees lock themselves out at exactly the moment they most need in, which is the night before the deadline, so plan a supported recovery path a staff member can execute with an audit trail.

Criminal background check channelling is the third and least appreciated. The fingerprint vendor and the state repository each have their own interface, results arrive asynchronously days later, sometimes as documents rather than data, and subsequent arrest notifications arrive for licensees you have already licensed. A system that models the check as a one time upload will not handle the notification arriving eighteen months later. Model it as an ongoing status with dated events attached.

What happens when confidentiality between enforcement and licensing is not covered?

This is the failure that reaches the public. A licensee under a signed consent order renews online without friction because the renewal system has no knowledge of the order, and your public verification page shows a clean licence for the next two years. Somebody may catch it in a manual cross check. Frequently nobody does.

The opposite failure is equally real. A licensing analyst sees an unsubstantiated complaint that should never have been visible to them, and now you have a disclosure problem with a complainant and a respondent. Boards respond by keeping enforcement in a separate system, which causes the first failure while only partly preventing the second. Separation of visibility does not require separation of storage. What it requires is one licensee record with field level access control that the system enforces and logs, a confidential enforcement section that licensing staff cannot see, and an automatic hold that blocks renewal or new licensure while a matter is open. Public verification is then built from an explicit allowlist of fields, which means unsubstantiated material is structurally incapable of reaching the public surface. Ask any prospective developer how they will do this. If the answer is two databases, you have bought the problem you are trying to fix. If it is a role checkbox on a screen, you have bought a breach.

Should you build custom or configure what you already own?

A single profession board with fewer than roughly 5,000 licensees and a conventional renewal cycle should not build. Thentia is a credible modern cloud product and MyLicense is entrenched for good reasons, and at that scale either will cost you less than the first phase of a build and less than the staff time a build consumes. We say this to boards regularly and it is the right answer more often than not.

Configuration is also right when your pain is a user interface problem rather than a rules problem. Licensees finding renewal confusing is worth a usability project, not a rewrite.

The honest signal that configuration has run out is when it has quietly become a permanent staff role. If one person's job is maintaining workarounds so the packaged product can express your statute, you are already paying for a build annually and receiving nothing you own. The second signal is authorship. If your registrar needs a new licence type or an amended renewal requirement live before the next cycle and the current path is a vendor change request in someone else's release calendar, you have outgrown the package. The third is multiplicity: several professions with genuinely different statutory pathways under one authority is where packaged configuration models start to break.

How do hidden costs get into the quote?

Six items account for most licensing board overruns, and none of them is engineering complexity.

  • Licence type count. A proposal prices one licensing module. Your authority regulates eleven licence types across four professions, each with its own pathway, renewal rule and continuing education requirement. Count them and put the number in the requirements document.
  • Public records and retention. You are a records custodian first. The system has to produce a defensible export of what was public on a given date and log who viewed what. Retrofitting audit logging costs several times what building it in costs.
  • Accessibility. A public government service page must meet the accessibility standard your jurisdiction imposes. Remediating a finished interface is far more expensive than building to the standard from the first screen.
  • Procurement and security review. In government these are part of the timeline, not overhead around it.
  • Legislation. A bill that changes a renewal requirement mid project rewrites a module. Build to a statute frozen at a named date and treat pending legislation as a funded change request.
  • Parallel running. You will run the old and new systems through one renewal cycle. That consumes staff time on both, and it is a real cost that belongs in the budget rather than in optimism.

What separates a licensing build that works from one that fails?

The builds that work share five properties. Rules live as versioned, effective dated configuration that a trained administrator can publish, so an applicant is always evaluated under the law in force on the day they applied and a licensee renewing under the old cycle is judged by the old rule. There is one licensee record with field level access control rather than two systems pretending to be coordinated. Public verification is driven from live status, not a nightly export, because a suspension imposed at ten in the morning that shows as active until midnight is a public safety failure. Reporting to national databanks and compacts fires from the discipline outcome itself and tracks submission, acknowledgement and correction. And the board owns the repository, the infrastructure accounts and the right to hire another firm, agreed in writing before kickoff.

The builds that fail share one property above all: they attempted licensing and enforcement simultaneously. Phase them. Get the licensee record, application, renewal and continuing education audit live and stable through one full cycle, then add complaint intake, investigation and discipline on top of a record that already works. Boards that try both at once usually ship neither well, and the enforcement side is the one that ends up half built and abandoned.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Standish's 2015 CHAOS research found roughly a third of software projects (about 36% by the Modern definition) fully succeed on time, on budget, and on scope, with top success drivers including executive support, user involvement, and clear requirements/business objectives. Source: Standish Group (CHAOS Report) (2015) →
  2. Median SaaS spend reached $9,455 per employee, and organizations leave an average of 36% of their SaaS licenses unused. Source: Zylo (2026) →
  3. Bersin by Deloitte research found organizations that use HR technology and employee-centric design to build a flexible, empowering workplace are more than 5 times more effective at improving employee engagement and retention than their peers, and 2.5 times more likely to reach 'high-impact' status by leveraging HR for digital transformation. Source: Bersin by Deloitte (2017) →
  4. Acquiring a new customer is five to 25 times more expensive than retaining an existing one, and research by Frederick Reichheld of Bain & Company found that increasing customer retention rates by 5% increases profits by 25% to 95% - underscoring the ROI of support that keeps customers. Source: Harvard Business Review / Bain & Company (2014) →
Layla S. · Senior Account Manager · Wellness · Sydney

Layla looks after wellness sector accounts, running projects that touch bookings, memberships, subscriptions and the customer data that sits behind them. She translates between clinical or operational language and what a development team needs written down. Useful reading if your business runs on recurring relationships rather than one off sales.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Our board regulates six professions. Does that multiply the cost?
It moves the cost more than licensee volume does. Each profession carries its own statutory pathway, renewal rule, continuing education requirement and often its own examination and endorsement logic, so what a proposal calls one licensing module is really six rule sets. The way to control it is to build the rules engine once and express each profession as configuration, then implement professions in sequence rather than in parallel, starting with the two that carry the most licensees.
How do we stop a licensee under a consent order from renewing cleanly?
Put an automatic hold on the licensee record that any open enforcement matter or active order sets, and make renewal check that hold as a hard gate rather than as a warning a clerk can dismiss. The reason this fails today is that enforcement lives in a separate system with no ability to write to the licensing record. One record with a confidential enforcement section, plus a hold flag that licensing staff can see the existence of without seeing the contents, fixes it without exposing the case file.
Can a small board avoid a full custom build?
If you regulate one profession with a conventional renewal cycle and a modest complaint volume, yes, and you probably should. Thentia and MyLicense both handle that shape competently and cost less than the first phase of a build. Revisit the decision when configuration has become a permanent staff role, when a statutory change cannot go live before the next cycle without a vendor release slot, or when a second profession with a different pathway comes under your authority.
What is the real risk in migrating fifteen years of licensing data?
Duplicate persons and undocumented conventions in free text fields. The same licensee appears two or three times under different names, and a notes field carries structured meaning through a convention that only long serving staff know. Profile the data in week one, put the findings in front of the people who created it, and migrate in tiers: current record and standing at full fidelity, history as structured summary, older material as a read only archive.
How should continuing education audits be handled without adding staff?
Extract the certificates rather than reading them. Completion certificates are semi structured documents with a provider, title, date, credit value and approval number, arriving as photographs and PDFs, and a document model can read them and match against your approved provider registry. Your analyst then works an exception queue instead of typing every entry. Keep an approved provider and course registry inside the system so the match is deterministic rather than fuzzy, and let providers submit completions directly where they will.
Why does our public verification page show stale licence status?
Because it is almost certainly fed by a scheduled export rather than by live status. That was a reasonable design when the page was a courtesy and is a defect now that employers, hospitals and credentialing services treat it as authoritative. Drive it from live data with an explicit allowlist of public fields, and publish a documented API alongside it, because the large credentialing services currently scrape the page and would rather call an endpoint.
What happens if the legislature changes a renewal requirement during the build?
Handle it as a versioned rule change rather than a code change, and only if your rules were built as effective dated configuration in the first place. Build to a statute frozen at a named date, then treat any bill moving through the session as a change request with its own budget line and its own decision point. Boards that try to track live legislation through a session commonly rebuild the same module twice and blame the developer for the second build.
How long before the new system can run a real renewal cycle?
A first release covering the licensee record, online application and renewal with payment, and the continuing education audit ships in 16 to 24 weeks in our delivery experience, and you should plan to run it in parallel with the old system through one complete cycle before retiring anything. That parallel period is where payment reconciliation, load behaviour at the deadline and the awkward licensee cases surface, and it is far cheaper to find them with a fallback available than without one.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
What happens to my software if the agency shuts down or we stop working together?
Nothing dramatic, if the engagement was set up correctly: the code sits in your repository, hosting runs on your cloud account, and a handover document explains how to deploy and operate the system. Any competent replacement team can then take over in days rather than months. If the agency controls the repo, the servers, or the domain, fix that now, because renegotiating access during a dispute is the most expensive place to discover the problem.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
How much should a small business expect to pay for custom software?
Across 2,000+ Digital Heroes projects, a small business system that replaces spreadsheets or one core workflow typically lands between $40,000 and $80,000, with more complex first versions running up to $150,000. The two levers that move the number most are integrations and user roles, not the team's hourly rate. Any quote under $15,000 for a full production system means the vendor has not understood your scope yet.
If an agency builds my software, who actually owns the code?
You should own everything, assigned in writing: the contract transfers full IP to you on final payment, the code lives in your GitHub organization, and hosting runs in cloud accounts you control. The red flag is a proposal that mentions the agency's proprietary platform or framework, which usually means you are renting, not buying. Digital Heroes structures every build this way precisely so a client can fire us and lose nothing but the relationship.
How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
Will an app built for 10 users survive growing to 500?
Yes, if it is built on standard cloud infrastructure with a sound data model, because moving from 10 to 500 users is a hosting configuration change, not a rebuild. The scaling decisions that actually hurt are made early and invisibly: how the database is structured, how accounts and permissions are modeled, and whether background work is queued properly. Ask your agency how the system would handle ten times the load; the right answer is boring and specific, and a promise to cross that bridge later means you will pay for the bridge twice.
What happens if I stop paying for maintenance after launch?
Nothing breaks on day one, which is what makes it dangerous. Within 6 to 18 months, unpatched dependencies accumulate known vulnerabilities, an integrated API like Stripe ships a breaking change, and the first fix requires a developer to relearn a stale codebase at full price. Budget 15 to 20% of the build cost per year for upkeep; it is the difference between a $500 patch and a $15,000 emergency.
What should I have ready before I contact a development agency?
Three things, none of them technical: a one-page description of the problem in your own words, a list of the tools and spreadsheets the new system must replace or connect to, and a must-have versus nice-to-have split of features. Add a budget range, even a wide one, because it changes the conversation from fantasy to engineering. You do not need a formal specification; producing that is what a discovery phase is for.
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.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?