13

The accountant's edition: what to build so a US tax preparer brings their clients to us

Chapter 12 found the customer: not the small business, but the person who signs its return. A US tax preparer has between fifty and three hundred clients, chooses the accounting software those clients use, and spends January to April doing work that is mostly data janitorial — chasing documents, categorising transactions, and turning a year of bank lines into a trial balance that a tax package will accept. This chapter is the build order for making Ledger123 the place that work happens: what a season actually looks like, what the competition gives away, which twelve modules to build and in what sequence, what has to change in the hosting itself, and what to charge.

2026-08-26 · a plan, not a survey. Prices are those published for 2026; every enhancement referenced by number belongs to an earlier chapter of this book, so this chapter mostly sequences work already specified rather than inventing it.
Executive summary

Sell to the practice, not to the business: one preparer decides for a hundred datasets, and the timing is unusually good, because Intuit is retiring QuickBooks Online Accountant during 2026 and replacing it with a new suite whose upper tier costs $149 a month. What a preparer will move for is not features in general but four specific hours: chasing documents, categorising bank lines, building the trial balance, and getting it into Drake, Lacerte or UltraTax. So the first wave is a practice console, a trial balance with adjusting entries and form-line mapping that exports in those packages’ own import formats, a client request-and-question queue, and a bank-statement importer with rules — roughly ninety days of work, most of it already specified in chapters 1, 6 and 7. Chapter 15’s Swiss fork has already solved a surprising amount of this — a Ledger Doctor, a suspense-account rebooking screen, per-user period locks, row-snapshot logs and a chat thread on every booking — and section 13.6 lists what to port and what to rebuild. The hosting has to change too: staff seats and per-client billing, MFA on every login, an audit log, self-service backup and restore, a US region, and a security package the preparer can staple into the written information security plan the FTC Safeguards Rule now requires of them. Price per client dataset, not per seat: $9 a month against QuickBooks Simple Start’s $38 and Keeper’s $8–10 leaves room to be the cheapest serious option in the practice’s stack while a fifty-client firm still pays us $4,440 a year.

13.1The customer changes shape

Every earlier chapter of this book sold to a business. This one sells to a practice, and the difference is arithmetic. A small business buys one dataset, decides slowly, and churns when it fails. A preparer buys fifty to three hundred datasets, decides once, and each client that arrives brings a year of recurring revenue with no marketing cost attached. The same fact makes them a harder sale: they are choosing what they will live inside for four months of every year, and switching cost is measured in client anxiety.

Selling to a businessSelling to a practice
Datasets per sale150–300
Who does the data entrythe owner, badly, in arrearstrained staff, to a deadline
What they are buyinginvoices, VAT, a look at the bank balancehours removed from January to April
What they pay for ittens of dollars a monthhundreds of dollars a month, spread across clients
How they are reachedsearch, content, word of mouth — chapter 10the same, plus one channel that does not exist for businesses: the practice-management and preparer communities
Why they leavethe business closesa season goes badly — which is why the first release must land in May, not February

The economics from chapter 12 section 9 are the argument. A preparer bills $185 to $280 for a simple 1040, $500 to $2,500 for a company return, and $150 to $450 an hour for everything else. Two hours saved on a client is worth $300 to $900 of capacity in a season when capacity is the binding constraint. Against that, software at $9 a client a month is a rounding error — but only if it removes hours that are actually being spent, which is what the next section is for.

13.2Where a season’s hours actually go

A US tax engagement for a small business runs the same twelve stages every year. Read the third column: it is the entire product specification.

