Problems & solutions · Custom Software

State Tax Administration Software Problems: The 7 That Cost Real Money, and How to Avoid Them

State TAX Administration Software software overview illustration showing common problems and fixes.
The short answer

The most expensive failure at a department of revenue is a rules layer that stores only the current law. The legislature amends a rate retroactive to January of the prior year, and every period already filed and already assessed now has to be recomputed. A system that updates configuration in place cannot do it, so staff rebuild the old calculation in a spreadsheet from a printed copy of the repealed rule, and the department's position in an appeal ends up resting on that spreadsheet. The recurring cost is not the software, it is the shadow layer of manual work nobody documents and the assessments you cannot defend. A versioned rules service is a component in the $150,000 to $350,000 band over 16 to 24 weeks in our delivery experience, which is cheaper than one contested filing season.

Why does the rules layer get scoped as a rate table so often?

Because in a requirements workshop it presents as one. Somebody says the rates change every year, we need a screen to update them, and everyone nods. The estimate that follows prices a maintenance screen and a lookup.

Tax administration does not work that way. You permanently operate in several years at once. Your call centre is answering on a period filed three years ago, your audit division is assessing a period five years back, appeals is defending a position taken under a statute since amended twice, and processing is accepting current period returns under rules that took effect in January. Each of those conversations needs the law as it existed for that period, in a form you can show to an administrative law judge with the derivation visible.

Rate tables are only the surface. Bracket definitions, nexus thresholds, credit eligibility, apportionment formulas, penalty and interest rules and the definition of the taxable base all carry effective dates, and some are amended retroactively.

The fix is to insist that rules are versioned objects keyed to tax period, not configuration updated in place, and to say so in the statement of work. Every calculation evaluates against the version in force for the period being computed. A retroactive amendment produces a new version beside the old one, and the difference is the assessment or the refund. Ask a supplier to price that as a service other systems call, because you will call it from the portal, the audit tools and the warehouse.

What goes wrong when taxpayer identity and account history are migrated?

The entity graph is where migrations go wrong, and the damage is downstream rather than visible on day one. A mid size business in your state might hold a withholding account filing monthly, a sales tax account with a prepayment requirement, a corporate income account with quarterly estimates, and an excise account on its own schedule. Legacy systems are organised by tax type because the divisions were organised that way, so the same taxpayer exists several times with no authoritative link.

Then the history itself is messy in ways a script cannot resolve. Entities merge and reorganise, change federal identification numbers, operate through disregarded entities, and register locations that come and go. Responsible party liability attaches an individual to a business debt. A migration that flattens all of this into one row per taxpayer produces a system that looks clean and is quietly wrong.

The consequence is concrete: offsets. If the entity graph is wrong, your department takes a refund from a real person to satisfy a debt that was not theirs, and the letter explaining why will not survive contact with their representative.

The fix is to model relationships as effective dated edges rather than fields, and to migrate with an explicit confidence marker on every inferred link. Reconcile the migrated population against your last three filing seasons before anything writes to a notice. Nothing that can move money should run against an unverified link.

Why do legacy mainframe and inter agency interfaces break after launch?

Because they were treated as plumbing in the estimate and as a negotiation in reality. Three patterns account for most of it.

  • The batch window is not yours. The system of record runs on a schedule set years ago, and your new component wants data during it. Nobody discovers the collision until month end volumes arrive.
  • There is no documented interface. A mainframe with a file exchange and no specification is a discovery project, and the person who understands the layout is often one retirement away.
  • The other agency has its own release calendar. Offset participation, whether you are the offsetting agency or the referring one, moves money, so both sides have to agree it moved. Reconciliation is the part that gets cut and the part that gets audited.

The fix is to name every interface in the statement of work with its owner, its window and its reconciliation report, and to build against a captured sample of real production files rather than a specification document. Building next to something you cannot change is its own discipline, so ask a supplier for the specific legacy systems they have integrated, not general integration experience. Budget for the fact that the system of record will not be modified for your convenience.

What happens when federal tax information safeguards are not covered?

You retrofit, and retrofitting usually forces a redesign of the analytics layer. If your department receives federal tax information from the Internal Revenue Service, and most do, IRS Publication 1075 sets the safeguard requirements for handling it. Those requirements are architectural, not a network checklist handed to infrastructure after the application design is settled.

