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.
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. 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 business | Selling to a practice | |
|---|---|---|
| Datasets per sale | 1 | 50–300 |
| Who does the data entry | the owner, badly, in arrears | trained staff, to a deadline |
| What they are buying | invoices, VAT, a look at the bank balance | hours removed from January to April |
| What they pay for it | tens of dollars a month | hundreds of dollars a month, spread across clients |
| How they are reached | search, content, word of mouth — chapter 10 | the same, plus one channel that does not exist for businesses: the practice-management and preparer communities |
| Why they leave | the business closes | a 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.
| Stage | What the preparer does now | What would remove the hour |
|---|---|---|
| 1 · Engage | Engagement letter, §7216 consent if any work goes offshore | Templates in the portal, e-signed and filed against the client — a small thing that anchors everything else |
| 2 · Ask | Sends an organiser and a document list; chases it by email for six weeks | A request list the client sees on one page, with upload, status and reminders that send themselves |
| 3 · Intake | Receives statements, receipts, payroll reports, 1099s in a dozen formats | An inbox that accepts everything, deduplicates by hash and files it against the period |
| 4 · Import | Loads bank and card activity, often by hand from PDFs | CSV, OFX and QIF import with per-account column memory, then feeds for those who will pay for them |
| 5 · Categorise | The single largest block of time: coding a year of lines to accounts | Rules 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 time | A 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 · Reconcile | Bank and card reconciliations, payroll to the 941s, sales tax to the returns | A reconciliation screen that survives the year, plus the payroll worksheets of chapter 7 enhancement 2 |
| 8 · Close | Depreciation, accruals, prepayments, owner’s draws, loan interest splits | Fixed asset register and schedules — chapter 4 items 1 and 2 — and a closing checklist that remembers last year’s entries |
| 9 · Trial balance | Exports to Excel, adds adjusting entries in a side column, ties to prior year | A working trial balance with prior-year, adjustment and final columns, and the adjustments posted back as real journal entries |
| 10 · Map and export | Assigns each account to a tax form line, keys or imports it into Drake, Lacerte, UltraTax or ProConnect | Form-line mapping that remembers last year, and an export in each package’s own import layout — chapter 7 enhancement 1 |
| 11 · Review and file | A second pair of eyes, then the return goes out under an EFIN | Locked periods, a reviewed flag, and an audit log that shows what changed after review — chapter 1 item 7 |
| 12 · Deliver and plan | K-1s, copies, estimates for next year, the client’s questions in August | The estimates worksheet of chapter 7 enhancement 3, and a portal the client still has in August |
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.
| Product | What the preparer gets | Price in 2026 |
|---|---|---|
| QuickBooks Online Accountant | One 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 subscription | free — being retired |
| Intuit Accountant Suite | Its 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 2027 | Core free · Accelerate 149 a month |
| QuickBooks Online, what the client pays | The ledger itself | 38 · 85 · 140 · 340 a month |
| Xero partner programme | Practice console, partner discounts, Hubdoc for documents | discounted by volume |
| TaxDome, Canopy, Karbon, Financial Cents | Practice management: jobs, deadlines, client portal, e-signature, invoicing | 828 – 1,704 per user a year |
| Keeper | Month-end review, client questions, a preparer-branded portal | 96–120 per client a year |
| Uncat | One job only: uncategorised transactions, asked and answered | 9 per client a month |
| Xenett | Close review and reconciliation on top of the ledger | 5,000–20,000 a year |
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.8 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.
| Capability | State | Where it is |
|---|---|---|
| One account, many client datasets, provisioned in one transaction | have | The 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 list | partial | member 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, projects | have | SQL-Ledger itself |
| GIFI codes on every account — a form-line mechanism already in the schema | have | The hook chapter 7 enhancement 1 generalises to US forms |
| Document store with hash deduplication, drag and drop, ZIP queue | port | The Tekki fork, chapter 16 |
| Receipt inbox, JSON API, portal hooks, transaction log, Ledger Doctor | port | The Run my Accounts fork, chapter 15 |
| XLSX export on every report; database snapshots; GPG backups | port | The Tekki fork again — and XLSX is what an accountant actually wants |
| Customer and vendor portals | build | Chapter 14’s WordPress plugins, or the panel |
| Bank statement import and matching | build | Chapter 1 item 1 |
| A practice console | missing | Chapter 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
| Module | What it is | Touches | Effort |
|---|---|---|---|
| 1 · Practice console | A 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 datasets | the panel, SL/Members.pm, one schema change on the registry | medium |
| 2 · Working trial balance | Prior 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 filed | SL/RP.pm, a new bin/mozilla screen, one schema upgrade for the batch and the lock | medium |
| 3 · Form-line mapping and export | Chapter 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 ten | SL/AM.pm, SL/RP.pm, the US chart files | medium |
| 4 · Requests and questions | Two 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 list | the panel or chapter 14’s portal, acc_trans plus one note table | medium-large |
| 5 · Bank import with rules | CSV, 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-client | bin/mozilla/im.pl, one bankline table, a rules table | medium-large |
| 6 · Review, lock and log | A 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 path | medium |
bWave two — what keeps them after the first season
| Module | What it is | Touches | Effort |
|---|---|---|---|
| 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 import | bin/mozilla/im.pl, SL/IM.pm, a converter per source | large — and the highest-leverage large thing in the book |
| 8 · The January module: 1099s | Vendor 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 8 | SL/AP.pm, vendor screens, one schema upgrade | medium |
| 9 · Close pack | Fixed 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 2 | SL/AM.pm, new tables, one report | large |
| 10 · Payroll to the forms | Date-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 January | SL/HR.pm, bin/mozilla/hr.pl | medium-large |
| 11 · Documents and receipts | The 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 later | ported from chapters 15 and 16 | medium |
| 12 · Reports an accountant recognises | XLSX 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 5 | SL/Spreadsheet.pm ported from chapter 16, SL/RP.pm | medium |
cWave three — the moat
| Module | What it is | Why later |
|---|---|---|
| Bank feeds | A live connection through an aggregator, per chapter 6 item 3 | Money: 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 review | Chapter 9 items 1 and 4 | It needs a year of the tenant’s own coded history to be any good. Ship rules first, learning second |
| API and MCP server | Chapter 6 item 1 and chapter 9 item 3 | Larger practices automate; it is also how a preparer’s own tooling and any AI assistant reach the ledger safely |
| White-label portal | The practice’s name, logo and domain on everything the client sees | Keeper charges for exactly this. It converts a tool into the practice’s own product |
| Multi-entity views | Combined statements across datasets — chapter 4 item 8 | For the client with three companies, and for the practice’s own reporting |
13.6What 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.
| Change | Why | State today |
|---|---|---|
| Practice accounts and staff seats | One firm, many staff, per-client access; a departing bookkeeper must lose access to sixty datasets in one click | one account owns many datasets; no seats |
| Multi-factor authentication, everywhere | Not 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 it | missing — build first |
| Session policy, IP allowlist, SSO later | Timeouts, device list, forced sign-out; allowlisting for the firms that ask | sessions 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 ledger | build |
| Self-service backup and restore | Backup 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 snapshots | backup only |
| A documented US region | Firms ask where the data sits before they ask what it costs. Decide it, document it, and name the subprocessors | decide |
| A security package | One 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 plan | missing |
| Provisioning API and templates | A 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 automate | provisioning exists, one at a time |
| Sandbox and demo data | A practice will not migrate before it has rehearsed. Give every practice a free demo client with a year of transactions | build |
| Billing that fits a practice | Per client dataset, invoiced monthly to the firm, with volume tiers — and the option of billing the client directly where the firm prefers that | build |
| Status page and season support | Uptime 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 practice | build |
| Exit terms | A complete pg_dump and document archive on demand, and a written retention and deletion policy. Firms buy from vendors they could leave | backup exists; policy does not |
13.7What 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.
| Line | Proposed | Comparable |
|---|---|---|
| Practice account, console, staff seats | free | Intuit’s Core plan is free; charging for the console loses the argument before it starts |
| Client dataset, 1–10 | 9 a month | QuickBooks Simple Start $38; Uncat alone $9 |
| Client dataset, 11–50 | 7 a month | |
| Client dataset, 51+ | 5 a month | Keeper $96–120 a client a year |
| Migration of an existing file | 95 once, free above ten | The cost is ours in support time; the free tier above ten buys the whole practice |
| Bank feed, per connected account | at cost + margin | Only when the aggregator contract exists |
| White label | 49 a month per practice | Keeper charges for branding; practices pay for it |
| What it costs the practice with us | A year |
|---|---|
| 10 clients at $9 a month | 1,080 |
| 40 clients at $7 a month | 3,360 |
| Total to us | 4,440 |
| The same 50 clients on QuickBooks Simple Start at $38 | 22,800 |
| Uncat at $9 a client, for the questions queue alone | 5,400 |
| One practice-management seat at the middle of the band | 1,100 |
| What we replace or undercut | 29,300 |
| Two hours saved per client at $150 an hour | 15,000 |
13.8Ninety 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.
| Weeks | Build | Done when |
|---|---|---|
| 1–2 | MFA on the panel and on dataset login; session policy; access log | A firm’s security questionnaire can be answered “yes” on every line about authentication |
| 3–4 | Practice account, client list, staff seats, per-client access | One login opens fifty clients; removing a staff member removes fifty accesses |
| 5–7 | Working trial balance with adjusting entries and period lock | A year is closed on screen and the adjustments exist as journal entries |
| 8–9 | Form-line mapping and the Lacerte/UltraTax CSV and Drake workbook exports | A real client’s trial balance imports into a tax package without retyping |
| 10–11 | Bank import with per-client rules and duplicate detection | A year of one bank account is coded in under an hour |
| 12–13 | Requests and questions queues, in the portal | A 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 practice | The 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.9What we will not build
| Not this | Why |
|---|---|
| Tax return preparation, and transmission | Chapters 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, CRM | TaxDome and Karbon are good and cheap enough. Integrate later; do not rebuild a suite to sell a ledger |
| Audit and attest tooling | A CPA-only market we cannot serve — chapter 12 section 4 |
| Our own bank aggregation | Regulated, expensive, and a commodity. Buy it when volume pays for it |
| A US entity of our own, at first | Chapter 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 |
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.10Glossary
| Term | What 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. |
| Cleanup | The 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. |
| MFA | Multi-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 console | The single screen a firm works from: every client, their status, who is on them, what is outstanding. |
| Safeguards Rule | 16 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 2 | An 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 balance | Every 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 billing | The 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. |
| WISP | Written 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.11Sources
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.7 are a proposal, not a survey.
- 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
- Intuit, QuickBooks Online pricing after the August 2026 change; QuickBooks ProAdvisor programme — quickbooks.intuit.com/accountants/proadvisor/
- 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
- 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/
- 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
- 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
- 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
- SOC 2 Type II cost and timeline benchmarks for small SaaS, 2026 — sprinto.com · scytale.ai
- 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