StageWhat the preparer does nowWhat would remove the hour
1 · EngageEngagement letter, §7216 consent if any work goes offshoreTemplates in the portal, e-signed and filed against the client — a small thing that anchors everything else
2 · AskSends an organiser and a document list; chases it by email for six weeksA request list the client sees on one page, with upload, status and reminders that send themselves
3 · IntakeReceives statements, receipts, payroll reports, 1099s in a dozen formatsAn inbox that accepts everything, deduplicates by hash and files it against the period
4 · ImportLoads bank and card activity, often by hand from PDFsCSV, OFX and QIF import with per-account column memory, then feeds for those who will pay for them
5 · CategoriseThe single largest block of time: coding a year of lines to accountsRules that learn per client, and a suggestion engine — chapter 9 item 1
6 · Ask again“What was this $940 to Home Depot?” — by email, one at a timeA questions queue: unknown transactions pushed to the client, answered in the portal, posted on reply. This is what Uncat sells for $9 a client a month
7 · ReconcileBank and card reconciliations, payroll to the 941s, sales tax to the returnsA reconciliation screen that survives the year, plus the payroll worksheets of chapter 7 enhancement 2
8 · CloseDepreciation, accruals, prepayments, owner’s draws, loan interest splitsFixed asset register and schedules — chapter 4 items 1 and 2 — and a closing checklist that remembers last year’s entries
9 · Trial balanceExports to Excel, adds adjusting entries in a side column, ties to prior yearA working trial balance with prior-year, adjustment and final columns, and the adjustments posted back as real journal entries
10 · Map and exportAssigns each account to a tax form line, keys or imports it into Drake, Lacerte, UltraTax or ProConnectForm-line mapping that remembers last year, and an export in each package’s own import layout — chapter 7 enhancement 1
11 · Review and fileA second pair of eyes, then the return goes out under an EFINLocked periods, a reviewed flag, and an audit log that shows what changed after review — chapter 1 item 7
12 · Deliver and planK-1s, copies, estimates for next year, the client’s questions in AugustThe estimates worksheet of chapter 7 enhancement 3, and a portal the client still has in August
Finding

Only two of the twelve stages are tax work. The other ten are document logistics, categorisation and reconciliation — which is to say bookkeeping, which is to say the thing a general ledger is for. We do not need to become tax software to take this work; we need to be the best place in the world to arrive at stage 9 with clean books.

13.3What the competition gives a preparer, and what it costs

Two layers exist. The ledger the client keeps, which the preparer chooses and often pays for, and the practice tools the preparer buys for themselves.

ProductWhat the preparer getsPrice in 2026
QuickBooks Online AccountantOne login over every client file, a client list with status, a books-review tool, workpapers and a hand-off into Intuit’s own tax software; free to the firm, with the client paying the subscriptionfree — being retired
Intuit Accountant SuiteIts replacement during 2026: firms move to a free Core plan; the Accelerate tier and the books-close add-on became paid on 1 May 2026. The ProAdvisor programme is replaced by a new global programme in January 2027Core free · Accelerate 149 a month
QuickBooks Online, what the client paysThe ledger itself38 · 85 · 140 · 340 a month
Xero partner programmePractice console, partner discounts, Hubdoc for documentsdiscounted by volume
TaxDome, Canopy, Karbon, Financial CentsPractice management: jobs, deadlines, client portal, e-signature, invoicing828 – 1,704 per user a year
KeeperMonth-end review, client questions, a preparer-branded portal96–120 per client a year
UncatOne job only: uncategorised transactions, asked and answered9 per client a month
XenettClose review and reconciliation on top of the ledger5,000–20,000 a year
Plate 13.1 · The opening

Every accountant in America is being moved off a product they knew this year, onto a suite with a new name, a new navigation and a paid tier — and their loyalty programme is being replaced in January 2027. Software migrations are the only moments practices reconsider anything. The release that matters is the one that is finished, documented and demonstrable before the 2027 season starts, which means before December 2026, which means the ninety-day plan in section 13.9 starts now.

13.4What we already have

More than it looks, because three of this book’s chapters describe code that exists in forks and can be ported rather than written.

