Problems & solutions · Custom Software

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

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

The most expensive failure is modelling application requirements as a static checklist rather than as versioned rules with effective dates. It looks harmless until the legislature amends your practice act. On the effective date you have hundreds of applications in flight that must continue to be evaluated against the requirements in force when they were filed, and a checklist model has no honest way to hold both populations at once. Staff then either reprocess everything by hand, which costs a renewal season, or the board applies a new requirement to applicants it had no authority to apply it to, which surfaces at an appeal with your assistant attorney general explaining a software design decision to an administrative law judge.

Why does the eligibility rules engine scope get underestimated so often?

Vendors and developers price the application as a form with attachments and a reviewer queue, because that is what it looks like from outside. Inside, an application to your board is a statutory decision tree with several entry pathways that do not share requirements. An initial applicant by examination needs an approved program transcript, supervised practice hours signed by a qualifying supervisor, exam results transmitted by the testing vendor and a criminal history response. An applicant by endorsement needs primary source verification of an active license elsewhere plus a discipline check plus whatever equivalency your rule allows. A military spouse applying under your expedited statute needs a shorter set with a statutory clock attached. Each pathway has its own definition of complete.

The scope failure is not that developers cannot build a form. It is that they build one requirement set and treat variation as configuration on top, so the requirement itself has no version, no effective date and no independent evidence type, verifier or expiry.

The design that holds is to make requirements first class objects. A pathway is a versioned set of requirements. Each requirement carries its own evidence type, its own verifier, its own expiry and its own satisfaction logic. When a rule changes you publish a new version with an effective date and the engine keeps evaluating in flight applications against the version live when they were filed.

Get this into procurement language before anyone quotes. The test that separates teams is simple: hand them the scenario where the legislature shortens supervised hours effective January 1, there are nine hundred applications in flight and forty were filed under the expedited pathway. A team that has done regulatory work talks about rule versions, evaluation dates and replay. A team that has not talks about a configuration screen.

What goes wrong when you convert twenty years of licence history?

Conversion is the ugliest part of every board project and it is routinely priced as a line item rather than as its own project with its own budget and its own owner. The reasons are specific to this domain.

Your historic file predates any unique person identifier, so the same practitioner appears as several licensees because a surname changed, an address changed, or a clerk created a new record rather than searching. Boards that merged brought two numbering schemes and two sets of conventions. Disciplinary actions from before the current system are free text in a notes field, sometimes describing an action that is still in force, sometimes describing one that was vacated. Probation conditions with monitoring requirements live in the same field. None of that converts automatically and none of it can be safely inferred.

The approach that works starts with triage rather than transformation. Identify the high risk population first, meaning anyone with a disciplinary action, an open case, a probation condition or a monitoring requirement, and verify those records individually with staff. That is usually a small fraction of the file and it carries almost all of the risk. Convert the routine remainder in bulk with a deduplication pass, and accept that some historic detail stays as an indexed image rather than as structured data.

Why do the partner integrations break after launch?

A board system is not one integration problem, it is five with five different failure modes, and general integration experience does not transfer between them.

The testing vendor's exam result feed changes format or scoring codes when the vendor updates an examination. The state criminal history response arrives asynchronously, sometimes weeks later, and sometimes with a hit that the licensing system has nowhere to put, which is how criminal history responses end up in a shared email folder. Payment reconciliation to the state treasury's cash receipting is not the same problem as taking a card, and the reconciliation breaks whenever a fund code or a receipting rule changes. The compact database expects outbound adverse action reporting in near real time. Reporting of disciplinary actions against health practitioners to the National Practitioner Data Bank has its own format, deadlines and correction process.

The common failure across all five is silent. An outbound message fails, nothing retries it, and nobody notices until a compact partner asks why an action took nine days to appear. The fix is uniform: treat every reportable event as a durable outbound message with retries, a delivery receipt and a visible queue an analyst can inspect. Then put a named owner on that queue.