The obligations reach further than teams expect. Where the data may live and under what cloud arrangement. Who may access it and how that access is logged. How it is segregated from other data, which affects how you model tables and how you build reports. How developers reproduce a defect without touching production data. What evidence your agency can produce on a safeguard review, and whether that evidence is assembled by a person or generated by the system.

The teams that get caught are the ones who built a warehouse first and asked the question second, because segregation applied late means rebuilding the reporting layer.

The fix is to design for it from the first sprint. Tag data at field level by classification. Make access logging a property of the data layer rather than something each screen implements. Build a synthetic data generator so no developer ever needs production data to reproduce a defect. Evidence produced by the system beats evidence assembled by a person, and your reviewer will ask for evidence.

Should you build custom or configure what you already own?

Buy the core, and we will say this plainly because it costs us work. If your integrated tax system is genuinely at end of life across all tax types, run a proper procurement with the specialists. Fast Enterprises GenTax and Revenue Solutions have done dozens of these programmes and carry decades of encoded rules across many states. That domain content is not something any agency should pay a firm our size to rediscover, and a full replacement carries conversion risk on every open period simultaneously. Sovos occupies a different slot again, strongest on determination and compliance content rather than agency administration.

Custom earns its place in the surround, which is where packaged products are weakest and your department's needs are most specific. The taxpayer portal, because your taxpayers are your constituency and the portal is where the department is judged. Audit selection, because a score you cannot open is a governance problem before it is a technical one. Data exchange with other agencies, because those interfaces reflect your state's structure and nobody else's. Reporting and the warehouse, because you should not need a vendor ticket to answer a legislative question during session. And a rules service for a tax type under heavy legislative churn, so changes ship in weeks rather than in a release cadence.

Modernising one small, self contained tax type first is legitimate, but only if the entity model and the rules service are shared. If the new tax type gets its own taxpayer identity, you have built a second silo.

How do hidden costs get into the quote?

Mostly through units that look like one thing and behave like several.

  • Tax types counted as scope, not multiplied. Each carries its own forms, schedules, due dates, penalty rules and limitation clocks. Two tax types is not twice one, but it is nowhere near one.
  • Legacy discovery. An undocumented mainframe interface is a project of its own and it belongs on its own line.
  • Safeguard work priced as security review. Field level classification, data layer logging and synthetic data are build work, not a document.
  • Accessibility conformance. State policy usually mandates it, and retrofitting a portal is far more expensive than building to it.
  • Your own subject matter experts. They are the scarcest resource in any revenue modernisation and they are doing their day jobs during filing season. A schedule that assumes their availability in March is fiction.
  • Notice content and print. Changing what a notice says usually touches a print vendor, a mailing schedule and legal review.

Ask for the estimate broken down per tax type, per interface and per notice, and ask which weeks assume your staff are available.

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

Sequencing that delivers something usable on its own. A component that ships in 16 to 24 weeks and stands up alone, a portal, a rules service, an audit selection pipeline, an exchange interface, survives leadership changes and budget cycles. A programme whose first useful output arrives in year two does not, and revenue agencies change commissioners.

The second marker is inspectability everywhere it touches a taxpayer. Audit selection should record which model version selected each case and explain the top contributing factors, and you should hold out a random control sample. Without a control you cannot tell whether the model is finding new yield or simply selecting the cases your auditors would have found anyway, and you will not be able to answer either a representative or your own leadership.

When choosing a developer, ask how they would handle a rate change enacted in March, effective to January of the prior year, on returns already filed. The right answer is versioned rules keyed to tax period, recomputation as a new version rather than an overwrite, and a reconciliation report listing every account affected and the direction of the change. A team that describes updating a configuration table does not belong in this work.

Then settle ownership before kickoff: repositories, cloud accounts and the right to hire another firm. Digital Heroes hands all three to the client from the first commit. Your components will outlive several procurement cycles, and the department has to maintain them without asking permission.

Research & sources