CapabilityStateWhere it is
One account, many client datasets, provisioned in one transactionhaveThe panel: sign-up, dashboard, datasets/new, status, delete, backup download; provision_dataset creates the database, loads the schema and chart, and writes the login row
Per-dataset logins, roles, an access-control listpartialmember and session tables; acs is a menu filter, not enforcement — chapter 1 item 8 and chapter 2 item 1
Full double-entry ledger, AR, AP, inventory, payroll, projectshaveSQL-Ledger itself
GIFI codes on every account — a form-line mechanism already in the schemahaveThe hook chapter 7 enhancement 1 generalises to US forms
Document store with hash deduplication, drag and drop, ZIP queueportThe Tekki fork, chapter 16
Receipt inbox, JSON API, portal hooks, transaction log, Ledger DoctorportThe Run my Accounts fork, chapter 15
XLSX export on every report; database snapshots; GPG backupsportThe Tekki fork again — and XLSX is what an accountant actually wants
Customer and vendor portalsbuildChapter 14’s WordPress plugins, or the panel
Bank statement import and matchingbuildChapter 1 item 1
A practice consolemissingChapter 7 enhancement 4 sketches it; section 13.5 specifies it

13.5The twelve modules, in dependency order

Three waves. Wave one is what a preparer needs before they will move a single client; wave two is what stops them leaving after the first season; wave three is what makes the product hard to leave at all.

aWave one — without these there is no sale

ModuleWhat it isTouchesEffort
1 · Practice consoleA practice account on the panel that owns many client datasets: client list with year-end, status, last activity and open questions; staff seats with per-client access; one login that opens any client without a second password. Built on what the dashboard already does for one owner’s datasetsthe panel, SL/Members.pm, one schema change on the registrymedium
2 · Working trial balancePrior year, current year, adjustments, final — four columns and a difference. Adjusting entries keyed on that screen post as real journal entries in a dated adjustment batch, so the books and the return agree afterwards. A locked period stops the client editing what was filedSL/RP.pm, a new bin/mozilla screen, one schema upgrade for the batch and the lockmedium
3 · Form-line mapping and exportChapter 7 enhancement 1, finished to the point of a file another program reads: Schedule C, 1065, 1120-S and 1120 line maps, assigned on the chart, remembered per client, exported as the CSV that Lacerte and UltraTax import and as the workbook Drake imports. The published claim by tools that do this is thirty to sixty minutes a client down to five or tenSL/AM.pm, SL/RP.pm, the US chart filesmedium
4 · Requests and questionsTwo queues, one page each. Requests: the documents the preparer needs, with upload, status and automatic reminders. Questions: any transaction the preparer marks “ask the client”, answered in the portal, posted on reply with the answer stored against the line. This is the module that turns six weeks of email into a listthe panel or chapter 14’s portal, acc_trans plus one note tablemedium-large
5 · Bank import with rulesCSV, OFX and QIF, with a saved column map per bank per client, duplicate detection by date-amount-reference, and rules that learn: payee contains X, amount between Y and Z, post to account A. Chapter 1 item 1, with the rules made per-clientbin/mozilla/im.pl, one bankline table, a rules tablemedium-large
6 · Review, lock and logA period lock the client cannot cross, a “reviewed by, on” stamp per period, and the mandatory audit log of chapter 1 item 7 — because the preparer’s question is always “what changed since I filed?”SL/Form.pm audittrail, SL/AM.pm defaults, every posting pathmedium

bWave two — what keeps them after the first season