What happens when the investigative wall and retention are not properly covered?

In most states a complaint and the investigation that follows are confidential until formal charges are filed. Licensing staff processing renewals should not be reading investigative files. Board members who will sit as adjudicators should not see the investigative record before the hearing, because that separation of investigative and adjudicative functions is what keeps a disciplinary order from being overturned.

Systems implement this as role based permissions on a shared record, which is the right answer for a sales tool and the wrong answer here. Roles drift. An administrator grants an exception during renewal season and forgets. A year later a respondent's counsel asks in discovery who viewed the file and when, and if your honest answer is a permission matrix rather than an access log, you have a problem you cannot argue your way out of.

Separate the domains, not just the views. Enforcement data lives with its own access model and its own append only read log that survives independently of the application. The bridge into licensing carries only what licensing is entitled to: there is a hold, here is the reason code, here is the case number. Board packets are generated as redacted views built for the hearing stage the case is actually in.

Records retention belongs in the same conversation and is usually deferred to launch. Your system will hold records with different retention schedules and different public disclosure rules in the same database. That has to be designed on day one, because retrofitting disclosure rules onto a schema that never distinguished them means auditing every query in the application.

Should you build custom or configure what you already own?

Buy, and we say this more often than agencies expect. A single board with one or two licence types, a licensee population in the low thousands, a stable practice act and a disciplinary caseload you could describe in a meeting should run Thentia or System Automation MyLicense and put the money into staff. Their configuration is genuinely deep, and the discovery phase of a custom build would cost more than the licence.

Versa Regulation is a reasonable fit for a mid size regulator that wants a packaged enforcement workflow. Tyler Technologies deserves a serious look if your board already sits inside a Tyler estate and integration cost dominates your decision.

The build threshold is not features. It is whether the rate of statutory change in your professions exceeds the rate at which your vendor will move. Build when you are an umbrella agency running many boards with genuinely different statutes forced into one model, when your legislature amends your practice act most sessions and you are quoting those changes as vendor work rather than staff work, when you have received a change order for something you consider maintenance, when compact reporting is manual, or when your counsel is uncomfortable that the investigative wall is a permissions setting.

How do hidden costs get into the quote?

Six items, and they are consistent across the boards we have worked with. Legacy conversion, covered above, which belongs in its own budget line and frequently doubles when the historic disciplinary record is examined honestly.

The count of licence types and pathways, because each is a distinct requirement set that has to be captured from your rules and confirmed by counsel. Agencies quote their board count and get billed on their pathway count.

Accessibility conformance to WCAG 2.1 AA, which most state policies now require. It is cheap when designed in from the first screen and expensive when retrofitted after user acceptance testing.

Payment reconciliation to treasury cash receipting, which is a finance integration rather than a payment integration and is regularly scoped as the latter.

And the discipline side generally. Orders, stipulations, probation conditions and ongoing monitoring is close to a second product, and folding it into a licensing quote is the most common way these projects end up renegotiated mid build.

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

Sequencing. Ship one profession, one pathway, one renewal cycle. You learn more from watching your own staff run a real renewal than from any amount of requirements gathering, and you learn it before you have paid to build eleven other licence types the same wrong way. Boards that insist on a full scope first release almost always discover a structural assumption was wrong at the point where changing it is most expensive.

Second, precomputed status. Renewals compress into days because most licensees renew at the deadline, and the work is the hold logic in front of the payment, not the payment. Evaluating open complaints, unpaid penalties, delinquent continuing education, probation conditions and partner agency holds serially at the moment somebody clicks renew is what makes the site crawl in the only week that matters. Compute status nightly, write it with a reason code and a timestamp, recompute on events that change it, and let the renewal read an answer that already exists. The same status object then feeds the public lookup and the verification endpoint that hospital credentialing offices hit all day.

Third, a written rules specification your own counsel signs off on. That document is the deliverable that determines whether the build succeeds, and it is worth paying for as a discovery engagement before committing to a full project.