The evidence behind this guide

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

  1. 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) →
  2. Retailers improving Core Web Vitals saw measurable gains: Vodafone improved LCP by 31% for 8% more sales, Lazada saw a 16.9% mobile conversion increase, and Cdiscount saw a 6% Black Friday revenue uplift. Source: web.dev (Google Chrome team) (2021) →
  3. Criteo's Global Commerce Review found retail apps convert at 18% versus 4% on mobile web (roughly 4.5x), and travel apps convert at 20% versus 6% on mobile web (about 3.3x). Source: Criteo (2017) →
  4. 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) →
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 rules are in a configuration table today. Why is that a problem?
Because a configuration table holds the current law and tax administration needs every law that has ever applied. When an amendment lands retroactively, or when appeals defends a period assessed five years ago, you need the version in force for that period with the derivation visible. Systems that update in place force staff to rebuild old calculations by hand, which is how a department ends up litigating from a spreadsheet nobody has reviewed.
What is the real risk in migrating taxpayer accounts from a legacy system?
The entity graph. Legacy systems are organised by tax type, so the same business exists several times with no authoritative link, and mergers, reorganisations, changed federal identification numbers and responsible party liability all need effective dated relationships rather than fields. Get it wrong and offsets take money from the wrong person. Reconcile the migrated population against your last three filing seasons before anything can generate a notice.
When should federal tax information safeguards be addressed in the project?
In the first sprint, not the security review. IRS Publication 1075 shapes where data may live, who may access it, how access is logged and how it is segregated, and those decisions affect data modelling, reporting design and how developers debug. Teams that build a warehouse first and ask afterwards usually have to redesign the analytics layer, which is one of the more expensive retrofits in this category.
Why do integrations with our mainframe keep slipping?
Because the interface is usually undocumented, the batch window belongs to a schedule nobody will move for you, and the system of record cannot be modified. Name every interface in the statement of work with its owner, its window and its reconciliation report, and build against captured production files rather than a specification. Ask a supplier which specific legacy systems they have worked against, not whether they have integration experience.
Can a smaller firm replace our integrated tax system more cheaply?
No, and treat the offer as a warning sign. A full replacement across every tax type carries conversion risk on every open period at once and depends on decades of encoded rules that Fast Enterprises and Revenue Solutions already carry. The defensible custom scope is the surround: the taxpayer portal, a versioned rules service, explainable audit selection and inter agency exchange, each shipping in 16 to 24 weeks.
Is machine learning safe to use for audit selection?
With two conditions. Every selected case must carry an explanation of the top contributing factors, because a score you cannot open becomes a governance problem the moment a representative or your own leadership asks why. And you must hold a random control sample, otherwise you cannot distinguish new yield from cases your auditors were already going to find. Keep the feature definitions in code your analysts can read.
What costs are usually missing from a revenue modernisation estimate?
Tax types priced as one scope item when each carries its own forms, due dates and penalty rules; discovery on undocumented legacy interfaces; safeguard work priced as a review rather than as build effort; accessibility conformance; notice content changes that touch a print vendor and legal review; and the availability of your own subject matter experts, who are unavailable during filing season no matter what the plan says.
Should we modernise one tax type first or wait for a full replacement?
Modernising one small, self contained tax type under heavy legislative churn is a legitimate way to prove the pattern and give the department something to point at before a large procurement. It only works if the taxpayer identity model and the rules service are shared with what comes next. If the new tax type gets its own entity store, you have built a second silo and made the eventual consolidation harder.
How do I vet a software development agency before signing a contract?
Ask to speak with two past clients whose projects resemble yours in size and industry, and ask exactly who will write your code, since some agencies sell senior faces and deliver junior or subcontracted hands. Demand a written specification with acceptance criteria before any fixed price, and check that their portfolio links to products that are actually live. An instant quote given without questions about your workflows is the clearest warning sign there is.
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.
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 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 many people should be working on my software project?
A typical $40,000 to $150,000 build runs on three to five people: a technical lead, one or two developers, a designer, and someone owning QA and project communication, often as overlapping part-time roles. More bodies do not make software arrive faster; past a point they slow it down with coordination overhead. The question that matters more than headcount is whether one named senior engineer is accountable for the outcome.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
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.
What should I prepare before contacting a software development agency?
A one-page brief beats a 40-page requirements document: the business problem in plain words, who will use the system, the 5 to 10 workflows it must handle, the tools it must connect to, and your budget range and deadline driver. You do not need wireframes, a specification, or technical vocabulary; producing those is the agency's job during discovery. Stating a budget range up front is the single best move, because it gets you honest scoping instead of a quote engineered to win the meeting.
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.
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?