ModuleWhat it isTouchesEffort
7 · Migration in“Bring your clients” has to be literal: import from QuickBooks Online and Desktop and from Xero — chart, customers, vendors, opening trial balance, and transaction history where the export allows. One screen, one file, a mapping step, a report of what did not importbin/mozilla/im.pl, SL/IM.pm, a converter per sourcelarge — and the highest-leverage large thing in the book
8 · The January module: 1099sVendor tax flags and TINs, payments per vendor per calendar year by box, the IRIS CSV layout, and the W-9 collected in the portal. Chapter 1 item 11 and chapter 7 section 8SL/AP.pm, vendor screens, one schema upgrademedium
9 · Close packFixed asset register with depreciation schedules, prepayments and accruals, and a closing checklist that carries last year’s entries forward as suggestions. Chapter 4 items 1 and 2SL/AM.pm, new tables, one reportlarge
10 · Payroll to the formsDate-effective tables and the 941, 940 and W-2 worksheets of chapter 7 enhancement 2 — the reconciliation a preparer does in April against what was filed in JanuarySL/HR.pm, bin/mozilla/hr.plmedium-large
11 · Documents and receiptsThe fork ports: hash-deduplicated reference documents, the receipt inbox, and extraction into a draft entry — chapter 9 item 2. A receipt attached to the line is what survives an audit three years laterported from chapters 15 and 16medium
12 · Reports an accountant recognisesXLSX on every report, prior-year comparatives everywhere, a general ledger detail report that prints for a whole year, and the report library of chapter 2 item 5SL/Spreadsheet.pm ported from chapter 16, SL/RP.pmmedium

cWave three — the moat

ModuleWhat it isWhy later
Bank feedsA live connection through an aggregator, per chapter 6 item 3Money: aggregators quote around $0.30–$3.00 per connected item a month with four-figure minimums, and a median customer spends about $9,000 a year. Sell it as an add-on at cost plus margin once volume justifies the contract — file import first
Learning categoriser and anomaly reviewChapter 9 items 1 and 4It needs a year of the tenant’s own coded history to be any good. Ship rules first, learning second
API and MCP serverChapter 6 item 1 and chapter 9 item 3Larger practices automate; it is also how a preparer’s own tooling and any AI assistant reach the ledger safely
White-label portalThe practice’s name, logo and domain on everything the client seesKeeper charges for exactly this. It converts a tool into the practice’s own product
Multi-entity viewsCombined statements across datasets — chapter 4 item 8For the client with three companies, and for the practice’s own reporting

13.6The Run my Accounts dividend

Chapter 15 catalogues a Swiss fiduciary that has been running, since 2013, precisely the business a US tax preparer runs: hundreds of client datasets, salaried staff doing the books, documents arriving in every format, a filing deadline, and a client who answers questions slowly. It runs it on this codebase. That makes it the most valuable single source in this book for the present chapter — not as a competitor to imitate but as thirteen years of answers to questions we are about to ask. Two kinds of thing are there for the taking: code in the open fork, which can be ported, and designs in the closed platform, whose schema is documented well enough to rebuild.

aIn the fork, portable now

What it isWhat it does for a preparerWhere it livesModuleEffort
Ledger DoctorThe triage list for a client you have just inherited: unbalanced journals, paid-versus-booked mismatches, orphan rows, blank rows, missing dates, bad line-tax rows — found and listed instead of discovered in April. This is the cleanup stage’s first screen, and it is already writtencustom_am.pl2, 6small-medium
Extended transaction logEvery re-post and every delete copies the old header and its lines into ar_log, ap_log and gl_log. “What changed since I filed?” becomes a query rather than an argument — row snapshots, simpler and stronger than our audit trailthe fork’s log tables6small-medium
Clearing-account rebookingThe suspense-account screen: stand in the account ledger of the clearing account, see the open AR and AP invoices beside the unidentified lines, and rebook. Every US practice keeps an “Ask my accountant” account; this is the tool that empties itcl.pl5medium
Per-user closing date, GL on hold, financial yearsemployee.closedto with Form::closedto_user locks the client and the junior out of a filed year while the reviewer still posts adjustments; gl.onhold parks a doubtful entry; financial_year rows carry OPEN, CURRENT and CLOSED. This is exactly the lock module 2 needs, with the per-user refinement we had not thought ofthe fork’s employee and GL tables2, 6small
Default accounts on the counterpartycustomer.income_accno_id and vendor.expense_accno_id, with chart.parent_id giving the chart a hierarchy. Half of categorisation is “this vendor is always that expense”; master data answers it before any rule engine runsmaster-data columns5small
Generic CSV importer with a mapping stepIM::prepare_import_data parses any delimited file into the report structures and then reuses the standard import path — which is the per-bank, per-client column map module 5 was going to have to inventSL/IM.pm5small-medium
The small habitsLast-used report columns (lastused, Form::get_lastused), searchable dropdowns on every select, and a dispatch method per customer and vendor so the batch queue knows who gets post and who gets e-mail. Nothing here is clever; all of it is what makes a junior fast on the fortieth client of the weekthe fork’s usability layer1, 12small
api.plA Mojolicious::Lite service over this same codebase whose POST /post_payment builds a $form and calls CP::post_payment. It is proof that the API of wave three can be written without rewriting the ledger — and the pattern for every endpoint after itapi.pl in the forkwave 3small-medium