Fourth, ownership. You should own the repository, the cloud accounts and the unrestricted right to hire another firm, in the contract before kickoff. At Digital Heroes the client owns all three from the first commit. For a public agency this matters more than for a private buyer, because a procurement that leaves the code with the vendor guarantees a sole source renewal five years from now, and your successor administration inherits that decision.

Research & sources

The evidence behind this guide

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

  1. Senior executives report the highest average compensation among developer roles (e.g., $225K median in the US), and reported salary bands shifted downward year-over-year ($60-75K vs. $70-85K in 2023), underscoring how compensation varies sharply by role and location. Source: Stack Overflow (2024) →
  2. McKinsey's Developer Velocity research finds best-in-class tools are the top contributor to software business success, yet only about 5% of executives ranked tools among their top-three software enablers, signaling underinvestment in developer tools (this finding originates in McKinsey's Developer Velocity study rather than the linked generative-AI article). Source: McKinsey & Company (2023) →
  3. 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) →
  4. Retailers connecting point-of-sale and loyalty data in an omnichannel strategy reported up to 15% lower cost per purchase and nearly 20% higher incremental store revenue. Source: Deloitte (2024) →
Shreyansh S. · Managing Director · Lucknow

Shreyansh runs the Lucknow operation, sitting between clients who need software built and the teams who build it. Most of his week goes on scoping work honestly, deciding what a project should and should not include, and keeping delivery promises realistic. He writes for readers weighing up whether to commission custom software at all.

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

FAQ

Frequently asked questions

