Industry guide · Accounting

Tax Preparation Software: The Problems Off-the-Shelf Tools Leave You With, and What a Custom Build Fixes

The short answer

If you file more than roughly 1,500 returns a season across two or more offices and your firm administrator still keeps a spreadsheet that outranks every system you pay for, building is usually the right call. In Digital Heroes delivery experience across 2,000+ projects, a focused first release covering return tracking, document intake and the signature-to-acknowledgment loop runs $60k to $130k and ships in 12 to 16 weeks. A full platform with billing, capacity forecasting and multi-year rollover runs $150k to $400k, phased over 6 to 12 months. Below that volume, keep Canopy or TaxDome and spend the money on staff.

Why return tracking makes or breaks a high-volume tax firm

It is March 22. Your firm administrator has a client on hold asking whether her 1040 is done. The answer requires three logins: UltraTax CS to see if the return has been prepared, SmartVault to see whether the brokerage 1099 ever arrived, and Karbon to see whether the reviewer signed off. None of them agree. The whiteboard behind the front desk says "waiting on K-1," which was true on March 4. The preparer who wrote it is on a different floor of a different office and has already moved on to eleven other files.

This is the shape of almost every firm doing 1,500 to 6,000 returns a season. The tax engine (Drake Tax, Lacerte, ProSeries, UltraTax CS, or CCH Axcess Tax) calculates the return and files it. The portal (SmartVault, TaxCaddy, Liscio, ShareFile) holds the documents. The practice tool (Canopy, Karbon, Jetpack Workflow, TaxDome, XCM) holds the tasks. SafeSend Returns or TaxCaddy handles delivery and the 8879. Outlook holds every actual decision anyone ever made. And one Excel file, usually maintained by a single person who cannot take a day off between February and April, is the only place where the real status of every return lives.

Run the arithmetic on your own season. If each return gets its status looked up eight times across intake, prep, review, signature chase and delivery, and each lookup burns three minutes of a person hunting across systems, that is 24 minutes per return of pure coordination. On 2,400 returns that is roughly 960 hours. At a $95 blended loaded cost, it is about $91,000 of your busiest people doing nothing that touches a tax position. That number does not include the returns that quietly sit for nine days because everyone assumed someone else owned them.

Problem: nobody can answer "where is this return" without three logins

Your tax engine has a status field. It is preparer-entered, it is per-return-per-year, and it means whatever the last person to touch it decided it meant. Canopy and Karbon have their own status, driven by task completion, which lags reality because preparers close tasks in batches on Friday. Neither knows that the client emailed a corrected 1099-B on Tuesday.

Off-the-shelf tools cannot fix this because none of them is allowed to be the authority. CCH Axcess and Karbon both want to own workflow, and integrations between them are shallow: they sync client names and due dates, not the state machine. So the state machine ends up in a human head.

A custom build starts with one record: taxpayer, tax year, entity type, engagement. Every stage transition (received, in prep, in review, awaiting client, signed, transmitted, accepted, delivered, billed) is an event with an actor, a timestamp and a reason code. You pull return status and e-file acknowledgments from the tax engine on a schedule and reconcile them against your own ledger, so disagreement becomes a visible exception rather than a phone call. The screen your administrator opens shows every return in the firm, filtered by office, preparer, reviewer, days-in-stage and days-to-deadline, and it is right because nothing else is allowed to be.

Problem: document intake is a shoebox with a login screen

The portal solved shipping, not sorting. A client uploads 43 pages as one scanned PDF titled "taxes.pdf." Someone on your team, often a $28-an-hour seasonal admin, opens it, figures out that pages 12 through 19 are a consolidated brokerage statement, splits it, renames it and files it. Then the preparer opens the file three days later and discovers the K-1 from the client's LLC is not there, and the missing-item email goes out, and the clock starts again.

GruntWorx and AutoEntry do extraction, but they hand you data and stop. They do not know what is missing, because they do not know what the client had last year.

AI pays for itself in exactly one place here, and it is specific. Classify every page on upload: W-2, 1099-NEC, 1099-B, 1098, K-1, closing statement, prior-year return, junk. Extract the fields that matter and attach them to the return record with a confidence score, routing anything under threshold to a human queue rather than pretending. Then do the part nobody sells: diff this year's document set against last year's filed return. If the client had three K-1s in 2024 and two have arrived, the system knows what is outstanding by entity name, generates the missing-items list without a preparer writing it, and chases it. Chasing runs at 7pm on a Tuesday by SMS with a one-tap upload link, escalating to the relationship partner only after the third silent attempt. In practice this is where firms recover the most hours, because the chase is the work.