bIn the closed platform, worth rebuilding

These are not portable — they live in the Mojolicious platform, not the ledger — but chapter 15 reads their schema off the database, and the design is the expensive part. Chapter 15 section 7 now carries that design as forty-one working mock screens with a build prompt per module; the rows below say which of them a US preparer needs.

Their designWhy a preparer wants itWhat we would buildModule
Controlling checklist with a checked hashxcontrolling_log carries a key, a hash of what was checked, and who checked it; xabschluss drives what the site sells as “the annual close in eighteen steps”Review that survives change. A transaction ticked as reviewed is hashed; if anything in it moves afterwards, the checklist reopens it by itself. That is the difference between a review flag and a reviewA reviewed stamp with a content hash on the transaction, a per-period checklist that carries last year’s steps forward, and a reopened-since-review report6, 9
Chat on bookings — a chat table of trans_id, message and employee, surfaced in the client portalThe questions queue of module 4, but anchored to the transaction rather than to an email thread: the answer lives where the entry lives, and is still there in an audit three years laterThe same table, the client half in the portal, the preparer half in the account ledger, and an “open questions” count per client on the console4, 1
Stations — the organisation modelled as stations, users assigned to them, sequential multi-level approval across document classes, with a document counter on eachA practice is a production line: intake, coding, review, filed. Stations give the partner a number per stage and the junior a queue instead of an inboxA status per document and per period, a queue view per stage on the console, and the approval rules of chapter 4 item 3 behind them1, 6
Scanning with recognition and human validation — machine extraction, then “validation by specialists”, sold at CHF 2 a documentIt is the only honest shape for document intake: extraction is right most of the time, and a person confirms the rest. It also turns intake into a priced service rather than an unpaid choreThe receipt inbox of module 11, the extraction of chapter 9 item 2, and a validation queue where a person confirms a draft entry before it posts11
Bank import events and fuzzy matchingbanking_import_event with status, IBAN, currency, totals and source; matching by full text and Levenshtein distance on the counterparty name, with legal-form tokens (AG, GmbH, Sàrl, LLC) seeded as words to ignoreBank matching fails on names, not amounts. Their answer — strip the legal form, then fuzzy-match the rest against customers and vendors — is the one our importer should ship with, in a US stop list: LLC, Inc, Corp, Co, LP, LtdAn import-event row per file so a re-import is idempotent, and a matcher with the same two stages5
Live notifications and a daily dashboard — e-mail on incoming payments and on overdue invoices; a portal dashboard of liquidity, receivables and payablesWhat the practice console owes a partner who opens it on Monday: what moved, what is late, what is waiting on a clientConsole signals: last activity, unanswered questions, unreconciled accounts, periods not closed1
Two-factor authentication and a login log; two data centres and a daily snapshotEverything section 13.7 says a US practice will ask us for, a Swiss fiduciary already had to answer for its own regulatorConfirmation, not novelty — build it firsthosting