Our vendor quoted a change order for a statutory amendment. Is that normal?
It is common and it is the clearest signal that your requirements are modelled as a static checklist rather than as versioned rules. In a properly designed system your rules analyst publishes a new requirement version with an effective date and the engine keeps evaluating in flight applications against the version live when they were filed. If routine legislative change is billable vendor work, you will fall further behind every session and your staff will absorb the gap in spreadsheets nobody audits.
How should we approach converting our legacy licence history?
Triage before transformation. Identify everyone with a disciplinary action, an open case, a probation condition or a monitoring requirement and verify those records individually with staff, because that small population carries almost all the risk. Convert the routine remainder in bulk with a deduplication pass, and accept indexed images for historic detail that will never be queried. Keep the legacy system readable through a defined reconciliation period rather than decommissioning on cutover day.
Why do our duplicate licensee records keep reappearing after conversion?
Because the historic file predates any unique person identifier and the duplicates were created by real events: a surname change recorded as a new licensee, a clerk creating rather than searching, or two numbering schemes merged when boards combined. Deduplication has to be a supervised pass with staff who recognise the people, not an automated name match, and the new system needs a person identity that is separate from the licence so future name and address changes do not recreate the problem.
Which integration causes the most trouble after go live?
The outbound ones, because they fail silently. Compact adverse action reporting and National Practitioner Data Bank submissions have deadlines and correction processes that do not forgive a lost message, and nobody notices a failure until a partner asks why an action took days to appear. Build every reportable event as a durable message with retries, a delivery receipt and a visible queue with a named owner. Inbound, the criminal history response is the one that most often has nowhere to land and ends up in a shared inbox.
Is role based permission enough to separate licensing from enforcement?
No, and your counsel will say the same. Roles drift, exceptions get granted during busy weeks, and a permission matrix is not an answer when a respondent's counsel asks in discovery who viewed a file and when. Keep enforcement data in its own store with its own access model and an append only read log that survives independently of the application, and let only reason codes and case numbers cross into the licensing side.
Why does our renewal site slow down in the only week that matters?
Because hold logic is evaluated serially at the moment the licensee clicks renew, against partner systems that may or may not answer. Precompute instead: a nightly job evaluates every active licence against the hold rules and writes a status with a reason code and timestamp, and events that change a status recompute just that licensee. Renewal then reads an answer that already exists, and the same status object feeds your public lookup and verification endpoint.
What is the most commonly missed cost in a board software quote?
Legacy conversion, followed by the discipline module. Agencies quote their board count while the real driver is the pathway count, since each pathway is a distinct requirement set that must be captured from rules and confirmed by counsel. Orders, stipulations, probation conditions and ongoing monitoring is close to a second product, and folding it into a licensing quote is the usual reason these projects get renegotiated mid build. Accessibility conformance is a distant third and it is cheap only if designed in from the first screen.
Should we buy Thentia or MyLicense instead?
If you are a single board with one or two licence types, a few thousand licensees, a stable practice act and a modest disciplinary caseload, yes, and the discovery phase of a build would cost more than the licence. Buying is the right answer more often than agencies admit. Build when you are an umbrella agency with genuinely different statutes forced into one model, when your practice act changes most sessions, when compact reporting is manual, or when the investigative wall is currently a permissions setting.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
We run everything on Airtable and spreadsheets. When is it time to go custom?
The switch usually makes sense when you hit one of two walls: Airtable's record caps (125,000 records per base on the Business plan) or logic the tool cannot express, like multi-step approvals with conditional pricing. There is also a simple cost signal: 25 people on Business at roughly $45 per seat per month is about $13,500 a year, forever, for a tool you are already fighting. Custom is worth it when the workflow is core to how you make money; for peripheral processes, staying on Airtable is the right call.
How long does it take from first call to software my team can actually use?
Plan for four to six months: two to three weeks of discovery, two to four weeks of design, then a 10 to 16 week build with testing. In Digital Heroes delivery experience the schedule killer is not engineering speed but decision lag; a client who takes two weeks to approve wireframes adds two weeks to launch. Book a weekly 30-minute decision slot before kickoff and most of that risk disappears.
Should we build an MVP first or go straight to the full system?
MVP first, for almost everyone: ship the single workflow that carries the business value in 10 to 16 weeks, learn from real users, then fund phase two from evidence instead of guesses. The caveat is that an MVP is a small version of a well-built system, not a badly built version of a big one; the data model must already support what comes next. An agency that cannot tell you what they deliberately left out of your MVP has not designed one.
Does it matter which tech stack the agency wants to use?
Yes, but not in the way most buyers expect: the goal is boring, popular technology such as React, Node.js or Python, and PostgreSQL, because any future team can maintain it and hiring a replacement developer takes days, not months. The red flag is an agency-proprietary framework or an unusual language, which welds you to that one vendor no matter what your contract says about code ownership. A useful test: could you find three freelancers fluent in this stack within a week? If not, push back.
Does the tech stack matter, and which one should I ask for?
It matters less than agencies imply, provided it is boring. A mainstream stack, something like React or Next.js on the front end, Node.js or Python behind it, and PostgreSQL for data, means thousands of developers can maintain your system if you ever change vendors. Apply one test: ask how hard it would be to hire a replacement developer for the proposed stack, and walk away from anything built on an agency's in-house framework.
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.
Why do agencies charge for a discovery phase instead of quoting for free?
Because an accurate quote requires real work: mapping your workflows, finding the edge cases, and writing a specification, which typically takes 1 to 3 weeks and costs $2,000 to $10,000 at Digital Heroes depending on system complexity. You leave discovery owning a written spec and a fixed price you can take to any vendor, so the money is not locked into one agency. Free estimates are guesses, and the guess usually becomes your budget overrun six months later.
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.
How do I make sure custom software is secure and compliant with rules like HIPAA?
Start with the baseline every business system should have: encryption in transit and at rest, role-based access control, and audit logs. If HIPAA applies, the hosting provider must sign a Business Associate Agreement, which AWS, Azure, and Google Cloud all offer, and access controls have to be designed in from day one, not bolted on. SOC 2 certifies a company's operating practices, not a codebase, so ask vendors what they have shipped in your regulated domain rather than which logos are on their website.
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.
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?