Problem: the 8879 chase and the e-file reject nobody owns

Delivery is where a well-prepared return goes to die. The return is done on April 2. The 8879 goes out. The client does not sign. Nobody notices until April 12 because the signature status lives in SafeSend and the deadline lives in someone's head. Meanwhile a return you transmitted on March 28 came back rejected from Modernized e-File over a dependent SSN mismatch, and the acknowledgment landed in a shared inbox that three people half-watch.

SafeSend Returns is good at what it does and prices per return, which is fine until you understand that its status never reaches the one dashboard your partners look at. Reject codes are the sharper failure: a rejected return is not a filed return, and after April 15 the perfection window is short.

A custom build treats acknowledgments as first-class inbound data. You ingest ack files from the tax engine, map reject codes to a named owner and a required action, and open a timed exception that cannot be closed silently. Signature requests carry the identity verification your remote 8879s require, and unsigned forms age visibly: on a screen, by hours, sorted by deadline exposure, with automated reminders that stop the moment the signature lands. Your April 10 extension decision becomes a filter, not a fire drill.

Problem: you cannot see capacity until you are already underwater

Every firm owner makes the same February discovery: one office is drowning and another has a reviewer with slack, and by the time that is obvious it is too late to move work. Practice tools show you task counts. Task counts are not capacity, because a 1040 with a Schedule C, rental property and three states is not the same unit of work as a W-2 return.

Build a complexity score from data you already own: prior-year forms count, state count, K-1 count, entity type, whether last year required review rework. Weight each open return by it, sum by preparer and reviewer, and compare to remaining working hours before the deadline. Now the burn-down is real, and routing is a decision rather than a reaction. Forecasting here is honest AI use: a model trained on your own last three seasons predicts cycle time per return type per preparer, which tells you on February 8 that you will miss roughly 60 returns, while you can still hire, extend deliberately, or shift files between offices.

Problem: fixed fees quoted in December against work that mutated in March

You quoted $525 for a 1040 in the engagement letter. The client's bookkeeping was a mess, the preparer spent 2.4 hours cleaning it, and nobody re-priced because re-pricing in season means a conversation nobody has time for. Multiply by 200 clients and the leakage funds a partner's salary. Ignition handles the proposal, your tax engine handles the return, and nothing connects the scope you sold to the work you did.

A custom build ties the engagement's scoped items to the actual return record, flags in real time when work exceeds scope (extra states, extra K-1s, cleanup hours past a threshold), and puts an out-of-scope prompt in front of the preparer at the moment it happens, with a pre-written client message. Realization per return, per preparer, per office becomes a number you see weekly instead of a post-season autopsy.

What a custom build costs and how long it takes

Across 2,000+ projects, Digital Heroes sees this category land in two bands. A focused first release covering the return ledger, document intake with classification and the missing-items engine, the signature and acknowledgment loop, and one live dashboard runs $60k to $130k and ships in 12 to 16 weeks, deliberately timed to land before a season rather than during one. A full platform adding capacity forecasting, billing and realization, client-facing portal, multi-year rollover and multi-office reporting runs $150k to $400k, phased over 6 to 12 months.