cThe part that is not code: how they charge

Run my Accounts does not sell software to businesses that keep their own books; it sells bookkeeping, with the software underneath, and it prices the work by the booking.

Their tierMonthlyPer bookingReading
Startup, software alonefreeThe ledger is the loss leader; the service is the business
SCHF 0CHF 1.80Pay only for what is booked — the tier a new client can say yes to
MCHF 35CHF 1.40Volume buys a lower unit price; the monthly fee buys the relationship
LCHF 290CHF 0.95
ScanningCHF 2 a documentIntake priced separately, because intake is labour

For us that is a second, optional price list rather than a replacement for the one in section 13.8. Some practices want software and will do their own data entry; others — particularly the small preparer drowning in January — would rather hand the shoebox to somebody else and check the result. The second customer is the offshore practice of chapters 7 and 12 seen from the other end, and the per-booking price is how it is quoted without either side arguing about hours.

Finding

The structural lesson is in chapter 15’s last period: of the fork’s 474 recent commits, two-thirds are schema with no Perl consumer at all — SQL-Ledger has become the data layer beneath a Mojolicious platform that owns the screens, the portal and the integrations. Every module in section 13.5 should be built the same way: the preparer’s console, queues and portal in the panel over an API, the ledger left as the engine. It is the difference between a fork that must be maintained and a product that can be shipped weekly.

13.7What has to change in the hosting itself

The modules above are the ledger. This section is the service around it, and it is where a practice’s due diligence actually lands — because under the FTC Safeguards Rule the preparer must assess and contract with the vendors that hold their clients’ data, and must be able to show they did.

ChangeWhyState today
Practice accounts and staff seatsOne firm, many staff, per-client access; a departing bookkeeper must lose access to sixty datasets in one clickone account owns many datasets; no seats
Multi-factor authentication, everywhereNot optional: the amended Safeguards Rule has required MFA on every system holding customer information since June 2023, and IRS Publication 5708 expects it for every user, in-office included. A preparer cannot lawfully put clients on a system without itmissing — build first
Session policy, IP allowlist, SSO laterTimeouts, device list, forced sign-out; allowlisting for the firms that asksessions exist; policy does not
Access and change logs, exportable“Who opened this client, and when” is a Safeguards question and an audit question. Pair it with chapter 1 item 7 inside the ledgerbuild
Self-service backup and restoreBackup download exists; restore, point-in-time copies and a sandbox clone of a client do not — chapter 4 item 6, and the Tekki fork’s snapshotsbackup only
A documented US regionFirms ask where the data sits before they ask what it costs. Decide it, document it, and name the subprocessorsdecide
A security packageOne PDF: encryption in transit and at rest, backup and retention schedule, access controls, incident response and notification timetable, subprocessor list, and a completed vendor questionnaire. It is a sales asset — it drops straight into the firm’s own written information security planmissing
Provisioning API and templatesA practice adding forty clients should not fill forty forms: bulk create from CSV, a chart-of-accounts template per client type, and an API key for the firms that automateprovisioning exists, one at a time
Sandbox and demo dataA practice will not migrate before it has rehearsed. Give every practice a free demo client with a year of transactionsbuild
Billing that fits a practicePer client dataset, invoiced monthly to the firm, with volume tiers — and the option of billing the client directly where the firm prefers thatbuild
Status page and season supportUptime history and an incident feed; and published support hours through January to April. A four-hour outage on 14 April is an existential event for a practicebuild
Exit termsA complete pg_dump and document archive on demand, and a written retention and deletion policy. Firms buy from vendors they could leavebackup exists; policy does not

Not yet: a SOC 2 report. First-year cost runs $30,000 to $100,000 and the observation window alone is three months — disproportionate until an enterprise firm makes it a condition. The security package above answers ninety per cent of the questionnaires that will actually arrive.

13.8What to charge