What pushes price up in tax specifically: the number of tax engines you have to read from (a firm running both Lacerte and CCH Axcess after an acquisition roughly doubles the integration surface, and CCH Axcess data access is harder than Drake's); state e-file coverage; hosted environments like Rightworks or Citrix that constrain how you reach the data; the security work that the FTC Safeguards Rule and IRS Publication 4557 require, including your written information security plan, encryption at rest, access logging and MFA; Section 7216 consent tracking if you ever want to use return data for anything beyond preparing the return; and migrating five to ten years of prior-year documents so the year-over-year diff works on day one. That last item is routinely underestimated and is worth budgeting as its own line.

Build vs buy: take the position honestly

Buy if you are a single office under roughly 1,200 returns with one dominant service line. TaxDome or Canopy plus Drake will cover you, and a custom platform will cost more than the coordination it saves. Buy if your partners are three years from selling, because the acquirer will migrate you to their stack anyway. Buy if you have nobody internally who will own requirements: software built without a firm administrator in the room becomes shelfware by February.

Build when these signals show up together. Your administrator's spreadsheet outranks every system you license. You added a second or third office and reporting now means someone consolidating exports by hand. Your seasonal staff cost is climbing while return count is flat, which means coordination is eating the margin. You lost a client over a missed deadline that no system flagged. Or you have a real service edge, high net worth, multi-state, a specific industry niche, that the generic tools force you to describe in fields built for someone else's firm. At that point the off-the-shelf stack stops being the cheap option and starts being the reason your seasonal payroll keeps climbing.

How to choose a developer for tax preparation software

Make them diagram the domain in the first meeting, before you pay anything. If they cannot articulate why the primary key is taxpayer plus tax year plus entity, why an amended return is a new record rather than an edit, and how a joint return that becomes two separate returns after a divorce is handled, they will learn it on your money.

Make them prove integration reality, not integration slideware. Ask specifically how they would read return status and acknowledgments out of your engine: Drake, Lacerte, UltraTax CS and CCH Axcess each expose data differently, and some of it is export files rather than an API. A developer who says "we will integrate with your tax software" without naming the mechanism is guessing.

Test them on compliance as engineering, not as a checkbox. They should bring up the FTC Safeguards Rule, your WISP obligations under IRS guidance, e-signature identity verification for remote 8879s, audit logging on every view of taxpayer data, and retention policy, before you do. Ask where the data will be hosted and who on their team can access production.

Finally, insist on a delivery plan built around your calendar. Anyone proposing a go-live in February has never watched a firm in season. The right answer is a release that lands in September or October, gets run against extension season, and is hardened before January. And get the code and the repository in your name from commit one, with the deployment runbook written down.

Research & sources

The evidence behind this guide

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

  1. Citing Ardent Partners' State of ePayables research, manual invoice processing costs about $12.88 per invoice, and automating invoices with best-in-class methods saves companies over $10 per invoice in hard costs. Source: Bottomline Technologies (citing Ardent Partners) (2024) →
  2. Deloitte reports that modern ERP implementations aim to deliver reduced manual effort, greater transparency, a single source of truth, and increased productivity, but many organizations do not capture the full expected benefits (a significantly lower ROI) without disciplined strategy, change management, and data readiness. Source: Deloitte (2024) →
  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. Median SaaS spend reached $9,455 per employee, and organizations leave an average of 36% of their SaaS licenses unused. Source: Zylo (2026) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

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

FAQ

Frequently asked questions

How much does custom tax preparation software cost for a firm filing 2,500 returns a season?
Expect $60k to $130k for a focused first release covering return tracking, document intake and the signature-to-e-file loop, delivered in 12 to 16 weeks. A full platform adding billing, capacity forecasting and multi-office reporting runs $150k to $400k across 6 to 12 months. Those are Digital Heroes delivery bands across 2,000+ projects, and the biggest swing factor is how many tax engines you need to read from.
Should we build custom software or just use Canopy or TaxDome?
Use Canopy or TaxDome if you are a single office under roughly 1,200 returns with one main service line, because a custom build will cost more than the coordination it saves. Build once your firm administrator's spreadsheet outranks every system you license, or once you have multiple offices and consolidated reporting means manual exports. The tipping point is usually multi-office plus high volume, not volume alone.
Can custom software integrate with UltraTax CS, Lacerte, Drake or CCH Axcess?
Yes, but the mechanism differs by engine and matters a lot for cost. Some expose usable data access and some effectively require scheduled export files or database reads inside a hosted environment like Rightworks or Citrix. Ask any developer to name the exact mechanism for your engine before signing, because running two engines after an acquisition roughly doubles the integration work.
Would we have to replace our tax engine?
No, and you should not. The tax engine calculates and transmits the return, and replacing it means retraining preparers mid-career for no gain. A custom build sits above it as the system of record for status, documents, deadlines and billing, reading return status and e-file acknowledgments back from the engine so disagreements surface as exceptions instead of phone calls.
How does AI actually help a tax firm, beyond the marketing?
Three places pay off concretely: classifying and extracting fields from uploaded documents with a confidence threshold that routes low-confidence pages to a human, diffing this year's documents against last year's filed return to auto-generate the missing-items list, and running the after-hours chase by SMS with one-tap upload links. A fourth, forecasting cycle time from your own last three seasons, tells you in early February whether you will miss the deadline while you can still act.
What compliance requirements affect building tax software?
The FTC Safeguards Rule and IRS Publication 4557 drive encryption at rest, multi-factor authentication, access logging and a written information security plan. Remote 8879 signatures require identity verification, Section 7216 governs any use of return data beyond preparing the return, and you need audit logging on every view of taxpayer data plus a retention policy. Treat these as engineering requirements scoped into the build, not paperwork added at the end.
How long does migrating years of client documents and prior returns take?
Budget it as its own line item, typically four to eight weeks running parallel to the main build for five to ten years of documents from SmartVault, ShareFile or a file server. It matters because the year-over-year document diff, the feature that kills the missing-items chase, only works if prior-year data is in the system on day one. Firms consistently underestimate this and then launch without the feature that justified the project.
Do we own the code if we hire an agency to build this?
You should own the repository, the code and the deployment infrastructure from the first commit, with the runbook documented and your name on the cloud accounts. Get this in writing before work starts, because agencies that host the code in their own accounts create leverage you will feel later. Ownership also means a second developer can take over without a rewrite.
When should we start a build so it does not collide with tax season?
Start in spring or early summer so the release lands in September or October, gets exercised through extension season, and is hardened before January. Any developer proposing a February go-live has not worked with a tax firm in season. A 12 to 16 week first release started in May comfortably clears that window with time for staff training.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
Can I extend QuickBooks with custom features instead of replacing it?
Yes, and it is often the right first step. QuickBooks Online has a public API, so an agency can build a custom layer for quoting, inventory, or field service that pushes clean transactions into QuickBooks, which stays your ledger of record. Roughly half of the accounting engagements Digital Heroes scopes start this way because it costs a fraction of a full build and leaves your accountant's workflow untouched.
How much do developers charge per hour for accounting software work?
In the competing quotes clients share with Digital Heroes, established US and UK agencies charge $90 to $200 an hour for accounting and fintech work, senior freelancers $60 to $150, and offshore teams $25 to $60. We price accounting builds as fixed-scope milestones instead, because hourly billing on ledger work rewards slow debugging. Compare total quoted cost against your workflow list rather than comparing rates against rates.
When does it make sense to move off QuickBooks to custom accounting software?
Move when you are paying people to work around the tool, not when the subscription feels expensive. Common triggers are hitting the 25-user cap on QuickBooks Online Advanced, consolidating multiple entities in spreadsheets, or a billing model that forces manual journal entries every month. If your team spends several hours a week exporting to Excel just to answer basic questions, you are already paying for custom software in salaries.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
How much does custom accounting software cost for a small business?
Most small business accounting builds land between $25,000 and $75,000 for a working first version, while a full double-entry platform with invoicing, payroll, and reporting runs $100,000 to $250,000. Across 2,000+ projects at Digital Heroes, the biggest cost driver is how many external systems the software must connect to, not the accounting logic itself. A tool that automates a single painful workflow, like reconciliation or job costing, can come in under $20,000.
How long does it take to build custom accounting software?
A focused first version takes 10 to 16 weeks, and a complete QuickBooks-class replacement takes 6 to 9 months. In Digital Heroes delivery data, schedules slip most often during data migration and bank feed integration, so we budget those two phases at double the first estimate. Treat any promise of a full accounting system in under two months as a warning sign.
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 happens to my accounting software if the agency shuts down?
If you own the repository, the hosting accounts, and the documentation, another team can take over within weeks, usually before a missed closing cycle does real damage; if the agency owns any of those, you have a hostage situation. Before signing, confirm the code sits in your GitHub or GitLab organization, hosting bills to your card, and a written deployment runbook exists. A competent agency agrees to all three without friction, and hesitation is itself the answer.
How many developers does it take to build accounting software?
The standard Digital Heroes team is 4 to 6 people: a backend developer, a frontend developer, a QA engineer, a part-time designer, and a project lead who owns the accounting logic. A single-workflow automation can ship with two people, while multi-entity platforms with payroll can need eight. Headcount matters less than having one named person accountable for the books balancing.
How small can the first version of my software be and still be worth building?
One workflow, end to end, for one type of user: the single process that currently burns the most hours or loses the most money. In Digital Heroes delivery experience, first versions scoped to 6 to 10 weeks of build time ship, get used, and generate the feedback that makes version two obviously right, while 9-month first versions routinely launch with features nobody touches. Everything you cut from v1 gets cheaper to build later, because real usage reorders the roadmap for you.
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?