Price per client dataset, not per seat. Seat pricing is what the practice-management suites do at $828 to $1,704 a user a year, and it punishes exactly the firms we want — the ones with staff. Per-client pricing grows with the practice, is trivially comparable to what the client pays QuickBooks today, and lets the firm mark it up.

LineProposedComparable
Practice account, console, staff seatsfreeIntuit’s Core plan is free; charging for the console loses the argument before it starts
Client dataset, 1–109 a monthQuickBooks Simple Start $38; Uncat alone $9
Client dataset, 11–507 a month
Client dataset, 51+5 a monthKeeper $96–120 a client a year
Migration of an existing file95 once, free above tenThe cost is ours in support time; the free tier above ten buys the whole practice
Bank feed, per connected accountat cost + marginOnly when the aggregator contract exists
White label49 a month per practiceKeeper charges for branding; practices pay for it
Optional: books kept by us, per bookingtest at 0.60–1.20The Run my Accounts model of section 13.6c, for the preparer who would rather hand over the shoebox than staff it
Plate 13.2 · A fifty-client practice, both sides of the trade
What it costs the practice with usA year
10 clients at $9 a month1,080
40 clients at $7 a month3,360
Total to us4,440
The same 50 clients on QuickBooks Simple Start at $3822,800
Uncat at $9 a client, for the questions queue alone5,400
One practice-management seat at the middle of the band1,100
What we replace or undercut29,300
Two hours saved per client at $150 an hour15,000

The pitch is not “cheaper accounting software”. It is “$4,440 replaces $29,300 of subscriptions and buys back a hundred hours in the season” — and the second half is the half that sells.

13.9Ninety days, in order

Sequenced so that something is demonstrable every fortnight, and so that the security work lands before the sales work — a preparer who asks about MFA and hears “it is on the roadmap” does not ask a second question.

WeeksBuildDone when
1–2MFA on the panel and on dataset login; session policy; access logA firm’s security questionnaire can be answered “yes” on every line about authentication
3–4Practice account, client list, staff seats, per-client accessOne login opens fifty clients; removing a staff member removes fifty accesses
5–7Working trial balance with adjusting entries and period lockA year is closed on screen and the adjustments exist as journal entries
8–9Form-line mapping and the Lacerte/UltraTax CSV and Drake workbook exportsA real client’s trial balance imports into a tax package without retyping
10–11Bank import with per-client rules and duplicate detectionA year of one bank account is coded in under an hour
12–13Requests and questions queues, in the portalA client answers three transaction questions without an email being written
In parallel, continuously: the security package PDF, the status page, the demo dataset, and one migration done by hand for a friendly practiceThe first practice is running its own clients before we sell to a second

Then the pitch writes itself, and it is the pitch chapter 10 says to make: not a feature list but a demonstration — here is a client’s year of bank lines, here it is categorised, here is the trial balance, here is the file your tax package imports, and the whole thing took eleven minutes.

13.10What we will not build

Not thisWhy
Tax return preparation, and transmissionChapters 7 and 12: the return belongs in the signing firm’s software, and transmission needs an EFIN held by a US person. We produce what those packages import — which is also what makes us safe to adopt: we compete with nobody’s tax software
Practice management: time, billing, e-signature, CRMTaxDome and Karbon are good and cheap enough. Integrate later; do not rebuild a suite to sell a ledger
Audit and attest toolingA CPA-only market we cannot serve — chapter 12 section 4
Our own bank aggregationRegulated, expensive, and a commodity. Buy it when volume pays for it
A US entity of our own, at firstChapter 11 prices that decision honestly; hosting can be sold from Pakistan, and the day an enterprise client demands a US contracting party is the day to revisit it
In one sentence

Build a practice console, a working trial balance that exports into Drake, Lacerte and UltraTax, a client questions queue and a bank importer with rules; put MFA, an audit log, restores and a security package under them; charge $9 a client a month — and a preparer with fifty clients replaces $29,300 of subscriptions and a hundred hours of January.

13.11Glossary

TermWhat it is
Adjusting journal entry (AJE)The entry a preparer makes at year end to move the books from what was recorded to what the return will say — depreciation, accruals, owner’s draws, reclassifications.
CleanupThe trade’s word for taking a year of miscoded or uncoded books and making them presentable. Priced hourly, resented universally, and the single biggest hour-sink of a season.
MFAMulti-factor authentication. Mandatory for systems holding taxpayer information under the amended FTC Safeguards Rule since June 2023.
PBC list“Prepared by client” — the document request list that opens every engagement.
Practice consoleThe single screen a firm works from: every client, their status, who is on them, what is outstanding.
Safeguards Rule16 CFR part 314, the FTC rule under the Gramm-Leach-Bliley Act that makes tax preparers financial institutions for data-security purposes; the source of the WISP, MFA and vendor-oversight requirements.
SOC 2An audited report on a service provider’s security controls; the enterprise answer to “can we trust your hosting”, at $30,000–$100,000 for the first year.
Trial balanceEvery account with its balance, debits equal to credits; the document the whole tax return is built from, and the hand-off point between bookkeeping and tax.
Wholesale billingThe arrangement where the practice, not the client, is invoiced for the client’s subscription — usually at a discount, and usually marked up in the firm’s own fee.
WISPWritten Information Security Plan — required of every US tax preparer; IRS Publications 4557 and 5708 are the guides, and PTIN renewal now asks the preparer to confirm one exists.

13.12Sources

Vendor pages and current-year trade reporting for what the competition costs; the FTC and IRS for the security obligations; this book’s own chapters for every enhancement referenced by number. The prices in section 13.8 are a proposal, not a survey.

  1. CPA Practice Advisor and Insightful Accountant on the retirement of QuickBooks Online Accountant, the Intuit Accountant Suite Core and Accelerate plans ($149 a month from 1 May 2026) and the replacement of the ProAdvisor programme in January 2027 — cpapracticeadvisor.com · blog.insightfulaccountant.com
  2. Intuit, QuickBooks Online pricing after the August 2026 change; QuickBooks ProAdvisor programme — quickbooks.intuit.com/accountants/proadvisor/
  3. TaxDome pricing; Karbon, Canopy and Financial Cents per-user pricing as compiled by Financial Cents and Portico; Keeper and Xenett price bands; Uncat pricing — taxdome.com/pricing · uncat.com · xenett.com
  4. Trial balance import into Lacerte, UltraTax CS and Drake, and the reported reduction from 30–60 minutes to 5–10 — ledgeriq.ai/blog/how-to-import-a-trial-balance-into-tax-software · drakesoftware.com/products/conversions/
  5. FTC, Safeguards Rule: what your business needs to know, 16 CFR part 314, including the June 2023 MFA and qualified-individual requirements and service-provider oversight — ftc.gov/business-guidance/resources/ftc-safeguards-rule-what-your-business-needs-know
  6. IRS Publication 4557 Safeguarding taxpayer data and Publication 5708 Creating a written information security plan; the WISP confirmation on Form W-12 PTIN renewal — irs.gov
  7. Aggregator pricing indications for Plaid, MX and Finicity as compiled by Vendr, Capterra and comparison guides — treat as order-of-magnitude, since all three quote custom contracts
  8. SOC 2 Type II cost and timeline benchmarks for small SaaS, 2026 — sprinto.com · scytale.ai
  9. Chapter 15 for everything in section 13.6: the fork’s open code, the closed platform’s schema as read from the database, and the published price list of the bookkeeping service
  10. This book: chapter 1 items 1, 4, 7, 8 and 11; chapter 2 items 1 and 5; chapter 4 items 1, 2, 6 and 8; chapter 6 items 1 and 3; chapter 7 enhancements 1 to 4; chapter 9 items 1 to 4; chapters 15 and 16 for the fork features to port