# Growthy > Bookkeeping software that uses pattern learning to categorize transactions automatically. Bookkeepers and accountants review the exceptions. Done before lunch. Growthy is bookkeeping software for professional bookkeepers, accountants, and new business owners. It categorizes transactions in QuickBooks Online with 85% accuracy on first import, holding there as the system learns each client's patterns, compared to roughly ~50% for QBO's built-in Bank Rules. Growthy ships in two modes: a workflow layer on top of QBO (no migration), or a standalone general ledger that replaces your existing accounting software. See [current founding pricing](https://growthy.com/pricing). ## Product - [AI Bookkeeping](https://growthy.com/ai-bookkeeping): How Growthy categorizes transactions, scores confidence, and routes exceptions for human review - [For Bookkeepers](https://growthy.com/for-bookkeepers): How solo bookkeepers use Growthy to scale past the typical 15-25 client ceiling without working evenings - [For Accountants](https://growthy.com/for-accountants): How CPA firms collapse the bookkeeping labor wall and scale advisory work without hiring more staff - [Pricing](https://growthy.com/pricing): Founding pricing: Solo is $39/month for 1 company, plus $35/month for companies 2–4. Practice is $149/month for 5 companies, plus $29/month for companies 6–24. - [About](https://growthy.com/about): Company background and product approach ## Topic Hubs - [1099 Filing](https://growthy.com/topics/1099-filing): OBBBA raised 1099-NEC to $2,000 and reverted 1099-K to $20K/200. The bookkeeper workflow that doesn't fall apart in January. - [AI Bookkeeping](https://growthy.com/topics/ai-bookkeeping): You've clicked categorize enough times to know the truth. QBO bank feed suggestions are wrong about half the time. Here's how confidence scoring with human review changes the routine. - [AI for Accountants](https://growthy.com/topics/ai-for-accountants): Every vendor claims AI will transform your firm. Here is what it actually looks like at a 5-20 staff CPA practice in 2026. - [AP Reconciliation](https://growthy.com/topics/ap-reconciliation): The monthly AP discipline that keeps vendor ledgers clean and January 1099s accurate, built for bookkeepers managing 8-25 clients. - [Accounts Receivable Management](https://growthy.com/topics/accounts-receivable-management): A practitioner's guide to accounts receivable management: setting terms, invoicing, running the follow-up cadence, matching payments, reading the aging report, reconciling AR to the GL, and writing off bad debt the right way. - [Asset Account Categories](https://growthy.com/topics/asset-account-categories): Practical asset categorization for bookkeepers: current vs fixed vs intangibles, capitalization thresholds, 2026 §179 and bonus depreciation under OBBBA, and QBO setup. - [Balance Sheet Terms](https://growthy.com/topics/balance-sheet-terms): Balance sheet glossary terms for bookkeepers: AP, AR, bank reconciliation, current assets, current liabilities, equity, and cash account cleanup. - [Bookkeeper Scaling](https://growthy.com/topics/bookkeeper-scaling): Solo bookkeeper income is capped at 15-25 clients. Here's the math behind the ceiling and the three levers that break it. - [Bookkeeping Automation](https://growthy.com/topics/bookkeeping-automation): Tools, techniques, and strategies for automating repetitive bookkeeping tasks. - [Bookkeeping Foundation Terms](https://growthy.com/topics/bookkeeping-foundation-terms): Core bookkeeping glossary terms for bookkeepers: general ledger, double-entry bookkeeping, trial balance, debits, credits, and the monthly close foundation. - [Bookkeeping Terms Glossary](https://growthy.com/topics/glossary): Plain-English bookkeeping terms, grouped by topic and sorted A to Z. Written by people who clean up real books every month. - [Chart of Accounts](https://growthy.com/topics/chart-of-accounts): The working chart of accounts reference for bookkeepers: 5 account types, 20 deep-dive guides, 2026 deduction rules. Built for the people who Google 'what category is X' twenty times a day. - [Ecommerce Accounting](https://growthy.com/topics/ecommerce-accounting): A practitioner-built guide to ecommerce bookkeeping and accounting: why platform payouts aren't revenue, how to reconcile settlements, where marketplace fees hide margin, how COGS ties to fulfillment, and the chart of accounts QBO doesn't ship. - [Equity Accounts Explained](https://growthy.com/topics/equity-accounts-explained): Entity-type specific equity guide for QBO bookkeepers: sole prop, partnership, S-corp, C-corp. Owner draws vs distributions vs dividends, retained earnings, year-end closing entries. - [Expense Account Categories](https://growthy.com/topics/expense-account-categories): The expense categorization reference bookkeepers actually use, organized by transaction type, with 2026 OBBBA rules, decision frameworks, and named QBO accounts. - [Income Statement Terms](https://growthy.com/topics/income-statement-terms): Income statement glossary terms for bookkeepers: P&L, revenue, COGS, operating expenses, gross margin, and month-over-month review. - [Liability Account Categories](https://growthy.com/topics/liability-account-categories): Practical liability categorization for bookkeepers: AP vs credit cards vs accrued, payroll liabilities, loan setup, deferred revenue, and the QBO mistakes that hide the balance sheet. - [Payment Reconciliation](https://growthy.com/topics/payment-reconciliation): That $3,847.92 Stripe deposit is not $3,847.92 of revenue. Here's how to split merchant deposits correctly: fees in the right account, refunds posted, chargebacks reconciled. - [QBO-Specific Terms](https://growthy.com/topics/qbo-specific-terms): QuickBooks Online glossary terms for bookkeepers: Undeposited Funds, Uncategorized Expense, bank rules, class/location tracking, and cleanup traps. - [QuickBooks Automation](https://growthy.com/topics/quickbooks-automation): Intuit Assist hits ~50% on novel transactions. Bank rules break at 200+. Here's the honest map of QBO automation in 2026. - [QuickBooks Integrations](https://growthy.com/topics/quickbooks-integrations): 15 clients × 6 integrations = 90 sync pipelines to babysit. Here's which QBO integrations actually hold up at scale and why a workflow layer beats adding another app. - [Revenue Account Types](https://growthy.com/topics/revenue-account-types): Bookkeeper-level guide to revenue accounts in QBO: sales vs service, recurring vs one-time, contra-revenue, ASC 606 basics, and the 5 setups you actually configure. - [SaaS Accounting: A Practitioner's Guide to Revenue Recognition, Deferred Revenue, and the Books Behind the Subscription](https://growthy.com/topics/saas-accounting): Honest, practitioner-built guide to SaaS accounting. ASC 606, deferred revenue, COA, metrics, and software comparison for bookkeepers, CPA firms, and founders. - [Stripe Bookkeeping](https://growthy.com/topics/stripe-bookkeeping): Master Stripe payout reconciliation, fee categorization, and clearing account setup for QBO and Xero. - [Tax Bookkeeping Terms](https://growthy.com/topics/tax-bookkeeping-terms): Tax-adjacent bookkeeping glossary terms for bookkeepers: cash vs accrual, depreciation, 1099 thresholds, accountable plans, and year-end cleanup. ## Articles (Full Content) ### [How to AI-Proof Your Bookkeeping Practice: What AI Takes and What Stays Yours](https://growthy.com/blog/how-to-ai-proof-a-bookkeeping-practice): Software is taking routine transaction coding. Here is what stays yours, plus four moves and two copyable documents to AI-proof your bookkeeping practice. Most of what a client sees you do each month is coding transactions. That's the part software keeps getting better at. So if you're searching for how to AI proof bookkeeping business models built on data entry, you're asking the right question at the right time. Here's the good news. Coding transactions was never what made the books trustworthy. Judgment, cleanup, and review do that, and they still need you. This guide splits the work into what software takes and what stays yours. Then it gives you four moves to make this quarter, plus two documents you can copy today. > **What does it mean to AI-proof a bookkeeping practice?** > > It means you stop selling keystrokes and start selling judgment and review. Software can code routine bank transactions. It can't decide how to split a loan payment or fix a year of messy books. An AI-proof bookkeeping practice sells that judgment. It does four things. It re-scopes the engagement letter around review and monthly close. It prices each close as a flat fee, not by the hour. It writes down every judgment call. And it uses tools that show their work and let you approve it. You can start all four this quarter. ## Key Takeaways - **Software takes the routine coding:** repeat vendors, recurring bills, and bank-feed matching are moving to software. - **Judgment stays yours:** loan splits, owner draws, and gross-vs-net deposits need someone who knows the client. - **Re-scope the letter:** describe checking and monthly close, not "data entry," so the fee is tied to what still needs you. - **Price the close, not the hours:** in the example below, a flat $450 close holds while hourly billing would drop to $187.50. - **Keep a judgment log:** one line per call, with the reason and the source document. - **Pick a review-first tool:** it should flag what it's unsure of and wait for your approval. ## What AI is taking off your plate Start with an honest list. These tasks are moving to software, and fighting that is a losing trade: - Coding the same vendors every month (the phone bill, the software subscriptions, the rent). - Matching bank-feed lines to bills and invoices that already exist. - Sorting receipts into the right expense account. - The long click-through of "categorize, next, categorize, next." Most bank feeds already suggest a category. Newer tools go further and learn from your corrections, one client at a time. For how that differs from a stack of bank rules, see [AI vs bank rules](https://growthy.com/blog/ai-vs-bank-rules). ### Why that's the part clients never paid you for Clients don't pay for clicks. They pay for books they can act on, file from, and show a lender. If your fee is quietly tied to hours of entry, that link is your real exposure. The hours will shrink. Your fee shouldn't shrink with them. ## What stays yours Four kinds of work still need a person who knows the client. Each one is where your fee should live. ### Judgment calls software can't make alone Say a client pays $1,250 on a business loan. The bank feed shows one line: $1,250 out. Software can see the payee. It can't see the lender's amortization schedule. Say the schedule shows $1,000 of principal and $250 of interest for this payment (illustrative numbers). The right entry is: | Account | Debit | Credit | | --- | --- | --- | | Loan Payable | $1,000.00 | | | Interest Expense | $250.00 | | | Checking | | $1,250.00 | | **Total** | **$1,250.00** | **$1,250.00** | Book the whole $1,250 as expense and the P&L overstates expense by $1,000. The loan balance on the Balance Sheet stays too high, too. Owner spending works the same way. A $180 personal dinner paid from the business checking account is a debit to Owner's Draw and a credit to Checking. That fits a sole proprietor or a single-member LLC. In a partnership or multi-member LLC, it's a draw against that partner's capital account. For an S corp, it's usually a shareholder distribution or a loan to the shareholder (a receivable the owner pays back). Calling it wages means running it through payroll, not just recoding it. For a C corp, it's usually a shareholder receivable. Left unpaid, it can be treated as a dividend or as pay. A single-member LLC taxed as an S corp follows the S corp rule. Choosing among these is a judgment call about the client's entity, and the client's tax preparer should agree with it. Software can flag the charge. You decide what it is. ### Cleanup and catch-up A client arrives with eight months of uncoded transactions and a missing statement. The opening balances don't tie out to last year's closing balance sheet. Someone has to find the gap, ask the client the right questions, and rebuild the months in order. That takes knowing what "right" looks like. Clients pay for it because they can't do it themselves. ### Review and sign-off A Stripe payout lands for $970.70. Behind it sit $1,000.00 of sales and a $29.30 processing fee (illustrative numbers). If the deposit gets booked as $970.70 of sales, revenue is understated by $29.30 and the fee never shows up. The correct entry: | Account | Debit | Credit | | --- | --- | --- | | Checking | $970.70 | | | Merchant Fees | $29.30 | | | Sales | | $1,000.00 | | **Total** | **$1,000.00** | **$1,000.00** | Check: $970.70 + $29.30 = $1,000.00. Catching that is review. Net income comes out the same either way. But gross revenue and fees are both understated, and those are the lines a lender or a tax preparer reads. Stripe's Form 1099-K reports the gross $1,000, so net-booked sales won't tie to it. The [Stripe reconciliation guide for bookkeepers](https://growthy.com/blog/stripe-reconciliation-guide-bookkeepers) walks through the full match. ### The client relationship When a charge looks odd, you're the one who asks about it. When the P&L surprises the owner, you're the one who explains it. Clients call a person. That trust takes years to build, and no tool inherits it. ## Four moves to make this quarter Pick one this month. Do all four by the end of the quarter. ### 1. Re-scope the engagement letter around review and close If your letter says "data entry" or "categorize transactions," it describes the part that's shrinking. Rewrite the scope around what you deliver: a checked, closed month. See the [month-end close process](https://growthy.com/blog/month-end-close-process) for the steps you'd list. Here's a scope paragraph you can copy and adapt: > **Scope of monthly services.** Each month, [Firm Name] will check and close the books for [Client Name] in QuickBooks Online. This includes looking over bank and credit card activity, including items coded by software, reconciling each account to its statement, and recording adjusting entries we find necessary. We will deliver a close package by [day, e.g., the 15th] of the following month. It includes a Profit and Loss statement, a Balance Sheet, and a list of open questions. We use software tools, including AI-based tools, to code routine transactions. We look over software-coded items before the month is closed. These services are bookkeeping services. They are not an audit, review, or compilation engagement, and they provide no assurance on the financial statements. [Client Name] is responsible for the accuracy and completeness of the records it provides, and for reviewing and approving the monthly financial statements and any adjusting entries. Cleanup of prior periods, catch-up work, and special projects are billed separately under a written estimate. Have your attorney look it over, or compare it with your professional association's template language, before you send it. Contract wording varies by state. If you're a CPA or work in a CPA firm and the close package includes financial statements, check whether the AICPA's SSARS preparation standard (AR-C 70) applies before you use this wording. ### 2. Price by outcome, not hours Here's the math on one client, with illustrative numbers. Say a close takes 6 hours and you bill $75 an hour. That's $450 a month. Now software takes most of the coding, and the same close takes 2.5 hours: - **Billed hourly:** 2.5 × $75 = $187.50. You just gave away $262.50 a month. - **Billed as a flat close fee:** $450 stays $450. Your effective rate is $450 ÷ 2.5 = $180 an hour. The client gets the same checked, closed books, on the same day. You get paid for the result. For how to build the tiers, see [bookkeeping pricing packages](https://growthy.com/blog/bookkeeping-pricing-packages). To check your current rate first, see [bookkeeper hourly rate](https://growthy.com/blog/bookkeeper-hourly-rate). ### 3. Document your judgment calls Keep one log per client. Add a line every time you make a call software couldn't make. Use this format: **Judgment log: [Client Name]** | Date | Transaction | Decision | Reason | Source | | --- | --- | --- | --- | --- | | [MM/DD] | $1,250 loan payment | $1,000 principal, $250 interest | Lender schedule, payment 14 | [statement file name] | | [MM/DD] | $180 dinner, business checking | Owner's Draw | Client confirmed personal | [email date] | The table pastes straight into a spreadsheet. The log does three jobs. It lets a reviewer trust the books without redoing them. It lets you answer "why is this here?" eleven months later. And it's a record of your judgment in writing, which is the part no tool can copy. ### 4. Pick a review-first tool The tool you pick should make review faster, not skip it. Look for four things: - It shows why it coded each transaction. - It flags the ones it isn't sure about, instead of guessing. - It learns from your corrections for that client. - Nothing is final until you approve it. For the full list of questions to ask in a demo, use the [AI bookkeeping evaluation checklist](https://growthy.com/blog/ai-bookkeeping-evaluation-checklist). One option to test: Growthy categorizes QuickBooks Online transactions automatically, asks when it's unsure, and you review and approve. ## The client explainer: what I do vs what the software does Clients will ask what they're paying for once they hear "AI." Send them this. Put your name in the sign-off, and edit the software column to match what your tools actually do. > **How your books get done each month** > > Software handles the routine sorting, so my time goes to the parts that need a person. | The software does | I do | | --- | --- | | Suggests a category for routine transactions | Check its suggestions before the month closes | | Matches bank transactions to invoices and bills | Split loan payments and payouts, and classify owner spending correctly | | Remembers how I coded a vendor last time | Ask you about anything unusual | | Sorts receipts | Reconcile each account to its statement | | | Deliver your P&L and Balance Sheet with notes | | | Answer your questions about the numbers | > The software makes the routine part faster. Checking its work, fixing what it gets wrong, and closing your month are on me. > > [Your Name], [Firm Name] ## Frequently asked questions Short answers to what bookkeepers ask when they set out to AI-proof a bookkeeping business. ### Will AI replace bookkeepers? It's replacing tasks, mainly routine coding and matching. The review, cleanup, and client work stay. For a longer look at where the field is heading, read [will AI replace accountants?](https://growthy.com/blog/future-of-ai-in-accounting) ### Should I lower my prices if software does more of the work? Not if you price the close. The client still gets checked, closed books on a set date. That's what the fee covers. If you bill by the hour, faster work means a smaller invoice, which is the reason to switch to a flat fee. ### Do I need to tell clients I use AI tools? We don't know of one rule that covers every bookkeeper. Rules can differ by state, by professional body, and by privacy law, so check the ones that apply to you. If you also prepare tax returns, IRC §7216 limits sharing return information; check it before sending client data to any tool. Telling clients is good practice either way. Say what the software does and that you check its work before the month closes. The scope paragraph above does this in two sentences. Also read the data-handling terms in your engagement letter and in the tool's own terms. ### What do I say when a client asks why they should pay me if software codes transactions? Show them the loan split or the Stripe payout above. Software coded the line. You made it correct. Then hand them the explainer. ## Conclusion Keystrokes were a way to get paid, not the product. The product is books a reviewer trusts, closed on time, with every call written down. Sell that and your bookkeeping business is AI-proof. Pick one of the four moves this week. The engagement letter is the fastest place to start. For more on running the practice side, visit the [bookkeeper scaling hub](https://growthy.com/topics/bookkeeper-scaling). [Get started with Growthy](https://growthy.com/signup/?utm_content=how-to-ai-proof-a-bookkeeping-practice) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Best AI Agents for Accounting Firms 2026: What They Actually Do](https://growthy.com/blog/best-ai-agents-for-accounting-firms): Best AI agents for accounting firms 2026, sorted by the job each does on the books: what it writes, who approves it, and a six-point checklist to copy. Every vendor at your last conference said "agent." Some of those tools change the numbers on a client's books. Others answer a question and stop there. For a firm that signs off on client books, that difference matters more than any feature list. This guide sorts the best AI agents for accounting firms by the job they do. For each job you get the tools that offer it, what they write to the ledger, and what to check before you trust them. The goal is fewer hours on routine entries and cleaner books at month-end. If you want a side-by-side of bookkeeping tools, see our [AI bookkeeping tools comparison](https://growthy.com/blog/best-ai-bookkeeping-tools-2026). For the wider set of AI tools a CPA firm might use, from research to email, see [AI tools for CPA firms](https://growthy.com/blog/ai-tools-for-cpa-firms). This page is only about agents. > **What is an AI agent for an accounting firm?** > > An AI agent is software that takes an action on the books. It proposes or posts a categorization, a bank match, or a journal entry, instead of only answering a question. A chatbot like ChatGPT or Claude answers, and you do the posting. A bank rule is a fixed if-then you wrote yourself, like "anything from Shell goes to Fuel." An agent decides the entry each time from patterns in the data. So the question to ask is what it writes to the ledger and who approves it. A good agent also shows how sure it is about each item and keeps a record of every change. ## Key Takeaways - **Agents act, chatbots answer:** an agent proposes or posts entries. A chatbot gives you text and you do the work. - **Sort tools by job:** categorization, document capture, close review, client follow-up, and reporting are five different problems. - **Review first, auto-post later:** start with every agent entry going through a review queue. Loosen it only after two clean months. - **Six checks before you trust one:** review queue, audit trail, bulk rollback, per-item confidence, data scope, and repeatable results. - **Pilot on closed months:** run the agent in a test file (or the live file with those months locked) on months you already closed and compare its entries to yours line by line. ## Agent, chatbot, or bank rule: what's the difference? Most firms already run all three without calling them that. The labels matter because each one fails in a different way. A **bank rule** does exactly what you told it. It never guesses. It also never learns, so the long tail of one-off vendors still lands on your desk. Our breakdown of [AI vs bank rules](https://growthy.com/blog/ai-vs-bank-rules) covers where rules still win. A **chatbot** reads what you give it and answers. You can paste a bank export into [Claude for accounting work](https://growthy.com/blog/claude-for-accounting) and get suggested categories back. But nothing reaches the ledger until a person keys it in. The risk is a wrong answer you copy by hand. An **agent** writes to the books, or queues an entry for you to approve. That's what separates AI agents for bookkeeping from the chat tools. It sees the same bank line a rule sees. It also sees the payee history, the amount, and how you coded similar items last month. The risk is a wrong entry that posts quietly across many clients. ### A quick way to sort any tool you're pitched Ask three questions on the demo call. | Question | Bank rule | Chatbot | Agent | | --- | --- | --- | --- | | Who decides the entry? | You, once, in advance | You, after reading the answer | The software, each time | | What gets written to the books? | The entry your rule defines | Nothing, until you key it | A proposed or posted entry | | How do you undo a mistake? | Edit the rule, fix past entries | Fix what you keyed | Depends on the tool (ask) | If the vendor can't answer the third row clearly, you've learned the most useful thing the demo will tell you. ## The five jobs AI agents do in an accounting firm Vendor descriptions below come from each company's own public pages as of September 2026. Features change fast, so confirm them on the vendor's site before you buy. ### 1. Transaction categorization and matching This is the job most firms mean when they say "agent." The tool reads each bank and card line, picks an account, and matches it to an invoice or bill when one exists. **Who offers it.** Intuit describes AI agents built into QuickBooks Online, including an accounting agent that categorizes transactions and flags items for review. Digits describes its product as an autonomous general ledger that books transactions with AI. Growthy, which publishes this guide, categorizes transactions automatically on top of QuickBooks Online, or from a CSV bank import. It shows a confidence level on each item and sends the unsure ones to a review queue. Accuracy, counted by transactions: 85% on first import, and it holds there as it learns the client. The ones it's unsure about go to your review queue. Corrections carry forward for that client, so the same payee next month comes in with your fix already suggested. **Where it goes wrong.** Payment processor deposits are the classic trap. Say a client's card processor pays out $3,881.60 for a week. The week's gross sales were $4,000.00 and the processor kept $118.40 in fees (no sales tax, refunds, or chargebacks that week, to keep it simple). An agent that books the deposit at face value records $3,881.60 of revenue and no fee expense. The right entry, if the sales weren't already recorded: | Account | Debit | Credit | | --- | --- | --- | | Cash (operating) | $3,881.60 | | | Merchant fees expense | $118.40 | | | Sales revenue | | $4,000.00 | | **Totals** | **$4,000.00** | **$4,000.00** | That entry assumes nothing else booked the sales. If a point-of-sale or store sync already booked the $4,000.00 of sales (debit a processor clearing account, credit sales), the deposit clears that account instead: debit Cash $3,881.60, debit Merchant fees expense $118.40, credit the clearing account $4,000.00. Booking the deposit as revenue again counts the sales twice. Back to the face-value mistake from the first example. Its net income matches the correct entry. But revenue is understated by $118.40 and fees are missing. The processor's gross sales report won't tie to the books. If all 52 weekly payouts in a year look like this one, revenue ends the year $6,156.80 short (52 × $118.40), with the same amount missing from fees. **What to check.** Does the agent post, or propose? Can it split one deposit into gross sales and fees? Does it show you which items it was unsure about, or only a total? ### 2. Document and receipt capture Capture agents read receipts, bills, and statements and turn them into entries. **Who offers it.** Dext describes pulling data from receipts and supplier invoices and publishing it to QuickBooks Online. Intuit describes receipt capture in QuickBooks Online that reads an uploaded receipt and suggests a match to a bank transaction. Our guide to [receipt capture and OCR](https://growthy.com/blog/receipt-capture-ocr-automation) goes deeper on how the reading step works. **Where it goes wrong.** Duplicates. The receipt creates an expense, and the bank feed line for the same charge creates a second one. The books now show the $64.20 lunch twice. **What to check.** Does the tool match a receipt to the existing bank line, or create a new transaction? What happens when the receipt total and the card charge differ by a tip? ### 3. Close checklist and month-end review Close agents look over a client file and tell you what's not ready yet. **Who offers it.** Double (formerly Keeper) describes month-end close tools that review a QuickBooks file for issues like uncategorized items and unusual balances. Practice tools like Karbon describe AI features for work tracking and client email inside the firm's workflow. **Where it goes wrong.** Task tracking and file review are different jobs, so know which one you're buying. A checklist can show "bank reconciled: done" while a check from nine months ago still sits on the reconciliation as outstanding and nobody has followed up. Our [month-end close process guide](https://growthy.com/blog/month-end-close-process) lists what a real review looks at. **What to check.** Does it read the balances and flag specific items? Or does it only track who ticked which box? ### 4. Client follow-up on missing info Every firm has a list of "ask the client" items. Follow-up agents send those questions for you. **Who offers it.** Uncat describes a client portal that sends uncategorized transactions to clients to explain, then writes the answers back to QuickBooks Online. Double describes a similar client question flow. **Where it goes wrong.** The client's answer lands in a note, and someone still has to recode the entry. Or the client answers "business" for a charge that was personal. **What to check.** Where does the answer go: into the entry, or into a comment? Who reviews the client's answer before it changes the books? This job covers questions about transactions. Collections and invoice chasing are a separate category of tool. ### 5. Reporting and variance commentary Reporting agents write the story behind the numbers: why margin dropped, why payroll jumped. **Who offers it.** Digits describes AI-written summaries of a company's financials. Intuit describes a finance agent in QuickBooks that summarizes performance. **Where it goes wrong.** A clean paragraph can hide a wrong number. If the categorization underneath is off, the commentary explains a variance that isn't real. **What to check.** Can you click from each sentence to the ledger lines behind it? Does it say when the books for that period aren't closed yet? ## The evaluation checklist to copy Even the best AI agents for accounting firms should pass these six checks before they touch client books. Paste them into your vendor notes and fill in the answers from the demo. > **AI agent evaluation checklist**1. **Review queue before auto-post.** Can every agent entry wait for approval? Can we turn on auto-post later, per client, after we trust it? > 2. **Per-transaction audit trail.** For each entry, can we see what the agent did, when, and who approved it? Does the trail survive after the entry is edited? > 3. **Bulk rollback across clients.** If a bad pattern posts to 30 files, can we undo that batch in one step? Or is it one entry at a time? > 4. **Confidence shown per item.** Does it tell us which entries it's unsure about, one by one, not only an overall score? (More on this in[confidence scores explained](https://growthy.com/blog/confidence-scores-explained).) > 5. **Client data scope.** Which client files can it read? Is one client's data kept out of another client's suggestions? Is our data used to train shared models? > 6. **Same input, same output.** If we run the same month twice, do we get the same entries? If not, how do we review the difference? The first and fourth checks are where the time savings come from. The audit trail, rollback, and repeat test are what let you defend the books a year later. Clients tend to ask about data scope first, and our [AI bookkeeping data security guide](https://growthy.com/blog/ai-bookkeeping-data-security) covers what to ask a vendor there. Bookkeepers who want a longer list can use the [AI bookkeeping evaluation checklist](https://growthy.com/blog/ai-bookkeeping-evaluation-checklist). ## How to pilot an agent on one client first Don't start with your biggest client or your messiest one. Pick a client with a normal month that you've already closed and reconciled. 1. Export the client's bank and card activity for that closed month. 2. Run the agent on it in a sandbox or test company, not the live file, with auto-post turned off. If the tool can only run in the live file, set a closing date with a password on that period first, so nothing can post to it without that password. 3. Export the agent's proposed entries. 4. Compare them to the entries you actually posted, line by line. 5. Mark each difference: agent right, agent wrong, or a judgment call. 6. Read the wrong ones closely. Are they random, or all one kind, like processor deposits or owner transfers? A pattern of the same mistake is fixable with a correction or a rule. Random mistakes are a reason to wait. Run a second closed month the same way. Let it touch live books only after two clean months. ## Frequently asked questions These are the questions firms ask most about AI agents for accounting firms. ### Will an AI agent replace our staff? No. Agents take over the routine entries. Your staff still handle the unsure items and sign off on the close. The hours they get back go to review and client work. ### Is it safe to let an agent post to client books? It can be, once you've tested it. Start with every entry in a review queue. Turn on auto-post only for clients and transaction types where two months of results were clean. Make sure you can roll back a bad batch. ### Do AI agents work with QuickBooks Online? Many do. Intuit describes agents built into QuickBooks Online, and Dext, Uncat, and Double each describe QuickBooks Online connections. Growthy works on top of QuickBooks Online too. If you're comparing accounting software with AI agents, check how each one writes back: as a posted entry, a suggestion, or a note. ### What's the difference between an AI agent and ChatGPT? ChatGPT answers questions and drafts text. It doesn't write to your ledger unless you connect it and let it. An agent is built to act on the books, so it needs review queues and an audit trail that a chatbot doesn't. ### Which AI agent is best for a small firm? The one that fixes your biggest time sink. If your staff spend the day coding bank lines, start with categorization. If they chase receipts, start with capture. Run the six-point checklist on any tool before you commit. ## Conclusion Choosing among the best AI agents for accounting firms starts with your own time log. Find the job that eats the most hours, run the six checks on the tools that do it, and pilot the winner on two closed months in a test file with auto-post off. Once both come back clean, widen it one client at a time. If categorization is where your hours go, [Get started with Growthy](https://growthy.com/signup/?utm_content=best-ai-agents-for-accounting-firms) and see which transactions on a QuickBooks Online client actually need you. More guides for firms live in the [AI for accountants hub](https://growthy.com/topics/ai-for-accountants). --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Topside Entry: What It Is and When Accountants Use One](https://growthy.com/blog/topside-entry): A topside entry adjusts the statements or consolidation, not the ledger. See a balanced elimination example, a late accrual, and the controls reviewers check. The ledger is closed. The statements are due Friday. Then a number still has to change. Nobody wants to reopen the books. So the fix goes on top of the statements. That's a topside entry. Do you work on statements for a parent and its subsidiary? If so, you've likely met a topside entry. A topside journal entry can be perfectly valid. It lives where most controls don't reach, so it needs its own paper trail. > **What is a topside entry?** > > A topside entry is an adjustment made at the financial statement or consolidation level, not in the general ledger. It often lives in a spreadsheet. The ledger keeps its balances. Only the reported numbers change. Two common uses: removing transactions and balances between companies in the same consolidated group, and fixing a late item after the ledger is closed. Reviewers and auditors check them closely because they often bypass the ledger's normal controls. Each one needs a preparer, an approver, and support. It also needs a note on whether it gets pushed down to the ledger, and into which period. ## Key Takeaways - **A topside entry changes the statements, not the ledger:** the general ledger keeps its original balances. - **Eliminations are a common kind:** when you consolidate a parent and a subsidiary, their transactions and balances with each other come out. - **Every topside entry still has to balance:** the elimination in the example below carries $55,000 of debits and $55,000 of credits. - **Late fixes need to be pushed down:** a $6,500 accrual made only on the statements leaves the ledger's year-end balances $6,500 off from the issued statements, and pushes the expense into January. - **Auditors test them on purpose:** topside entries are manual, often late, and skip the usual posting steps. ## Where Topside Entries Come From They usually come from three places. - **Consolidation eliminations.** Two companies in the same group bill each other. Each ledger is right on its own. The consolidated statements would count the same dollars twice. - **Late adjustments.** A reviewer finds a missed accrual after the ledger is closed. The fix goes on the statements so they go out on time. - **Presentation reclassifications.** A balance moves to a different line. Say a vendor was overpaid, leaving a debit balance in accounts payable. That balance gets shown as a receivable. A normal [journal entry](https://growthy.com/blog/journal-entry) goes in the ledger. So does an [adjusting journal entry](https://growthy.com/blog/adjusting-journal-entry) at month-end. A topside entry does the same work one level up, where the ledger never sees it. ## Worked Example: Eliminating Intercompany Activity The numbers here are made up. Parent Co bills its subsidiary, Sub Co, $40,000 in management fees this year. Sub Co pays $25,000. So $15,000 is still owed at year-end. Each company books its own side right. Parent Co shows $40,000 of fee revenue and a $15,000 receivable from Sub Co. Sub Co shows $40,000 of fee expense and a $15,000 payable to Parent Co. When you consolidate the two, that activity comes out. Nobody outside the group paid that $40,000 or owes that $15,000. The topside entry at consolidation: | Account | Debit | Credit | | --- | --- | --- | | Management fee revenue (Parent Co) | $40,000 | | | Management fee expense (Sub Co) | | $40,000 | | Intercompany payable (Sub Co) | $15,000 | | | Intercompany receivable (Parent Co) | | $15,000 | | **Total** | **$55,000** | **$55,000** | Net income for the group stays the same. Revenue and expense each drop by $40,000. Here is what that does to the top line. Say Parent Co's total revenue is $900,000, fee included. Sub Co's is $300,000. Added up, that's $1,200,000. After the elimination, consolidated revenue is $1,160,000. Neither company's ledger moves. Parent Co's books still show the receivable, and they should. You redo the elimination each period with that period's numbers, and it never gets posted to either company's own ledger. ## Second Example: A Late Accrual That Has to Be Pushed Down Now take one company, again with made-up numbers. The December ledger is closed. Then the reviewer finds a $6,500 contractor bill for December work. It was never recorded. The statements go out with a topside entry: | Account | Debit | Credit | | --- | --- | --- | | Contract labor expense | $6,500 | | | Accrued expenses | | $6,500 | | **Total** | **$6,500** | **$6,500** | Leave it there and two things go wrong. First, the ledger's net income runs $6,500 higher than what you issued. So do its retained earnings. Second, the bill gets entered and paid in January. January picks up $6,500 of December's expense. The fix is to get it pushed down (posted into the ledger itself; not the same thing as pushdown accounting in acquisitions). The clean way is to reopen December with approval and post the same accrual dated December 31. Reverse it on January 1. The January bill then nets to zero. Then retire the topside entry. Mark it pushed down, note the ledger entry it became, and keep it on file. That way next year's prior-year column won't count the $6,500 twice. Can't reopen the year? Post it in January against opening retained earnings: debit retained earnings, credit accrued expenses. Charge the January bill to accrued expenses, not expense. Skip the reversal. The ledger's December balances and income statement still won't show the $6,500, so keep the topside entry for next year's prior-year column. Eliminations and presentation reclasses stay on top and get redone every period. Late fixes belong in the ledger, so they get pushed down. ## Why Reviewers and Auditors Look at Them Closely It might seem that any entry outside the ledger is a way to hide something. In most cases, it's routine work: every consolidation needs eliminations. Topside entries still get extra attention, for plain reasons. A ledger entry usually goes through posting rules, an approval step, and an audit trail. A topside entry often skips all three. It's typed into a spreadsheet by hand, usually late in the close, and often by the most senior person on the file. Reviewers look for those traits. The auditing standards on fraud (AU-C 240 for private companies, PCAOB AS 2401 for public ones) tell auditors to test journal entries and other adjustments made while preparing the statements, including consolidating adjustments that never go through a formal journal entry. So expect an auditor to ask for each topside entry and its support. Internal reviewers should ask too. ## Control Checklist for Every Topside Entry Keep this with each entry: - **Prepared by.** One named person. - **Approved by.** A different named person, with a date. - **Support attached.** The invoice, intercompany rec, or note that triggered it. - **Reason in the memo.** One sentence a stranger could follow next year. - **Recurs or pushes down.** Mark eliminations and reclasses as recurring. Give late fixes a push-down date, a target period, and an owner. - **Tied out.** Start from the ledger[trial balance](https://growthy.com/blog/trial-balance), add the topside entries, and[tie out](https://growthy.com/blog/tie-out) to the issued statements at $0.00. That last check catches a common miss: an amount typed straight into one statement without a balancing entry. ## Conclusion A topside entry isn't a red flag. An undocumented one is. Record who made it and who approved it. Attach the support. Then decide whether it stays at the top or goes down into the ledger. The same goes for an unknown item parked in a [suspense account](https://growthy.com/blog/suspense-account) inside the ledger. For more terms like this one, see the [bookkeeping glossary](https://growthy.com/topics/glossary). Growthy categorizes transactions automatically and asks when it's unsure. You review and approve before close, not after the statements go out. Its Trial Balance report shows what the ledger says before anyone adjusts on top. Related: [Tick and Tie](https://growthy.com/blog/tick-and-tie) · [True-Up in Accounting](https://growthy.com/blog/true-up-in-accounting) [**Get started with Growthy**](https://growthy.com/signup/?utm_content=topside-entry) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [True-Up in Accounting: Meaning, Examples, and Journal Entries](https://growthy.com/blog/true-up-in-accounting): A true-up replaces an estimate with the actual amount once it's known. Meaning, 3 worked journal entries with debits and credits, and how to document one. ## Introduction It's the last day of the month. The utility bill hasn't come in yet, so you book your best guess. About a week later the real bill shows up, and it's $140 higher than your guess. Now what? You book a true-up. If you've searched "true up in accounting" or "true up meaning" because a reviewer asked for one, this is the entry they meant. It's a kind of [adjusting journal entry](https://growthy.com/blog/adjusting-journal-entry), and true-up accounting is easy to get sloppy with. This [glossary](https://growthy.com/topics/glossary) entry covers the meaning, three worked examples, and how to document one. > **What is a true-up in accounting?** > > A true-up is an adjusting entry that replaces an estimate with the actual amount once the actual is known. You booked $1,200 for a utility bill at month-end. The real bill says $1,340. The true-up books the $140 difference, so total expense for that bill equals the $1,340 actual; entering the bill against the accrual clears it. True-ups show up at month-end, at year-end, when a vendor invoice lands, and after an insurance premium audit. ## Key Takeaways - **A true-up books the difference, not the whole amount:** a $1,200 estimate and a $1,340 bill means a $140 entry. - **In the strict sense it fixes an estimate, not a mistake:** in practice people say "true up" for any entry that brings a balance back to its support, but an error is really a correcting entry, and the difference decides which period it lands in. - **The direction can go either way:** if the actual comes in lower, the true-up reduces the expense instead. - **A true-up leaves the accrual equal to what's owed:** a $24,000 bonus accrual trued down to a $21,000 approved bonus leaves $21,000, and the payout takes it to $0. - **Write down the estimate, the actual and its source, the difference, and the period:** a reviewer should be able to rebuild the entry from your memo line alone. - **All numbers in this guide are illustrative:** round figures chosen to show the mechanics, not benchmarks. ## Body ### What a True-Up Is (and Isn't) Accrual books run on estimates. You record expenses in the month they belong to, even when the bill hasn't arrived. That's the whole point of [accrual accounting](https://growthy.com/blog/accrual-vs-cash-accounting). But an estimate is a placeholder. When the real number shows up, the placeholder has to go. The true-up is how it goes. You compare what you booked to what you now know. Then you post a [journal entry](https://growthy.com/blog/journal-entry) for the gap. People use "true up" outside the ledger too, like when a contract settles an estimated fee against the final count. The idea is the same: estimate first, settle to actual later. Two nearby entries get mixed up with it: - **Reversing entry.** Some firms reverse the whole accrual on day one of the next month, then book the real bill in full. The net effect matches a true-up. It's just a different path to the same number. - **Correcting entry.** This fixes an error, like a bill posted to the wrong account. Nothing about it was an estimate. If you need a refresher on which side goes up, see [debits and credits](https://growthy.com/blog/credits-and-debits). Expenses go up with a debit. Liabilities go up with a credit. ### Example 1: Accrued Expense True-Up *Illustrative numbers.* On January 31, the utility bill hasn't arrived. You book an [accrued expense](https://growthy.com/blog/accrued-expense) of $1,200. | Date | Account | Debit | Credit | | --- | --- | --- | --- | | Jan 31 | Utilities expense | $1,200 | | | Jan 31 | Accrued expenses | | $1,200 | On February 8 the bill arrives for $1,340. January is already closed. So you enter the bill, clear the accrual, and let the $140 gap land in February. | Date | Account | Debit | Credit | | --- | --- | --- | --- | | Feb 8 | Accrued expenses | $1,200 | | | Feb 8 | Utilities expense | $140 | | | Feb 8 | Accounts payable | | $1,340 | Check it: $1,200 + $140 = $1,340. Debits equal credits. The utilities accrual is back to $0. The $140 line is the true-up. The rest is the normal bill entry. The reversing-entry path gets you to the same place. On February 1 you debit accrued expenses $1,200 and credit utilities expense $1,200. On February 8 you book the full bill: debit utilities $1,340, credit accounts payable $1,340. February utilities nets to $1,340 minus $1,200, which is $140. Same answer. ### Example 2: Prepaid Insurance and a Premium Audit True-Up *Illustrative numbers.* A client pays $6,000 up front for a 12-month workers' comp policy. You book it as a [prepaid expense](https://growthy.com/blog/prepaid-expense) and expense $500 a month. That $6,000 is itself an estimate. The carrier set it from the payroll the client expected to run. After the term ends, the carrier audits actual payroll and bills or refunds the difference. Say payroll ran higher and the audit bill is $900. That's the true-up: | Account | Debit | Credit | | --- | --- | --- | | Insurance expense | $900 | | | Accounts payable | | $900 | If the audit shows a refund instead, flip it. Debit a receivable from the carrier and credit insurance expense. Compare that to a different problem. After seven months, the amortization schedule says $2,500 should be left ($6,000 minus 7 × $500). The ledger shows $3,000, because one month's entry never got posted. The fix is the same shape (debit insurance expense $500, credit prepaid insurance $500). Many reviewers would still call it "truing up prepaid to the schedule." Strictly, though, nothing was estimated. A step got missed, so it's a correction of an error, and it follows the error rules below rather than the change-in-estimate rules. ### Example 3: Bonus Accrual True-Up *Illustrative numbers. Withholding and employer payroll taxes are left out to keep the mechanics clear. In practice you'd accrue the employer taxes on the bonus too, true those up the same way, and pay the bonus net of withholding.* A client plans a year-end staff bonus. You accrue $2,000 a month. | Account | Debit | Credit | | --- | --- | --- | | Bonus expense | $2,000 | | | Accrued bonuses | | $2,000 | After 12 months, accrued bonuses holds $24,000. In December the owner approves $21,000. You accrued $3,000 too much. The December true-up reduces the accrual by the extra $3,000: | Account | Debit | Credit | | --- | --- | --- | | Accrued bonuses | $3,000 | | | Bonus expense | | $3,000 | When payroll pays the bonus in January: | Account | Debit | Credit | | --- | --- | --- | | Accrued bonuses | $21,000 | | | Cash | | $21,000 | Check it: $24,000 − $3,000 − $21,000 = $0 left in accrued bonuses. Bonus expense for the year is $24,000 minus $3,000, which is $21,000. That's the approved amount. Timing matters here. If the owner only confirms the number in early January, before you close December, the true-up still goes in December. The approval settles the amount of a bonus the company already owed at December 31, and you learned it before the books closed, so the year-end number should reflect it. ### When True-Ups Happen A true-up in accounting can come up at several points in the year: - **Month-end close.** Any accrual from last month that now has a real bill behind it. This is part of a normal[month-end close process](https://growthy.com/blog/month-end-close-process). - **When the vendor invoice lands.** You can true up the moment the bill is entered instead of waiting for month-end. - **Quarter-end and year-end.** Bonus and commission accruals often get trued up here. - **After an insurance premium audit.** Like the workers' comp bill above. - **After an outside review.** A CPA or auditor may propose year-end adjustments. Some are true-ups of estimates. Others are corrections of errors, and those follow the correcting-entry rules instead. What if the period is already closed? For a month you've already closed and reported, a true-up is a change in an estimate, so it goes in the current period. You don't reopen January because the utility bill came in $140 high. Year-end is different. If the actual arrives before the year's financial statements or tax return are final, and it relates to something that existed at year-end, it usually belongs in that year, which is what Example 3 does. Errors are a separate question: whether you fix them in the current period or go back and restate depends on how material the error is. ### How to Document a True-Up So a Reviewer Can Follow It Put four things in the memo line: the estimate (with its entry number), the actual and its source, the difference, and the period it lands in. Then attach the bill or report behind the actual. Here's a line you can copy: > True-up: Jan utilities accrual. Est. $1,200 (JE 01-31). Actual $1,340 per invoice #___ (received 2/8). Difference $140 booked to Feb. Then check the balance you just cleared. The accrued expenses account should [tie out](https://growthy.com/blog/tie-out) to its supporting schedule, and this bill's line on that schedule should now be $0. If either doesn't hold, something else is off, and you need to find it. One more rule. A true-up needs a known estimate and a known actual. If money moved and you can't say what it was, that's not a true-up. Park it in a [suspense account](https://growthy.com/blog/suspense-account) and find the source first. Growthy doesn't decide your true-ups for you. It categorizes bank activity automatically from QuickBooks Online or a CSV import, and you review and approve each call. The estimate, the actual, and the judgment about which period gets the difference stay with you. ## Conclusion Estimates are fine. Leaving them in the books after the real number shows up is not. When the bill arrives, book the difference, write down where the number came from, and check that the accrual clears. Related: [Tick and Tie](https://growthy.com/blog/tick-and-tie) · [Topside Entry](https://growthy.com/blog/topside-entry) [**Get started with Growthy**](https://growthy.com/signup/?utm_content=true-up-in-accounting) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Tick and Tie: What It Means in Accounting and How to Do It](https://growthy.com/blog/tick-and-tie): Tick and tie means tracing each figure on a schedule to its source and marking it. See a worked bank rec, an $18 transposition, and a tick-mark legend. A reviewer opens your March bank rec. Next to every number there's a small mark: a check, a letter, a circled X. Those marks are the work. They're proof that someone traced each figure back to where it came from, and they tell the reviewer what that source was. That habit has a name: tick and tie. If you've seen it on a review note and went looking for the tick and tie meaning, here's the method, a worked bank rec with one number that doesn't agree to its source, and a tick-mark legend you can paste into your own workpapers. > **What does tick and tie mean in accounting?** > > Tick and tie means tracing each figure on a schedule to its source and marking it with a tick mark that records what you found. The "tick" is the mark that says you've checked the number against a bank statement, invoice, or ledger. The "tie" is confirming that the schedule's total agrees to the general ledger, trial balance, or another supporting record. A workpaper is ticked and tied when every number carries a mark, every total ties, and every exception has a note. ## Key Takeaways - **Tick = trace and mark:** each number gets a mark that names the source it was checked against. - **Tie = totals agree:** the schedule total must match the general ledger, trial balance, or another supporting record, to the penny. - **Tie-out is the result:** most people use tick and tie for the method and tie-out for the agreed totals it produces. - **A balanced rec can still hide an error:** in the example below, the rec balanced and one check was still off by $18.00. - **A difference divisible by 9 hints at a transposition:** $875.60 recorded, $857.60 cleared, $18.00 apart. - **Every firm keeps its own legend:** tick marks aren't standardized, so the legend goes on the workpaper. ## Tick and Tie vs. Tie-Out The two terms sound alike, and people use them loosely. Here's a common way to split them. **Ticking** works line by line. You take one number, find its source, confirm they match, and put a mark next to it. The mark tells the next reader what you checked it to. A check mark might mean "agreed to the bank statement." A "T" might mean "cleared in next month's bank activity." **Tying** works at the total. You confirm the schedule's total agrees to another record: the general ledger, the trial balance, or a subledger. A [tie-out](https://growthy.com/blog/tie-out) is where you'll land when both are done: two independent totals that agree, with a $0.00 difference. Tick and tie is how you prove that result line by line, so a reviewer doesn't have to take the total on faith. Two checks usually ride along. **Footing** means adding a column again to confirm its total. **Cross-footing** means adding across each row, then confirming the row totals add up to the same grand total as the columns. You'll see the method outside bank recs too. Before a set of financial statements goes out, staff tick each number in the report back to the trial balance and tie every subtotal. ## How to Tick and Tie, Step by Step This is the tick and tie accounting routine for any schedule, from a bank rec to an AR aging. 1. **Open the schedule and add a tick column.** On paper, that's the margin. In a spreadsheet, add a narrow column to the right of the amounts. 2. **Foot every column.** Recompute each total and mark it F if it agrees. 3. **Trace each line to its source.** Bank statement, check register, invoice, deposit slip. Mark each line with the tick that names the source. 4. **Tie the total.** Agree the schedule total to the general ledger or trial balance and mark it. 5. **Mark exceptions, don't fix them silently.** Circle anything that doesn't agree and write a short note: what you expected, what you found, what happens next. You'll want that trail later. 6. **Sign and date it.** Add your initials and the date so the reviewer knows who checked what, and when. ## Worked Example: A March Bank Reconciliation Here's a small [bank reconciliation](https://growthy.com/blog/bank-reconciliation) for March 31. Each line shows where it was traced and the mark it got. | Line | Amount | Traced to | Tick | | --- | --- | --- | --- | | Balance per bank statement, 3/31 | $48,215.40 | March bank statement | ✓ | | Add: deposit in transit, 3/31 | $3,600.00 | Deposit slip; April bank activity, cleared 4/1 | T | | Less: outstanding check #1042 | ($1,250.00) | Check register; April bank activity | T | | Less: outstanding check #1045 | ($875.60) | Check register; April bank activity shows $857.60 | X | | Adjusted bank balance | $49,689.80 | Recomputed | F | | Balance per general ledger, cash | $49,724.80 | GL cash account | GL | | Less: bank service fee not yet recorded | ($35.00) | March bank statement | ✓ | | Adjusted book balance | $49,689.80 | Recomputed | F | | Difference | $0.00 | Recomputed | F | Let's check the math. Bank side: $48,215.40 + $3,600.00 − $1,250.00 − $875.60 = $49,689.80. Book side: $49,724.80 − $35.00 = $49,689.80. The rec balances. But one line didn't agree to its source. Check #1045 is listed at $875.60, but April's bank activity shows it cleared for $857.60. That's an $18.00 gap. The rec balanced anyway because the same wrong amount sits on both sides, so the error cancels out and doesn't show up in the difference. The outstanding-check list was pulled from the ledger, and the ledger recorded $875.60. That's why you trace outstanding items to the next month's bank activity, using online activity or a cutoff statement if April's statement isn't out yet. Footing alone would've passed this rec. Left alone, the error would show up next month as an $18.00 difference on April's rec. Ticking catches it a month earlier. ### What to do next 1. **Pull the check image and the invoice.** The check reads $857.60, and the supplies invoice it paid is $857.60. So the bank's right and the ledger entry was keyed wrong. (If the invoice had been $875.60, the check was underpaid. The $18.00 would be a balance still owed to the vendor, not an expense correction.) 2. **Look at the size of the gap.** $18.00 divides evenly by 9 ($18.00 ÷ 9 = $2.00). When a gap divides by 9, it's often two digits that got swapped, or sometimes a slide (a misplaced decimal). Here, the 5 and the 7 traded places. 3. **Fix the check and record the fee.** Check #1045 paid that office supplies invoice. If March is still open in QuickBooks Online, the cleaner fix is to edit check #1045 itself to $857.60, so it matches the bank line when it clears. If you can't edit the check (for example, it's already matched to a bank-feed line), book the correction as an[adjusting journal entry](https://growthy.com/blog/adjusting-journal-entry) dated March 31, like AJE 1 below, and clear the check and the $18.00 entry together on April's rec. If March is already locked, get the reviewer's sign-off before posting into it. Either way, record the $35.00 fee (AJE 2 below). 4. **Re-run the rec.** Bank side: $48,215.40 + $3,600.00 − $1,250.00 − $857.60 = $49,707.80. Book side: $49,724.80 + $18.00 − $35.00 = $49,707.80. Difference: $0.00. Leave the X on check #1045 where it is. Add an R next to it with a note: invoice and check both $857.60, corrected by check edit or AJE 1, plus your initials and the date. 5. **Tie the result.** Once the corrections are posted, agree the corrected $49,707.80 to the cash line on the adjusted trial balance and mark it TB. The entries from step 3, if you correct by journal entry (if you edit the check instead, skip AJE 1): | Entry | Account | Debit | Credit | | --- | --- | --- | --- | | AJE 1: Correct check #1045 ($875.60 recorded, $857.60 cleared) | Cash | $18.00 | | | | Office Supplies Expense | | $18.00 | | AJE 2: Record March bank service fee | Bank Service Charges | $35.00 | | | | Cash | | $35.00 | Each entry balances: $18.00 debit and $18.00 credit, then $35.00 debit and $35.00 credit. ## A Tick-Mark Legend You Can Paste Into a Workpaper Tick marks aren't standardized. What matters is that the legend's on the workpaper, so anyone reading it knows what each mark means. Copy this and edit it to fit your firm: > **Tick-mark legend**- ✓ : Agreed to the source named on that line > - T : Traced to next month's bank activity (item cleared) > - F : Footed (column total recomputed and agrees) > - CF : Cross-footed (row totals add up to the same grand total as the columns) > - GL : Agreed to the general ledger balance > - TB : Agreed to the trial balance > - PY : Agreed to the prior-period workpaper > - X : Exception, does not agree (see note) > - R : Exception resolved (note names the fix, such as the correcting entry) > - ? : Open question, waiting on support > - Initials and date : Who ticked it, and when If your spreadsheet doesn't handle symbols well, the letter codes work on their own. Use the same legend on every client file so a reviewer never has to guess. ## Conclusion An unmarked number is an unchecked number. Tick each line to its source, tie each total to the ledger, and write a note for anything that doesn't agree. Then work the exceptions before you call the rec done. Tick and tie belongs on every [close checklist](https://growthy.com/blog/close-checklist), as the way you prove each tie-out. For more terms like this one, browse the [bookkeeping foundation terms](https://growthy.com/topics/glossary/bookkeeping-foundation-terms) or the full [accounting glossary](https://growthy.com/topics/glossary). Growthy categorizes QuickBooks Online and CSV transactions and asks you when it's unsure. The ticking is still yours. Related: [True-Up in Accounting](https://growthy.com/blog/true-up-in-accounting) · [Topside Entry](https://growthy.com/blog/topside-entry) [**Get started with Growthy**](https://growthy.com/signup/?utm_content=tick-and-tie) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Bookkeeping Client Onboarding Checklist: Intake to First Close](https://growthy.com/blog/bookkeeping-client-onboarding-checklist): A copy-paste bookkeeping client onboarding checklist in five phases, from signed scope to first close, plus a document-request email and a 30-day example. You sign a new monthly client on Friday. By the next Friday you've sent four emails asking for bank statements. You still don't have QuickBooks Online access. And the prior bookkeeper left a few hundred transactions in Uncategorized Expense. That first month is where the margin goes. If you're [scaling a bookkeeping practice](/topics/bookkeeper-scaling) past 10 or 15 clients, you feel it every time you add one. The fix is boring on purpose. Run the same onboarding checklist for every client, in the same order, from signed engagement to first close. Nothing gets skipped. Nothing gets done twice. Cleanup gets quoted before it eats your hours. Below you'll find a five-phase checklist you can paste into your task list today. You also get a document-request email template. Then there's a synthetic 30-day example that shows where the hours go. > **What is a bookkeeping client onboarding checklist?** > > A bookkeeping client onboarding checklist is a fixed list of steps you run for every new monthly client, from intake to the first closed month. It has five phases. First, a signed engagement and a written scope. Second, access and one consolidated document request. Third, a historical cleanup check. Fourth, chart of accounts and rules setup. Fifth, the first month close. Most firms can finish all five within 30 days if the client sends documents in the first week. The checklist keeps a new client's first month from costing several steady months of work. ## Key Takeaways - **Scope comes before access:** Sign the engagement letter and write down the scope before you log in to anything. - **Send one document request:** A single email with one deadline beats four follow-ups spread over two weeks. - **The cleanup check protects your quote:** Look at the last reconciled month before you promise a monthly fee. Messy history gets its own quote. - **Set up rules before the first close:** Map the top recurring payees on day one of setup, not after 200 transactions are waiting. - **The first close is the real test:** Onboarding is done when every account is reconciled and the first reports go out. - **Track your onboarding hours:** In our synthetic example, month one takes 11 hours. A steady month takes about 3. Those numbers are illustrative estimates, not measurements. ## Why the first month decides your margin A steady client is predictable. You know the accounts, the vendors, and the odd transactions. A new client is none of those things yet. Here's a rough picture. It's an illustrative estimate, not a statistic. A small services client might take 3 hours in a normal month. The same client can take 10-12 hours in month one. Much of that time goes to waiting, chasing, and fixing work you didn't do. If you bill the same flat fee in month one as in month six, the first month runs at a loss. Two fixes help. The first is to quote onboarding and cleanup as their own line. Our guide to [pricing a monthly bookkeeping package](/blog/bookkeeping-pricing-packages) covers how to set that up. The second is to know [what your hours are actually worth](/blog/bookkeeper-hourly-rate). Then an 11-hour onboarding month shows up as a real cost on paper. Some argue a checklist is overkill for a small client with 50 transactions a month. In practice, small clients are where a skipped step hurts most. A flat fee leaves no room for a surprise cleanup. The checklist below won't make month one as short as month six. It makes month one the same length every time. That's what lets you quote it. ## The five-phase onboarding checklist Copy each phase into your task list as a template. Run it top to bottom for every new client. Don't start a phase until the one before it is done. ### Phase 1: Signed engagement and scope - Engagement letter signed and saved to the client folder - Scope written down: entities, bank accounts, credit cards, loans - Monthly transaction volume band agreed (for example, under 150 or 150 to 400) - Start month agreed, and whether any earlier months are in scope - Monthly work and cleanup work listed as separate items - One client contact named to answer questions, with a reply-time expectation - Monthly delivery date agreed (for example, reports by the 15th) - Out-of-scope rule written in one sentence: new work gets a new quote ### Phase 2: Access and document requests - QuickBooks Online accountant user invited and accepted - Read-only bank and credit card access set up, or statements requested - Last 3 months of bank and card statements for every account - Loan statements and payroll reports for the same period - Prior-year tax return, or the name of the preparer - Open invoice and open bill lists, if the client tracks them - One document-request email sent with one deadline (template below) - Follow-up date on your calendar, 3 business days after the deadline ### Phase 3: Historical cleanup check - Last reconciled month noted for every bank and card account - Balance in Uncategorized Income and Uncategorized Expense noted - Undeposited Funds balance noted - Opening Balance Equity checked for a nonzero balance - Duplicate transactions spot-checked for the last 3 months - Decision recorded: monthly only, or a separate cleanup project - If cleanup is needed, a cleanup quote sent before monthly work starts ### Phase 4: Chart of accounts and rules setup - Chart of accounts trimmed and matched to your firm's standard layout - Unused and duplicate accounts made inactive, never deleted - Top 15 to 20 recurring payees mapped to accounts - Bank rules created for those payees - Classes or locations set up only if the client needs them for reporting - One-page client file written: quirks, owner draws, who approves what ### Phase 5: First month close - All transactions for the month categorized - Client questions sent in one batch, not one at a time - Every bank and card account reconciled to the statement - Profit and loss and balance sheet reviewed for anything odd - First reports sent with a short note on what you fixed and what's still open - Hours for the month logged against the onboarding quote Reconciliation is its own routine, and it's the same every month. Follow our [month-end QuickBooks reconciliation walkthrough](/blog/quickbooks-reconciliation) for the step-by-step version. ## Document-request email template Copy this into your email tool. Swap the bracketed parts. Send it once, on the day the engagement letter comes back. > **Subject:** [Client name] bookkeeping setup: documents needed by [date] > > Hi [first name], > > Thanks for signing on. To close your first month on time, I need the items below by **[date, 5 business days out]**.1. Accept the QuickBooks Online invite I sent to [your email]. > 2. Bank and credit card statements for [month 1] through [month 3], for every account. > 3. Loan statements for the same months. > 4. Payroll reports for the same months, if you run payroll. > 5. Your [prior year] tax return, or your tax preparer's name and email. > 6. A list of unpaid invoices and unpaid bills, if you keep one. > > > > If something is hard to find, send what you have by the deadline. Tell me what's missing and I'll work around it. > > Once I have these, your first month's reports will arrive by [delivery date]. > > Thanks, > [Your name] One email with a numbered list gets faster answers than a thread of single asks. The client can check items off, and you can point to item 3 instead of writing a new request. ## Worked example: a new client's first 30 days This example is synthetic. The client is made up, and the hours are illustrative estimates, not Growthy measurements. The client is a small design studio. It has two bank accounts, one credit card, and about 150 transactions a month. The prior bookkeeper stopped two months ago. | Days | Phase | What happened | Hours (illustrative) | | --- | --- | --- | --- | | 1 to 2 | 1. Engagement and scope | Letter signed. Scope set at 3 accounts and under 150 transactions a month | 1.0 | | 2 to 8 | 2. Access and documents | One request email sent. Statements came back on day 6. One loan statement came on day 8 | 1.5 | | 8 to 10 | 3. Cleanup check | Last reconciled month was 2 months back. 212 items sat in Uncategorized Expense. A separate cleanup quote was sent and approved | 2.0 | | 10 to 14 | 4. Accounts and rules | Merged 9 duplicate accounts. Mapped 18 recurring payees. Wrote the client file | 2.5 | | 15 to 30 | 5. First close | Categorized the month. Sent one batch of 7 questions. Reconciled 3 accounts. Sent reports on day 30 | 4.0 | | | | **Total** | **11.0** | The totals add up like this: 1.0 + 1.5 + 2.0 + 2.5 + 4.0 = 11.0 hours. If a steady month for this client takes about 3 hours, month one costs about 3.7 times as much (11.0 divided by 3.0). Two things kept this from getting worse. The cleanup check caught the 212 uncategorized items early, so that work went into its own quote. And the single email meant documents arrived by day 8, not day 20. ## Where Growthy fits The checklist is yours to run. Software can't sign the engagement letter or chase the prior-year return. It can help with Phases 4 and 5 and with every month after. Growthy connects to QuickBooks Online. You approve lines, and approved lines post back to QuickBooks Online. See how the [QuickBooks Online sync](/features/quickbooks-sync) works. Bank access is read-only, and Growthy never moves money. Growthy categorizes with pattern learning and asks when it's unsure. On first import it gets 85% right, and you review the rest. The multi-client dashboard shows which client months are stuck. That helps when you're deciding [how many clients one bookkeeper can handle](/blog/how-many-clients-can-one-bookkeeper-handle). It also shows when a new client is still eating time in month three. One honest limit: Growthy doesn't replace the reconcile screen in QuickBooks Online. You still reconcile there. ## Frequently asked questions These are the questions that come up most when firms build a bookkeeping client onboarding checklist. ### How long should bookkeeping client onboarding take? Plan for about 30 days from signed letter to first closed month. The biggest variable is how fast the client sends documents. A clean client with fast documents can finish in 2-3 weeks. A client with months of unreconciled history needs a separate cleanup project first. ### Should I bill onboarding separately? Many firms do. Onboarding takes more hours than a normal month, so a separate onboarding or cleanup line keeps month one from running at a loss. Set it up in your package pricing so the client sees it before signing. ### What if the client's books are months behind? Treat catch-up as a cleanup project with its own quote and its own timeline. Start the monthly work only after the cleanup is done, or run both at once with clear due dates for each. ### What access do I need on day one? You need accountant access to QuickBooks Online and read-only access to bank and card data, or the statements. Everything else can follow in the document request. ## Conclusion A new client should add margin from the first month. Run the five phases in order. Send one document request. Check the history before you quote. Set up rules before the first close. Then log your hours so the next quote is based on real numbers. Copy the checklist and the email into your templates before your next client signs. [Get started with Growthy](/signup/?utm_content=bookkeeping-client-onboarding-checklist) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [QuickBooks Reconciliation: A Month-End Walkthrough for Bookkeepers](https://growthy.com/blog/quickbooks-reconciliation): The QuickBooks Online reconcile routine, step by step. Plus a copy-paste month-end checklist and a worked example that traces a stuck difference to zero. --- ## title: "QuickBooks Reconciliation: A Month-End Walkthrough for Bookkeepers" slug: quickbooks-reconciliation meta: title: "QuickBooks Reconciliation: A Month-End Walkthrough for..." description: "The QuickBooks Online reconcile routine, step by step. Plus a copy-paste month-end checklist and a worked example that traces a stuck difference to zero." featuredImageQuery: "bank statement month end" It's the third business day of the month. You have twelve client files open. Each one has a checking account and a card or two that need to tie to the statement before you can call the month closed. That tie-out lives on one screen in QuickBooks Online: Reconcile. It's the last gate in any [QuickBooks automation workflow](/topics/quickbooks-automation), because no rule or feed can prove the books match the bank. Only the statement can. This guide is the QBO reconcile routine, click by click. You get a checklist to copy into every client file. You also get a worked example of a difference that won't clear, traced to its causes with the numbers shown. If you want the general theory of matching books to a bank, read our guide to [bank reconciliation basics](/blog/bank-reconciliation) first. This page is only about doing it inside QBO. > **What is QuickBooks reconciliation?** > > QuickBooks reconciliation is the month-end check that the transactions in a QuickBooks Online bank or credit card account match the bank's statement. You enter the statement's ending date and ending balance. Then you tick each transaction that also appears on the statement. When the difference between the statement balance and the cleared balance in QBO reaches $0.00, you finish, and QBO saves a reconciliation report. If the difference won't reach zero, the cause is almost always one of six things: a duplicate, a missing item, a wrong amount, a wrong date, a sign reversal, or a change to a transaction reconciled in an earlier month. ## Key Takeaways - **Two numbers drive it:** the statement's ending date and ending balance. Get either wrong and nothing else will tie. - **Check the beginning balance first:** it must equal the prior statement's ending balance. If it doesn't, fix that before you tick anything. - **Finish only at $0.00:** QBO can post an adjustment to force a finish. That hides the problem instead of fixing it. - **The cause list is short:** duplicates, missing items, wrong amounts, wrong dates, sign reversals, and edits to earlier months. - **Two quick math tests:** a difference that is twice one transaction points to a sign reversal. A difference divisible by 9 points to swapped digits. - **Keep the report:** save each month's reconciliation report with the client's close file. ## Before you open the reconcile screen Reconcile goes faster when the feed work is already done. Before you start, check these for each account: 1. You have the bank or card statement for the month as a PDF. 2. Every bank feed item dated in the month is categorized or matched. If the feed queue still has a backlog, clear it first. Our guide to[automating QuickBooks bookkeeping](/blog/automate-quickbooks) covers how to shrink that queue. 3. Last month is reconciled. You can't reconcile March cleanly on top of an open February. 4. You know the statement's opening balance, ending balance, and ending date. That last point matters more than it looks. Card statements often close mid-month, like on the 17th. Use the date printed on the statement, not the calendar month end. ## How to reconcile an account in QuickBooks Online, step by step These steps follow the current QBO reconcile flow. Menu placement shifts a little between QBO navigation layouts, so look for Reconcile in the Settings (gear) menu or under your accounting or transactions menu. ### Step 1: Open Reconcile and pick the account Go to Reconcile. Choose the bank or credit card account from the account list. Do one account at a time. Finish it before you start the next. ### Step 2: Enter the statement ending date and ending balance Type the ending balance and ending date exactly as the statement shows them. QBO shows a beginning balance for you. Compare it to the opening balance on the statement. If they match, click **Start reconciling**. If they don't match, stop here. Something reconciled in an earlier month has changed. Skip to the section on prior-month discrepancies below and fix that first. Some statements list bank fees or interest earned. If the screen gives you fields for them, enter them there. If not, record them as normal transactions before you reconcile. ### Step 3: Tick the items that cleared QBO lists every transaction in the account up to the ending date. Tick each one that also appears on the statement. Leave items that haven't hit the bank yet, like a check the vendor hasn't cashed. Those stay open and show up again next month. Work from the statement, top to bottom, not from the QBO list. Filter or sort by amount when the list is long. It's faster to find $1,650.00 in a sorted list than to scroll. ### Step 4: Get the difference to $0.00 and finish QBO shows a running difference as you tick. When it reads $0.00, click **Finish now**. If you get pulled away halfway, choose **Save for later**. Your ticks are kept. If the difference isn't zero, don't finish. QBO can post an adjustment entry to force it through. That entry books the gap to an expense account, and next month's work starts from a wrong number. Trace the cause instead. The next two sections show how. ### Step 5: Save the reconciliation report After you finish, QBO offers the reconciliation report. You can also open it later from the reconcile history for that account. Save it as a PDF in the client's month-end folder. It lists what cleared, what's still open, and the statement balance you tied to. That report is your proof the month closed clean. ## When the difference won't clear: the short list of causes A stuck difference feels random. It isn't. Check these causes in this order. | Cause | What it looks like | How to find it | | --- | --- | --- | | Duplicate from the bank feed | One deposit or payment ticked twice, often once from the feed and once from a manual entry | Count items. If the statement has 9 deposits and you ticked 10, one is a duplicate. | | Missing transaction | A fee, transfer, or payment on the statement with nothing to tick in QBO | Match the statement line by line. Add what's missing. | | Wrong amount | $1,280.00 entered as $1,820.00 | If the difference divides evenly by 9, look for swapped digits. | | Sign reversal | A refund entered as a payment, or a payment entered as a deposit | If the difference is exactly twice one transaction, that one is backwards. | | Wrong date | An item dated after the ending date, so it doesn't show on the list | Widen the date filter or check items dated just past the statement date. | | Prior-month change | Someone edited or deleted an item reconciled last month | The beginning balance won't match the statement. See the prior-month section below. | On credit card accounts, sign reversals are the most common. A card refund entered as a charge is off by twice the refund. ## Worked example: tracing a $1,247.50 difference This example is synthetic. The client, the account, and the numbers are made up to show the method. A landscaping client's March checking statement shows: - Opening balance: $18,420.00 - Deposits: 9 items, $14,880.25 total - Withdrawals: $11,994.85 total - Ending balance: $21,305.40 Check the math: $18,420.00 + $14,880.25 − $11,994.85 = $21,305.40. The statement ties to itself. In QBO, the beginning balance shows $18,420.00. It matches, so no prior-month problem. After ticking, QBO shows a cleared balance of $22,552.90. The difference is $21,305.40 − $22,552.90 = −$1,247.50. **First test: is it one item?** No transaction is $1,247.50. Half of it is $623.75, and no item is that either. So it's not one simple sign reversal. **Second test: compare the totals.** In QBO, the ticked deposits total $16,329.00 across 10 items. Ticked withdrawals total $12,196.10. Against the statement: - Deposits: $16,329.00 in QBO vs. $14,880.25 on the statement. QBO is $1,448.75 high, with one extra item. - Withdrawals: $12,196.10 in QBO vs. $11,994.85 on the statement. QBO is $201.25 high. **Cause 1: a sign reversal.** The withdrawal gap is $201.25. The statement shows a $201.25 vendor refund as a deposit. In QBO it was entered as an expense, so it sits on the wrong side. Fix it to a deposit. QBO withdrawals drop by $201.25 and deposits rise by $201.25. The cleared balance moves up by $402.50, to $22,955.40. The new difference is $21,305.40 − $22,955.40 = −$1,650.00. **Cause 2: a duplicate.** Deposits are now $16,530.25 in QBO against $14,880.25 on the statement. That's $1,650.00 high, with 10 items against the statement's 9. Two ticked deposits are $1,650.00 each. One came in from the bank feed. The other was a manual deposit of the same customer payment. The statement shows it once. Untick the manual one and delete it, or match it to the feed item. The cleared balance drops to $21,305.40. Difference: $21,305.40 − $21,305.40 = $0.00. Click **Finish now** and save the report. Two errors that point in opposite directions made the gap look bigger than either one alone. Comparing deposit and withdrawal totals separately split them apart in two steps. ## Undo and prior-month discrepancies Sometimes last month's reconciliation is the problem. The tell is a beginning balance that doesn't match the statement's opening balance. That happens when someone edits, deletes, or un-reconciles a transaction that was already reconciled. To find it, open last month's reconciliation report and compare it to the account register today. Look for changed amounts, missing items, and changed dates. QBO also warns you before you change a reconciled transaction, so ask the client or your team who ignored that warning. To back out a whole reconciliation, QBO lets accountant users undo it from the reconcile history, through QuickBooks Online Accountant. Other users can change the reconciled status on single transactions in the account register. Undo one month at a time, newest first, and re-reconcile forward. Undoing a reconciliation doesn't delete any transactions. It just marks them as not reconciled again. ## Month-end reconciliation checklist (copy per account) Copy this list into each client's close file. Run it once per bank and card account. - Statement PDF saved for the month - Bank feed items for the month categorized or matched - Prior month reconciled, report on file - QBO beginning balance equals the statement opening balance - Statement ending date and ending balance entered exactly - Fees and interest recorded - Items ticked from the statement, top to bottom - Deposit count and withdrawal count match the statement - Difference is $0.00, with no forced adjustment - Reconciliation report saved as PDF - Open items older than 60 days flagged for the client The same close discipline applies past the bank. Payables need their own tie-out too. See our walkthrough on [accounts payable reconciliation](/blog/accounts-payable-reconciliation). ## Where Growthy fits in the month-end close Growthy doesn't reconcile accounts inside QuickBooks, and it doesn't replace the QBO reconcile screen. It does the work around it. Growthy categorizes transactions, tracks your approvals, reconciles against the bank statement, and closes the period in its own ledger. Approved lines post back to QuickBooks Online. Bank access is read-only, and Growthy never moves money. A multi-client dashboard shows which client months are stuck, so you know which files need you first. See how [Growthy's monthly close](/features/monthly-close) works. ## Frequently asked questions Common questions about QuickBooks reconciliation from bookkeepers closing client months. ### How often should I reconcile in QuickBooks Online? Once per statement, for every bank and credit card account. For most accounts that means monthly. Reconcile in order. Don't skip a month. ### Can I undo a reconciliation in QBO? Yes. Accountant users can undo a full reconciliation from the reconcile history. Other users can change the reconciled status on single transactions in the register. Undo newest first. ### Why did my beginning balance change? A transaction reconciled in an earlier month was edited, deleted, or un-reconciled. Compare last month's reconciliation report to the register to find it. ### Do credit cards reconcile the same way? Yes. Use the card statement's closing date, which is often mid-month. Watch for refunds entered as charges. They cause a difference of twice the refund. ## Conclusion Reconciliation in QBO is the same routine every month: statement balance and date, tick what cleared, get to zero, save the report. When it won't tie, work the short cause list and compare deposits and withdrawals separately. Copy the checklist into every client file so the routine runs the same way each time. [Get started with Growthy](/signup/?utm_content=quickbooks-reconciliation) and see which client months are still open before you open QBO. --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Claude Code vs Codex for Bookkeeping: 4 AI Work Surfaces Compared](https://growthy.com/blog/claude-code-vs-codex-for-bookkeeping): Claude Code, Claude (formerly Cowork), the ChatGPT app with Codex, and Codex CLI, scored for bookkeeping work as of September 2026. Plus setup steps. --- ## title: "Claude Code vs Codex for Bookkeeping: 4 AI Work Surfaces Compared" meta: title: "Claude Code vs Codex for Bookkeeping: 4 Tools Compared" description: "Claude Code, Claude (formerly Cowork), the ChatGPT app with Codex, and Codex CLI, scored for bookkeeping work as of September 2026. Plus setup steps." Claude Code vs Codex is the question most bookkeepers ask first, but there are really four tools on the table. Claude Code. Claude, which just absorbed Cowork. The ChatGPT desktop app, which now carries Codex inside it. And Codex CLI. They share a lot of vocabulary now. Skills. Connectors. Agents. So which one should touch a client's books? Our take, up front: for serious bookkeeping work, Claude Code and the command-line tools come out ahead. They work on your real files, they run your written procedures the same way every time, and you can watch every step. But the tool is not the moat. Two things matter more than which logo you pick. You need good accounting skills, meaning written instructions the tool follows. And you need your books connected through MCP or a connector. Get those two right and any of the four gets better. Skip them and none of them will save you much time. One scope note. This page compares four places you do the work. It doesn't compare the models underneath. If you want Claude vs ChatGPT as assistants, read [Claude vs ChatGPT for bookkeeping](https://growthy.com/blog/claude-vs-chatgpt-for-bookkeeping) and [ChatGPT vs Claude for accounting](https://growthy.com/blog/chatgpt-vs-claude-for-accounting). This one is about the work surface: a terminal agent, a cloud agent, a desktop app, and a command-line tool. > **Which is better for bookkeeping: Claude Code, Codex, or the Claude and ChatGPT apps?** > > As of September 2026, Claude Code scores highest in our weighting (4.55 out of 5), followed by Codex CLI (4.30), the ChatGPT desktop app with Codex mode (4.15), and Claude with its former Cowork tasks (3.80). The two terminal tools win on working with real files, running repeatable skills, and letting you review each step. The apps win on ease of starting. Either way, the tool matters less than two things you set up yourself: a written accounting skill the tool follows, and a live connection to your books through MCP or a connector. Start that connection read-only. > **What changed in September 2026** > > On September 16, 2026, Anthropic folded Cowork into Claude. Its pricing page now says: "Claude Cowork is now just Claude. Rolling out to Pro and Max, with more plans to follow." Press coverage reports that chats, projects, artifacts, connectors, and skills carry over. So if you searched for Claude Cowork, it's still here. It's just called Claude now, and Cowork-style tasks run inside regular conversations. On the OpenAI side, what people called the ChatGPT Codex app now shows up in OpenAI's help center as the ChatGPT desktop app's Codex mode. Codex CLI is still its own tool. ## Key Takeaways - **Claude Code scores highest for bookkeeping work:** 4.55 of 5 in our weighting, driven by local files, skills, and one-command MCP setup. - **Codex CLI is a close second:** 4.30, with the same terminal strengths and a cheaper start, since Codex comes with ChatGPT plans, including Free and Go. - **The ChatGPT desktop app is the easiest start:** 4.15, with chat, Codex mode, and QuickBooks connection paths in one place. - **Claude's former Cowork runs jobs while you're away:** 3.80, because cloud tasks keep going with the laptop closed, but you review results after, not step by step. - **Skills are the real advantage:** a written bookkeeping procedure makes any of the four more consistent. Without one, you re-explain the job every session. - **Connect your books, read-only first:** MCP servers and connectors let the tool see real data. Turn off write access until you trust the workflow. ## The four work surfaces, in plain terms Here's what each one is, as of September 2026. **Claude Code** is Anthropic's agent that runs in your terminal. It also runs in an IDE, the desktop app, and the web. It reads the folder you point it at, edits files, and runs commands. You write a skill once (a folder of instructions built around a SKILL.md file) and it follows it every session. You plug in outside tools through MCP servers. A CLAUDE.md file holds the project's memory. For bookkeeping, "the project" is usually one client's folder. **Claude, formerly Cowork**, is the Claude app with task mode built in. Per Anthropic's help center, Cowork tasks run in the cloud (in beta) on Anthropic's servers, inside an isolated environment. Claude plans the work, breaks it into subtasks, runs code and shell commands in that environment, and hands back the output. Your sessions and files save to your Claude account. The work keeps going when you close your laptop. When a task needs a local file or your browser, Claude reaches it through the Claude Desktop app, which has to stay open. **The ChatGPT desktop app** now does two jobs. There's the chat you already know. And there's Codex mode, which used to be the separate Codex app. That app runs on macOS and Windows. It manages several agents at once, runs Automations (scheduled work), uses worktrees, and supports reusable skills. An April 2026 update added computer use, in-app browsing, image generation, memory, and plugins. OpenAI also lists ChatGPT Work as a separate experience for longer research and deliverable tasks. We don't score Work here. **Codex CLI** is OpenAI's terminal tool. It inspects, edits, and runs code from the command line. OpenAI's own description: "Package repeatable instructions as skills, then add plugins to connect Codex to your team's tools and data." You can sign in with your ChatGPT account, which uses your plan's usage, or with an API key, which bills per token. ## How we weighted them: the scorecard Bookkeeping isn't coding, so we didn't score these like coding tools. We picked five things that decide whether a tool helps on client work, weighted by how much each costs you when it's missing. The five criteria and their weights: - **Works on your actual files (25%):** bank CSVs, exports, statements, workpapers, across many clients. - **Connects to your books (20%):** how directly it reaches QuickBooks Online through MCP or a connector. - **Runs your skills (20%):** whether it follows a written procedure the same way every time. - **Lets you review before anything sticks (20%):** whether you see each step and each change before it counts. - **Easy and cheap to start (15%):** learning curve plus the plan you need. Each tool gets 1 to 5 on each criterion. Multiply by the weight, then add. Here's how they land. ### Claude Code: 4.55 - Files: 5 (reads and edits the folder you point it at) - Books: 5 (MCP support built in; our Claude guide adds QuickBooks in one command) - Skills: 5 (SKILL.md skills plus CLAUDE.md memory per client folder) - Review: 5 (every command and file change happens in front of you) - Start: 2 (a terminal is a real learning curve) - Math: 1.25 + 1.00 + 1.00 + 1.00 + 0.30 = 4.55 ### Codex CLI: 4.30 - Files: 5 (inspects, edits, and runs things in your folders) - Books: 3 (plugins connect tools and data, but QuickBooks isn't among the plugin examples OpenAI lists) - Skills: 5 (skills are a named, first-class feature) - Review: 5 (runs in your terminal where you see each step) - Start: 3 (still a terminal, but Codex comes with ChatGPT plans, including Free) - Math: 1.25 + 0.60 + 1.00 + 1.00 + 0.45 = 4.30 ### ChatGPT desktop app with Codex mode: 4.15 - Files: 4 (Codex mode works on files; chat is lighter) - Books: 4 (several QuickBooks connection paths exist on the ChatGPT side) - Skills: 4 (reusable skills in Codex mode) - Review: 4 (desktop app with worktrees on its feature list) - Start: 5 (familiar app, and Codex is included on Free and Go) - Math: 1.00 + 0.80 + 0.80 + 0.80 + 0.75 = 4.15 ### Claude, formerly Cowork: 3.80 - Files: 4 (runs code in a cloud environment; local files go through Claude Desktop) - Books: 4 (connectors reportedly carry over into the new Claude) - Skills: 4 (skills reportedly carry over too) - Review: 3 (the job runs while you're away, so you check the result, not each step) - Start: 4 (it's the Claude app; Pro starts at $17 a month billed annually) - Math: 1.00 + 0.80 + 0.80 + 0.60 + 0.60 = 3.80 These scores are our judgment against the facts above, not a benchmark. The gaps are small. Say you never want to open a terminal. Set the weights to 20% files, 15% books, 20% skills, 15% review, and 30% start. Now the ChatGPT app moves to first at 4.30, and Claude Code and Codex CLI tie at 4.10. That's the point of showing the math. Re-weight it for your own work. ## Claude Code for bookkeeping: the strongest pick In the Claude Code vs Codex matchup, Claude Code wins by a nose, and it wins because bookkeeping lives in files. Bank statements. CSV exports. A chart of accounts. Last month's workpapers. Claude Code works right in that folder. It can read twelve months of statements, write a cleaned CSV, and show you exactly what it changed. The CLAUDE.md file matters more than it sounds. Put one in each client's folder. Write down the client's quirks: which account the owner's personal card hits, which vendor is really a contractor, which deposits are loan proceeds. Claude Code reads that file each session. You stop re-explaining the client every month. Skills are the second half. A skill is a folder of instructions built around a SKILL.md file. Write one for your month-end steps, one for bank statement cleanup, one for your review checklist. Our guide to the [Claude bookkeeping skill](https://growthy.com/blog/claude-bookkeeping-skill) covers what a skill is and where it stops. Then connect the books. Claude Code supports MCP servers. Our guide to [connecting QuickBooks Online to Claude](https://growthy.com/blog/connect-quickbooks-online-to-claude) walks through the setup for both Claude Code and Claude Desktop, including how to keep it read-only. **What it costs:** As of September 2026, per Anthropic's pricing page, Claude Code is included on paid Claude plans. Pro is $17 a month billed annually ($200 up front) or $20 billed monthly. Max starts at $100 a month with 5x or 20x Pro usage. Claude Code shares usage with your Claude plan, so heavy terminal days draw from the same pool as chat. **Where it falls short:** the terminal. If you've never used one, the first week is slow. That's the whole reason it scores 2 on starting. Want to go deeper? Read [how to use Claude for bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping) and [Claude for accounting](https://growthy.com/blog/claude-for-accounting), then try it on files with [Claude for bank statement bookkeeping](https://growthy.com/blog/claude-bank-statement-bookkeeping). If you like plain-text books, [Claude plus Beancount](https://growthy.com/blog/claude-beancount-permanent-ledger) shows what a terminal agent can do with a ledger that lives in files. ## Claude, formerly Cowork: best for long jobs while you're away The new Claude is built for handing off a job and walking away. Tasks run in the cloud. Claude breaks the work into subtasks, runs code in an isolated environment, and saves the output to your account. Close the laptop and it keeps going. That fits certain bookkeeping jobs well. A long reconciliation prep across many statements. A first pass at a close checklist. A research task you'll read tomorrow. Our pieces on [Claude Cowork for accounting and bookkeeping](https://growthy.com/blog/claude-cowork-for-accounting-bookkeeping) and [Cowork for month-end close](https://growthy.com/blog/claude-cowork-month-end-close) cover those workflows. They still apply, since Cowork tasks now run inside Claude. The trade-off is review. When a job runs while you're gone, you check the finished output instead of each step. For client books, that's a real difference. It's why this surface scores 3 on review. Fix that by writing your review rules into a skill, so the task leaves a trail you can check. Local access has a catch. A task that needs a file on your computer or your browser goes through the Claude Desktop app, which has to stay open. So plan local-file jobs for when your machine is on. For the QuickBooks side, start with our [Claude connection guide](https://growthy.com/blog/connect-quickbooks-online-to-claude), and confirm the connection your task needs is one the cloud side can reach. **For firms:** Claude's Team and Enterprise plans list organization-wide skills deployment and admin controls for remote and local connectors. One approved skill, pushed to everyone. One place to decide which connectors staff can use. More on that in [Claude Cowork for accounting firms](https://growthy.com/blog/claude-cowork-for-accounting-firms). ## The ChatGPT desktop app and Codex mode: the easiest place to start If you already live in ChatGPT, this is the lowest-friction option. Chat handles questions. Codex mode handles work on files. Both sit in one app on macOS or Windows. Codex mode has some features bookkeepers can use right away. Automations run scheduled work, so recurring work can run without you starting it. Reusable skills let you save a procedure once. Worktrees are on the feature list too. **The connection story:** on the ChatGPT side, there are several ways to connect QuickBooks Online. They include an official path, a third-party connector, and a build-it-yourself route. Each one reaches a different slice of the books. Our guide to [connecting QuickBooks Online to ChatGPT](https://growthy.com/blog/connect-quickbooks-online-to-chatgpt) compares all three paths. Read it before you pick, because some of those paths can now write, not just read. **What it costs:** as of September 2026, OpenAI says Codex is included with ChatGPT plans, including Free and Go. Usage limits vary by plan. Per OpenAI's Codex pricing page, Pro starts at $100 a month with 5x or 20x more Codex usage than Plus. **Where it falls short:** the app blends chat and agent work. That makes it easy to ask a chat question against live books with no written procedure behind it. For client work, use Codex mode with a skill, not a one-off chat prompt. For the chat side on its own, see [ChatGPT for bookkeeping](https://growthy.com/blog/chatgpt-for-bookkeeping) and our list of [ChatGPT prompts for bookkeepers](https://growthy.com/blog/chatgpt-prompts-for-bookkeepers). ## Codex CLI: the terminal option on the OpenAI side Codex CLI is the closest match to Claude Code. It works in your terminal. It inspects, edits, and runs things in your folders. It treats skills as a core feature. If your firm already pays for ChatGPT, it's the cheapest way to get a terminal agent, since Codex comes with those plans. You have two ways to sign in. Sign in with ChatGPT and it uses your plan's usage. Or use an API key, which bills at API rates. The API-key route skips the cloud features, like GitHub code review and Slack. For a bookkeeper working locally, that may not matter. **The connection story is the weak spot.** Codex connects to outside tools through plugins. The examples OpenAI lists in its plugin marketplace are Gmail, Google Calendar, Google Drive, GitHub, and Documents. QuickBooks isn't among them. So before you plan a workflow around live books in Codex CLI, check the marketplace yourself. Our [ChatGPT connection guide](https://growthy.com/blog/connect-quickbooks-online-to-chatgpt) covers the OpenAI-side paths into QuickBooks, and our [QuickBooks integrations hub](https://growthy.com/topics/quickbooks-integrations) collects every connection option we've written up. That's the only reason Codex trails in the Claude Code vs Codex scoring. On files, skills, and review, the two tie. ## The tool isn't the moat Swap Claude Code for Codex CLI and a good workflow keeps working. Swap in a bad workflow and neither tool helps. Two things carry across all four surfaces. **1. Good accounting skills.** A skill is your procedure, written down. It covers what to check first, how to handle a transfer, when to stop and ask. Anthropic and OpenAI both now call these skills. Write yours once and the tool follows it the same way every time. Without one, you're typing the same instructions into every session and getting slightly different results. Start with our [Claude bookkeeping skill guide](https://growthy.com/blog/claude-bookkeeping-skill). A caution: a skill written for Claude may need changes before it runs in Codex. Test it on the other side before you trust it. **2. Your books, connected.** A tool that can't see the books is working from whatever you paste in. MCP servers and connectors fix that. Claude Code and Claude use MCP servers and connectors. The ChatGPT app has its own connection paths. Codex CLI uses plugins. The setup differs, but the rule doesn't: connect the real data, and start read-only. Our guides for [Claude](https://growthy.com/blog/connect-quickbooks-online-to-claude) and [ChatGPT](https://growthy.com/blog/connect-quickbooks-online-to-chatgpt) cover the steps, and the [QuickBooks integrations hub](https://growthy.com/topics/quickbooks-integrations) has the rest. Skills plus connected books is the setup. The tool is just where you run it. ## Which one should you pick? Start with who you are, not which tool is newest. **If you're a solo bookkeeper (a handful of clients up to 30 or so):** - **Pick Claude Code** if you're willing to spend a week learning the terminal. One folder per client, a CLAUDE.md in each, and one month-end skill. That setup pays you back every close. - **Pick Codex CLI instead** if you already pay for ChatGPT and don't want a second subscription. Check the QuickBooks connection path first. - **Fallback:** if the terminal is a hard no, use the ChatGPT desktop app in Codex mode, or Claude's task mode. You give up some review control. You gain an easier start. - **First week:** write the skill before you connect any client's books. Test it on one client's exported CSVs. **If you run a small firm (a few staff, many clients):** - **Pick one terminal tool for the person who builds your procedures.** That person writes and tests the skills. - **Give everyone else the app.** On Claude, Team and Enterprise plans list organization-wide skills deployment and admin controls for connectors. That's how one tested skill reaches the whole team. - **Decide connector access centrally.** Which staff can connect which client books, and whether any of them get write access. - **First month:** standardize one workflow, like bank statement cleanup, before you add a second. Bobby's newsletter,[Scaling Clients](https://scalingclients.com), covers this kind of firm-systems work for bookkeeping and accounting firm owners. **If you're an owner doing your own books:** - **Pick the app you already use.** For most owners, that's the ChatGPT desktop app or Claude. Codex comes with ChatGPT plans, including Free. - **Connect QuickBooks read-only** using the guides above. Ask questions of your real numbers instead of guessing. - **Skip the terminal** unless you enjoy it. The gain for one set of books is smaller than it is for 30. - **Know when to hand off.** A tool that answers questions about your books is not the same as books that are kept right every month. ## Setup starting points for each tool These are first steps, not full tutorials. Each one pairs a skill with a connection, because that pairing is the whole game. **Claude Code** 1. Get a paid Claude plan. Pro includes Claude Code. 2. Make one folder per client. Add a CLAUDE.md with that client's notes. 3. Write your first skill: a month-end checklist or a bank statement cleanup routine. See the[Claude bookkeeping skill guide](https://growthy.com/blog/claude-bookkeeping-skill). 4. Add the QuickBooks MCP server with one`claude mcp add` command, per our[Claude connection guide](https://growthy.com/blog/connect-quickbooks-online-to-claude). Turn write access off. 5. Run the skill on one client. Read every change before you keep it. **Claude, formerly Cowork** 1. Use Claude on Pro or Max, where the new experience is rolling out first. 2. Bring your skills and connectors. Reports say both carry over from Cowork. 3. Keep Claude Desktop open for any task that needs local files or your browser. 4. Set up the QuickBooks connection per our[Claude connection guide](https://growthy.com/blog/connect-quickbooks-online-to-claude), read-only. 5. Hand off one long job. Review the output line by line before you use it. **ChatGPT desktop app with Codex mode** 1. Install the ChatGPT desktop app on macOS or Windows. ChatGPT plans include Codex, with limits that vary by plan. 2. Pick a QuickBooks path from our[ChatGPT connection guide](https://growthy.com/blog/connect-quickbooks-online-to-chatgpt). Start with the most limited access that does the job. 3. In Codex mode, save your procedure as a reusable skill. 4. Only schedule an Automation once the manual version has run clean a few times. **Codex CLI** 1. Install Codex CLI and sign in with ChatGPT (plan usage) or an API key (per-token billing). 2. Package your procedure as a skill. 3. Browse the plugin marketplace for the tools you need. Confirm a QuickBooks route before you build around one. The[QuickBooks integrations hub](https://growthy.com/topics/quickbooks-integrations) is a good place to compare options. 4. Run on exported CSVs first. Connect live books after the skill proves itself. ## Frequently asked questions These are the questions bookkeepers ask most about Claude Code vs Codex and the apps around them. ### Is Claude Cowork gone? Not really. Anthropic folded Cowork into Claude on September 16, 2026. The pricing page says "Claude Cowork is now just Claude," rolling out to Pro and Max first. Cowork-style tasks now run inside regular Claude conversations, and reports say connectors and skills carry over. ### Is Codex free? Codex is included with ChatGPT plans, including Free and Go, according to OpenAI. Usage limits vary by plan. Heavier use costs more: OpenAI's Pro plan starts at $100 a month. Codex CLI can also run on an API key, billed per token. ### Do I need to code to use Claude Code or Codex CLI? No. You need to be comfortable typing commands in a terminal and reading what the tool shows you. You're not writing software. You're pointing an agent at a folder and a written procedure. Expect a slow first week. ### Can these tools change my QuickBooks books? It depends on how you connect them. Some connection paths only read. Some can write. Our [Claude](https://growthy.com/blog/connect-quickbooks-online-to-claude) and [ChatGPT](https://growthy.com/blog/connect-quickbooks-online-to-chatgpt) connection guides show what each path can do. Start read-only and open write access one client at a time, if ever. ## Where Growthy fits Every tool on this page helps you work on books. None of them is where the books live. A terminal agent with a good skill can clean a statement and draft categories. Then someone still has to review those categories and keep them consistent month after month. That's the part Growthy handles. It categorizes transactions automatically. It's 85% accurate on first import, and you review the rest. You approve before anything counts. It works on top of QuickBooks Online, or from CSV imports, today. Use Claude Code or Codex for the one-off work. Use Growthy for the monthly work that has to be right every time. If you're doing categorization by hand across a growing client list, try it on one client before your next close. [Get started with Growthy](https://growthy.com/signup/?utm_content=claude-code-vs-codex-for-bookkeeping) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Unapplied Payment: Why Cash Came In but the Invoice Still Shows Open](https://growthy.com/blog/unapplied-payment): An unapplied payment is cash QBO recorded but never matched to an invoice, so AR and revenue both misstate. Find it, apply it, re-run the report. The cash shows up in the bank feed. QBO matches it to the customer. And the invoice still sits open, like the payment never happened. That's an unapplied payment, and "unapplied payment quickbooks" is one of the most common searches bookkeepers run when their AR aging and the bank balance stop agreeing with each other. It's a quick fix once you know where to look. > **What is an unapplied payment?** > > An unapplied payment is a customer payment recorded in QBO without being matched to a specific invoice. The cash is real and it's in the bank. But because it isn't linked to an invoice line, the invoice stays open on AR reports and the payment sits as an unallocated credit on the customer's account. On a cash-basis P&L, QBO logs the amount under "Unapplied Cash Payment Income" instead of applying it against the revenue the invoice already recognized. Both numbers are technically correct and both are misleading until someone applies the payment. ## Key Takeaways - **Cash in, invoice still open** - the payment posted to the bank but was never matched to an invoice, so AR shows a balance that's already been paid. - **"Unapplied Cash Payment Income" is the tell** - this line on a cash-basis P&L means QBO recognized the cash without recognizing which invoice it belongs to. - **It usually shows up right after a sync** - a bank feed import or a Sales Receipt entered separately from the invoice both create this gap. - **The fix is three steps** - find the unapplied payment, apply it to the right invoice, then re-run the report to confirm the line clears. - **Left alone, it compounds** - one unapplied payment might read as a rounding error; a dozen of them across a quarter can shift both AR and revenue by thousands. ## Why the invoice still shows open QBO treats a payment and an invoice as two separate records. They have to be linked on purpose. When that link doesn't happen, the cash side (money in the bank) and the AR side (the invoice) never talk to each other. This happens two main ways. First, a customer pays and the bookkeeper records a Sales Receipt or a standalone deposit, not a Receive Payment applied to the open invoice. Second, a bank feed sync auto-matches the deposit to the customer but doesn't know which invoice it belongs to. QBO parks it as unapplied rather than guessing wrong. Either way, the symptom on a cash-basis Profit and Loss report is a line called "Unapplied Cash Payment Income." That line exists because cash-basis accounting recognizes revenue the moment cash comes in, even before it's matched to an invoice. The report shows income for cash that, from an AR standpoint, hasn't been applied to anything yet. Meanwhile the AR aging report still lists the original invoice as fully open. As far as that report is concerned, no payment was ever applied to it. The result: your bank balance is accurate. Your AR aging is stale. Your P&L has a line item most business owners have never heard of. ## The three-step fix **1. Find the unapplied payment.** In QBO, run the "Unapplied Cash Payment Income" report or open the Customer center and look for a payment or credit with no invoice attached. You're looking for cash that's landed but has no destination. **2. Apply it to the invoice.** Open the payment. Select "Find Match" or "Receive Payment." Link it to the specific open invoice it was meant to cover. If the customer paid across multiple invoices in one transaction, split the payment across each invoice it actually pays down. **3. Re-run the report.** Pull the AR aging report and the cash-basis P&L again. The invoice should now show as paid, or partially paid. The "Unapplied Cash Payment Income" line should shrink or disappear for that transaction. If it doesn't move, the payment likely wasn't saved against the right invoice. Go back to step 2. Do this monthly, ideally as part of your close, so unapplied payments don't stack up quietly across a quarter. ## Conclusion An unapplied payment isn't a bug in QBO. It's a gap between two records that has to be closed by hand. Left unapplied, it misstates both your AR aging and your revenue on a cash-basis P&L, and it gets harder to untangle the longer it sits. Find it, apply it, re-run the report. That's the whole fix, every time. For the fuller reconciliation process this fits into, see [accounts receivable reconciliation](https://growthy.com/blog/accounts-receivable-reconciliation). To stop invoices from going unpaid in the first place, see [payment reminders for unpaid invoices](https://growthy.com/blog/payment-reminders-unpaid-invoices). And if the sync itself is what's creating unapplied cash on your books, see how [Growthy's QuickBooks Online sync](https://growthy.com/features/quickbooks-sync) handles the match. [Get started with Growthy](https://growthy.com/signup/?utm_content=unapplied-payment) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Aging Date: What It Means on an AR or AP Aging Report](https://growthy.com/blog/aging-date): The aging date is the as-of date an AR or AP report ages every balance against, not the report date or the due date. Pull up an AR aging report and the buckets can look wrong at first glance. An invoice that feels overdue sits in the 0-30 column. One you'd forgotten about shows up in 90+. The buckets aren't broken. They're all measured against one date you probably didn't set on purpose: the aging date. If you searched for an aging date accounts receivable definition to figure out why, here it is. > **What is an aging date on an AR or AP aging report?** > > The aging date is the single as-of date the report ages every open balance against. Take aging date minus invoice date (or bill date) to get the age. That day count sorts the balance into a bucket: current, 1-30, 31-60, 61-90, or 90+. Change the aging date and every bucket shifts, even though no invoice moved. Most software defaults the aging date to today or the report's run date. You can usually override it. That override matters most at month-end close. ## Key Takeaways - **The aging date is the as-of date, not the invoice date or the due date** - it's the single reference point every balance gets measured against. - **Bucket placement is simple math** - aging date minus invoice date equals the day count, and the day count picks the bucket. - **Report date and aging date aren't always the same day** - a close report pulled a few days late can still age off the period-end date, not the day you ran it. - **The due date is a separate concept entirely** - it drives when a balance becomes "late," while the aging date just tells you how many days have passed. - **Getting this wrong skews both sides of the business** - it misprioritizes AR collections and misorders AP payment scheduling. - **Most tools let you override the default** - checking what aging date a report actually used takes ten seconds and saves a wrong read at close. ## Aging Date vs. Report Date vs. Due Date These three dates get confused constantly, and they're not interchangeable. | Term | What it is | Example | | --- | --- | --- | | Aging date | The as-of date the report ages balances against | June 30 | | Report date | The date the report was actually run or generated | July 2 (pulled two days late) | | Due date | The date payment is contractually owed | June 2 (net 30 on a May 3 invoice) | Here's a worked example. An invoice is dated May 3. The aging date on the report is June 30. Count the days: May 3 to June 30 is 58 days. Fifty-eight days lands in the 31-60 bucket. Not 61-90. Not current. That's true even if someone doesn't read the report until July 2. ### How the bucket math works Subtract the invoice date from the aging date to get the day count, then match that count to whichever bucket range it falls into. The report date doesn't enter the calculation at all. ### Where this trips people up The most common mistake: assuming "today" is always the aging date. A month-end close report pulled a few days late should still age off the period's last day, not the day someone opened it. Confirm the aging date before trusting any bucket total, especially around close. ## Why the Aging Date Matters for AR and AP Workflows Get the aging date wrong and both sides of the ledger get a bad read. On the AR side, invoices land in the wrong bucket, so collections effort goes toward accounts that aren't as overdue as they look. Read more on bucket mechanics in [the AR aging report guide](https://growthy.com/blog/accounts-receivable-aging-report). On the AP side, the same math error skews payment timing. See [the AP aging report guide](https://growthy.com/blog/accounts-payable-aging) for how that side works. For bookkeepers running a stack of QBO clients, this isn't a one-time check. Every client's close depends on it being set correctly, every month. ## Setting the Aging Date in Your Reports Most accounting software defaults the aging date to today or to the date you generate the report. That default works fine for a quick daily check. It works poorly for month-end close. There, you need the aging date locked to the period-end, not to whatever day you opened the report. Look for an as of date aging report field or override option before running one near close. Comparing aging across a portfolio of clients? Keeping that setting consistent is easier from one place. See [Growthy's multi-client dashboard](https://growthy.com/features/multi-client-dashboard) for a view built around that comparison. If the portfolio itself is the problem, too many clients for the hours, Bobby's newsletter, [Scaling Clients](https://scalingclients.com), covers the capacity side of that work. ## Frequently asked questions ### Is the aging date the same as the report date? No. The aging date is the as-of date balances are measured against; the report date is just when the report ran. ### Does the due date affect which bucket an invoice lands in? No. Bucket placement uses aging date minus invoice date only. Due date determines when a balance is officially late. Set your aging date deliberately, especially at close, and the buckets tell you the truth. [Get started with Growthy](https://growthy.com/signup/?utm_content=aging-date) to keep every client's aging report consistent without hunting for an override field each month. --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Review Queue: The Transactions the Software Was Not Sure About](https://growthy.com/blog/review-queue): A review queue holds only the fed transactions the software is not sure about, not every one like QBO's For Review tab. Where the 85% ceiling comes from. QuickBooks Online's For Review tab does not know the difference between a transaction it's sure about and one it's guessing on. Every fed transaction lands in the same pile (matched, unmatched, obvious, ambiguous), and the bookkeeper has to eyeball the whole feed to find the handful that actually need a decision. A transaction review queue works differently. Instead of surfacing everything, it surfaces the transactions the categorization engine wasn't confident about, and posts the rest on its own. > **What is a review queue in bookkeeping software?** > > A review queue is the set of fed bank and card transactions held back for a human decision before posting, because the categorization engine wasn't confident enough to post them automatically. It's not every transaction, just the subset the software flagged as uncertain. QBO's suggested categorization runs at roughly 50% accuracy, so its For Review tab effectively asks you to check everything. A confidence-sorted queue only asks about the transactions it's actually unsure of, and it never claims above 85% accuracy on the ones it does post. ## Key Takeaways - **QBO's suggestions land around 50% accuracy:** every fed transaction still lands in For Review regardless of how confident the match was. - **A review queue sorts by confidence, not by feed order:** only the uncertain transactions require a human decision. - **85% is the ceiling, not a marketing number:** Growthy never claims higher, and it asks rather than guesses past that line. - **New vendors and split-worthy amounts are the common queue items:** recurring, previously categorized transactions post without a prompt. - **Less re-checking means less bookkeeping time spent on transactions the software already got right.** ## QBO's For Review tab vs. a confidence-sorted queue QBO's bank feed rules and suggested categorization are useful, but they're not selective. [Bank rules match on payee text and amount patterns](/blog/qbo-bank-rules-vs-ai-categorization), and the suggestion still shows up in For Review whether the match is obvious or a total guess. QBO's suggested categorization runs at roughly 50% accuracy, so the tab isn't really filtering anything. It's asking you to look at the whole feed, every time. That's the core difference. A confidence-sorted queue treats "I'm not sure" as a distinct state from "here's my best guess, take it or leave it." When the categorization engine is confident, the transaction posts. When it isn't, it waits for you. ## Where Growthy draws the line Growthy asks when it's unsure and posts the rest without asking. [Rules can't tell you when they're guessing](/blog/ai-vs-bank-rules): a static rule either matches or it doesn't, with no notion of confidence in between. A confidence-sorted queue can, and that's the mechanism behind Growthy's [transaction categorization](/features/transaction-categorization). It never claims above 85% accuracy, and the transactions below that bar are exactly what shows up in the queue. That ceiling is deliberate. A tool that claimed near-perfect accuracy would either be lying or posting things it shouldn't. 85% with an honest queue for the rest beats a higher number nobody can back up. ## What lands in the queue (and what doesn't) A new vendor with no transaction history is a queue item. So is a transaction that's large enough or oddly split enough to warrant a second look, like a $4,200 charge from a payment processor that could be a client deposit or could be three bundled invoices. A memo field with no useful text on an unfamiliar payee is another common one. What doesn't land in the queue: a recurring software subscription already categorized the same way for six months straight. A transaction from a vendor the account has seen fifty times before. Those post on their own, because the confidence is already there. ## Conclusion The point isn't to automate every transaction. It's to stop asking you to check the ones that don't need checking. A review queue built on real confidence scoring means the For Review tab shrinks down to what actually needs a decision, instead of everything that happened to hit the feed. [Get started with Growthy](/signup/?utm_content=review-queue) and see which transactions actually need your attention. --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Close Checklist: The Ordered List That Ends the Month](https://growthy.com/blog/close-checklist): A close checklist is the fixed, ordered list of tasks that ends a bookkeeping period. See why order matters and where the full checklists live. --- ## title: "Close Checklist: The Ordered List That Ends the Month" meta: title: "Close Checklist: The Ordered List That Ends the Month" description: "A close checklist is the fixed, ordered list of tasks that ends a bookkeeping period. See why order matters and where the full checklists live." Close checklist. Two words that either mean "we're done, on time, every client, same way" or "let's hope nobody reconciled before the feed cleared again." The difference is whether the checklist is actually ordered. And whether everyone runs it in that order. Ever redo a reconciliation because a late transaction showed up after you'd already accrued for the month? Then you already know why order matters more than the list itself. > **What is a close checklist?** > > A close checklist is the fixed, ordered set of tasks that must be done before a period is locked. Run the same way for every client every month. It's not a to-do list you improvise each close. It's a sequence. Skip the order, say reconciling before feeds are cleared, and you force rework. The point isn't having a list. It's having the same list, in the same order, for every client, every time. ## Key Takeaways - **A close checklist is a sequence, not a list** - order matters as much as the tasks themselves. - **Feeds clear before reconciliation** - reconcile against an incomplete feed and you'll redo the reconciliation later. - **Reconciliation comes before accruals** - accrue against unreconciled balances and the accrual is wrong from the start. - **Accruals come before reports** - reports pulled before accruals post are missing real expenses and revenue. - **The full step-by-step lives in two other checklists** - this piece defines the term; those cover execution. - **Multi-client firms need the checklist state visible, not just documented** - a written checklist doesn't tell you which of 40 clients are actually done. ## Why order matters The sequence is: feeds cleared, then reconciliation, then accruals, then reports. Each step needs the one before it fully done. Not just started. Reconcile before the feed clears and you're checking numbers that are about to change. Accrue before reconciliation is done and the accrual sits on an unverified balance. Pull reports before accruals post and you're missing real activity for the period. None of these are catastrophic alone. Stack them across every close, every month, for every client, and that's why a "closed" period gets reopened. ## Where the full checklists live This piece defines the term. For the step-by-step, two other resources cover execution. The [month-end close automation checklist](/blog/month-end-close-automation-checklist) walks through automating the mechanical parts. The [month-end close process](/blog/month-end-close-process) covers the full manual sequence end to end. Use this page to get the definition straight. Use those two to run the close. ## Get started with Growthy A close checklist tells you what order to work in. It doesn't tell you which of your clients are actually at each step this month. That's a visibility problem, not a checklist problem. It gets worse as client count grows. Growthy's [multi-client view](https://growthy.com/for-bookkeepers) shows every client's close state at once. No opening 40 separate books to find out who's stuck on reconciliation. If you're standardizing close across a growing client list, take a look before your next close. Bobby's newsletter, Scaling Clients, covers this kind of standardization work for bookkeepers running close across many clients. Worth a read if that's the position you're in: [scalingclients.com](https://scalingclients.com). [Get started with Growthy](/signup/?utm_content=close-checklist) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Clearing Account: How Payment Processor Deposits Tie Back to Sales](https://growthy.com/blog/clearing-account): A clearing account holds sales and fees until the processor payout lands and nets it to zero. See how it works with a real Stripe deposit example. Every payment processor deposit lies to you a little. Stripe drops $3,847.92 in your bank account, but your sales report says you sold $4,000 that week. Nothing's wrong. The processor took its cut before the money touched your bank. If your books only record the deposit, you've quietly lost track of $152.08 in fees and the full $4,000 in sales. A clearing account fixes that. It sits between "a customer paid you" and "the cash landed in your bank." It's how a bookkeeper ties the two together without fudging the numbers. > **What is a clearing account?** > > A clearing account is a temporary balance-sheet account that holds sales and fees until the processor payout lands, then nets to zero. You post the full sale into it when the transaction happens. You post the fee and the net payout out of it when the deposit hits. The balance returns to $0. It's a holding pen, not a permanent account. If it's carrying a balance for more than a few days, something's unreconciled. ## Key Takeaways - **A clearing account is temporary** - it holds a balance only until the matching deposit clears, then returns to zero. - **Gross sales and fees post separately** - record the full sale amount, then the processor fee, instead of just the net deposit. - **A $3,847.92 deposit isn't $3,847.92 in sales** - it's usually $4,000 in sales minus $152.08 in fees, and your books should show both numbers. - **Clearing accounts differ from suspense accounts** - a clearing account expects a specific offsetting entry; a suspense account holds an amount you can't yet classify at all. - **An unreconciled clearing balance is a red flag** - if it's not back to zero within a few days of the payout, something in the reconciliation broke. ## What actually happens when Stripe pays you Say a week of Stripe transactions totals $4,000 in gross sales. Stripe charges $152.08 in processing fees and deposits the net, $3,847.92, into your bank account two days later. If you only record the $3,847.92 deposit as revenue, two things go wrong. Your sales figure understates what you actually sold. And your fee expense disappears entirely, which makes your margins look better than they are. The clearing account is where the two entries meet: ``` Entry 1 (at time of sale): Debit Clearing Account (Stripe) $4,000.00 Credit Sales Revenue $4,000.00 Entry 2 (at time of payout, 2 days later): Debit Bank Account $3,847.92 Debit Processing Fee Expense $152.08 Credit Clearing Account (Stripe) $4,000.00 ``` After Entry 2 posts, the clearing account nets to $0.00. Your books now show $4,000 in sales, $152.08 in fees, and $3,847.92 landing in the bank. All three numbers match what actually happened. ## Clearing account vs. suspense account A clearing account and a suspense account both hold a temporary balance. It's easy to mix them up. A clearing account expects a known, specific offsetting entry. You already know what's going to zero it out (the processor's payout), and roughly when. A [suspense account](/blog/suspense-account) holds a transaction you can't classify yet, with no defined entry waiting to clear it. ## Where this fits in reconciliation The clearing account only does its job if it's actually reconciled. Matching lump-sum processor deposits to individual sales? See [how to reconcile lump-sum deposits from payment processors](/blog/reconcile-lump-sum-deposits-payment-processors). Fee side is the messy part? [Payment processor fee classification](/blog/payment-processor-fee-classification) covers where those fees belong on your P&L. This is also where a lot of manual reconciliation time goes: matching one bank deposit against a dozen or more transactions by hand. A clearing account QuickBooks setup can automate that match instead of leaving it to a spreadsheet. [Growthy's QuickBooks integrations](https://growthy.com/topics/quickbooks-integrations) reads processor deposits and the underlying transactions together, so you don't have to eyeball the math on every payout. ## Frequently asked questions ### How long should a clearing account carry a balance? A few days at most, roughly the time between the sale and the processor's payout schedule. If a clearing account balance is more than a week old and hasn't zeroed out, that's usually a sign a payout was missed or misclassified. It's not how the account is supposed to work. ### Does every business need a clearing account? Any business taking card payments through Stripe, Square, or a similar processor benefits from one. Those processors always deduct fees before depositing. A business that only takes checks or ACH transfers, with no processor fees, may not need the extra step. ### Can I skip the clearing account and just record the net deposit? You can, but you'll lose visibility into gross sales and fee expense as separate line items. That's fine for a very small operation. It becomes a real problem once fee percentages, refunds, or multiple processors are in the mix and you need to see where the money went. Clearing accounts are a bookkeeping mechanic, not a fix for messy fee coding underneath them. Get the account structure right, and you still have to code fees to the right expense accounts to see accurate margins. [See how Growthy syncs QuickBooks with your payment processors](https://growthy.com/signup/?utm_content=clearing-account) to keep deposits, fees, and sales tied together automatically. --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Tie-Out: What It Means to Tie the Books Out to $0.00](https://growthy.com/blog/tie-out): Tying out means proving bank, credit card, AR, and AP totals match an outside source with a $0.00 difference. The four standard tie-outs and what to check. ## Introduction Close isn't done when every account has a number next to it. Close is done when every number ties to something outside your own books: a bank statement, a subledger, a report you didn't build. If it doesn't tie, it's a guess with good formatting. "Tie out" is the term for that check, and if you've ever searched "tie out accounting" or "tie out meaning" trying to figure out what your bookkeeper keeps talking about, this is it. It's the habit that separates a close you can defend to an owner, a lender, or an auditor from a close that just looks finished. Some firms call the practice "tie out to zero reconciliation," since the whole point is landing on a $0.00 difference. > **What does it mean to tie out the books?** > > Tying out means proving two independent totals agree, down to the penny. You take a number from your ledger and match it against a number from an outside source: the bank statement, a subledger, a processor report. The difference has to be $0.00. Not "close." Not "immaterial." Zero. A book that hasn't been tied out is a set of opinions about what happened. A book that has is a set of facts you can prove. ## Key Takeaways - **Tie out means $0.00, not "close enough":** two independent totals must match exactly before a period counts as closed - **Four standard tie-outs run every close:** bank, credit card, AR subledger, AP subledger, each checked against an outside source - **A non-zero difference is almost always one of three things:** a timing gap, a duplicate entry, or a bank fee that hasn't hit the ledger yet - **Check timing first:** most differences clear themselves once you account for what hasn't posted on either side yet - **Untied numbers compound:** a $12 miss this month is still there next month, just harder to find - **Tying out is a checklist, not a feeling:** "the numbers look right" isn't a tie-out; a matched total is ## Body ### The Four Standard Tie-Outs at Close Every close runs the same four checks, each against a source you don't control: - **Bank.** Ledger cash balance matches the bank statement ending balance. - **Credit card.** Ledger balance matches the card issuer's statement balance. - **AR subledger.** The accounts receivable subledger total matches the AR balance on the general ledger. - **AP subledger.** The accounts payable subledger total matches the AP balance on the general ledger. Four checks. Four outside sources. Four $0.00 differences. Skip one and you've closed three-quarters of the books. ### When the Difference Isn't $0.00 A non-zero tie-out isn't a crisis. It's almost always one of three things, and there's an order worth checking them in. **Timing first.** A check written on the 30th that clears on the 3rd shows up on one side and not the other. Same with a card swipe that posts to the ledger before the issuer settles it. Most differences close themselves once you account for what's still in transit. **Duplicates second.** A transaction imported twice, once from a bank feed and once from a manual entry, inflates one side and nothing on the other. Pull the transaction list and scan for repeats. **Fees third.** Bank fees, card processing fees, and NSF charges hit the bank statement before they hit the ledger. If timing and duplicates don't explain the gap, check for a fee the ledger hasn't recorded yet. Work through those three before you assume the software is wrong. It usually isn't. ### Where This Fits in Month-End Close Tying out isn't a standalone task. It's the verification layer sitting on top of [bank reconciliation](https://growthy.com/blog/bank-reconciliation): reconciliation matches transactions one by one, and tying out confirms the resulting totals actually agree. Both belong in a repeatable [month-end close checklist](https://growthy.com/blog/month-end-close-automation-checklist), run in the same order every period so nothing gets skipped when you're rushing to close by the 5th. Growthy's [monthly close workflow](https://growthy.com/features/monthly-close) tracks each of the four tie-outs as its own checklist item. A period can't get marked closed with an untied balance sitting underneath it. ## Conclusion A close that "looks right" and a close that's tied out are different things. One is a feeling. The other is proof. Run the four tie-outs, check timing first when something's off, and don't call a period closed until every difference reads $0.00. Related: [Tick and Tie](https://growthy.com/blog/tick-and-tie) [**Get started with Growthy**](https://growthy.com/signup/?utm_content=tie-out) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Suspense Account: Where Unknown Transactions Wait Until Close](https://growthy.com/blog/suspense-account): A suspense account holds unidentified transactions until you know where they belong. See a journal-entry example and why it must be zero before close. --- ## title: "Suspense Account: Where Unknown Transactions Wait Until Close" meta: title: "Suspense Account: Where Unknown Transactions Wait Until..." A deposit hits the bank feed. $1,250.00, no invoice attached, no memo. Nobody on the team recognizes it. You can't leave it unassigned. You also can't guess. That's what a suspense account is for: a temporary parking spot for money you haven't identified yet. It's not a fix for it. If you close books every month, you probably have a suspense account already, even if nobody labeled it that way. The question isn't whether one exists. It's whether it's empty by the time you close. > **What is a suspense account?** > > A suspense account is a temporary holding account for transactions whose correct account isn't known yet: an unidentified deposit, an ambiguous vendor charge, a timing mismatch between two systems. It exists so bookkeepers can record the entry without guessing where it belongs. It must be cleared to zero before the books close for the month. Anything still sitting in suspense at close means someone made a call without evidence, or the close happened with unresolved transactions still on the balance sheet. ## Key Takeaways - **Suspense account holds the unknown:** a temporary account for transactions you can't classify yet, not a permanent home for them. - **Zero balance is the rule, not a goal:** suspense should read $0.00 before you close the month. A non-zero balance at close is a red flag, not a rounding error. - **The move is a two-line journal entry:** debit the correct account, credit suspense, for the full identified amount. - **You find what's still parked by running GL detail:** filter the general ledger to the suspense account and age every line still sitting there. - **Some items genuinely can't be identified in time:** flag and escalate them. Don't force a guess just to hit zero. - **It shows up on the balance sheet, so it's visible:** an open suspense balance is something an outside reviewer or lender will ask about. ## What Goes Into a Suspense Account Three things typically land in suspense. An unidentified bank deposit. A vendor charge you can't match to a bill or a category. A timing mismatch between your bank feed and your books, where money hits the account before the paperwork catches up. None of these are errors by themselves. Recording an unknown transaction to suspense is the correct move. The mistake is leaving it there. A suspense account in accounting works like a physical inbox. Things go in because you're not ready to file them, not because you've decided where they belong. It's a close cousin of an [uncategorized expense](https://growthy.com/blog/uncategorized-expense): both are placeholders for a decision you haven't made yet, not a decision themselves. ## Moving Money Out of Suspense (Journal Entry Example) Say that $1,250.00 deposit turns out to be a client payment for a service invoice you'd already fulfilled but hadn't billed correctly. Once you confirm that, clear it out of suspense with one journal entry: ``` Date: 03/14 Account: Suspense Account DR $1,250.00 Account: Service Revenue CR $1,250.00 Memo: Unidentified deposit 03/02 confirmed as client payment, Invoice #4471 ``` That's the whole move. You're not adjusting the total cash balance. The deposit already hit the bank. You're reclassifying it from unknown to revenue. The memo line is what makes that reclassification auditable six months later, when someone asks why revenue jumped in a given week. ## The Zero-Before-Close Rule Suspense must be zero before the month closes. Not small. Not "we'll get to it." Zero. To find what's still sitting in it, pull a GL detail report filtered to the suspense account and look at every line by date. Anything older than a few days needs a name attached to it, or a decision about who's chasing it down. Age the list the same way you'd age accounts receivable. The longer something sits unidentified, the harder it gets to reconstruct what it was. Here's the honest limitation. Some items genuinely can't be resolved before close: a wire with no remittance detail, a charge from a vendor who hasn't returned three emails. When that happens, don't force a guess to make the balance hit zero. That just moves the error into a real account where it's harder to find. Flag it, note the amount and the open question, and escalate it. A documented open item is a manageable problem. A guessed-and-buried one isn't. ## Conclusion A suspense account is a waiting room, not a destination. Its job is to hold unknown money accurately until you know what it is. The discipline that makes that work is checking it before every close, not after someone asks why the balance sheet looks off. Clearing suspense is one line item on a longer [month-end close process](https://growthy.com/blog/month-end-close-process), and it belongs at the top of that checklist, not the bottom. If you spend part of every close hunting down what's still parked in suspense, that's a workflow problem, not just a bookkeeping one. Growthy's [monthly close](https://growthy.com/features/monthly-close) workflow keeps the suspense sweep as part of the same checklist as the rest of your close, instead of a separate step you have to remember. [Get started with Growthy](https://growthy.com/signup/?utm_content=suspense-account) and bring your close checklist into one place. --- Related: [True-Up in Accounting](https://growthy.com/blog/true-up-in-accounting) Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Bank Feed: What It Is and Why Clearing It Is the Whole Job](https://growthy.com/blog/bank-feed): A bank feed automatically imports bank and card transactions for categorization and matching. Learn the three states of a fed transaction and why feeds break. Your bank feed is not a nice-to-have integration. It's the whole job. Every transaction starts here. The charge lands in your feed first. Everything after that (categorized reports, a clean P&L, a close that actually closes) depends on what happens to it next. Most people treat the feed like plumbing. It's not. Bank feed bookkeeping is the queue you work every day. How well you clear it decides whether your books are current or three weeks behind. > **What is a bank feed?** > > A bank feed is the automatic import of bank and card transactions into your ledger for categorization and matching. Your bank connects to your accounting software. Transactions flow in daily. Each one needs a category, and when it pairs with an invoice or bill, a match. The feed itself isn't the work. Clearing it is. ## Key Takeaways - **The feed is the job, not a step in it** - every transaction you'll ever categorize enters through here first. - **Three states, one goal** - uncategorized, categorized/for review, and matched and reconciled; a transaction isn't done until it hits the third. - **Automation gets you most of the way** - roughly 85% of transactions categorize correctly on first import, and QBO's own feed rules clear about half of what lands. - **The rest is real work** - clicking categorize 500 times a day is what happens when nobody triages the exceptions early. - **Feeds break in predictable ways** - stale connections, duplicate imports, and lump-sum deposits are the three repeat offenders. - **A broken feed compounds** - a week of unattended feed items becomes a month of unreliable financials fast. ## The three states of a fed transaction **Uncategorized.** The transaction just landed. Your software has a guess (based on the payee, the amount, or history), but nothing's confirmed. This is the inbox — and the longer it sits, the harder it is to remember what a $340 charge from three weeks ago actually was. **Categorized, for review.** Someone, or a rule, assigned an account. It's not wrong exactly. But it hasn't been checked against source documents or matched to anything else in the books. A rule can categorize fast and still categorize wrong. This state exists as a checkpoint, not a finish line. **Matched and reconciled.** The transaction is tied to its source: an invoice, a bill, or a bank statement line. The numbers agree. This is the only state where the transaction stops needing anyone's attention. Skip the middle state enough times and you get books that look done but aren't. "Categorized" and "correct" quietly stop meaning the same thing. ## Why feeds break **Stale connections.** Banks rotate credentials and change login rules often. A lapsed connection stops pulling new transactions quietly. No alarm goes off. **Duplicate imports.** A manual CSV import layered on top of a live feed connection double-counts the same transactions. Finding and voiding the duplicates takes longer than importing correctly the first time would have. **Lump-sum deposits.** Stripe and Square batch dozens of sales into one deposit. The feed shows one number. The ledger needs several. Matching that single line to the right invoices is where feeds stop being easy. None of these are exotic failures. They're the three things that happen to almost every set of books eventually. That's why [bank feed reconciliation](https://growthy.com/blog/bank-feed-reconciliation) is worth learning on purpose, not discovering by accident. The uncategorized state above isn't neutral either. Leave enough [uncategorized expenses](https://growthy.com/blog/uncategorized-expense) sitting in the feed and your P&L understates real spend for as long as they sit there. ## Clearing the feed is the whole job A bank feed that imports transactions but never gets worked isn't automation. It's a pile. The value only shows up when uncategorized becomes categorized becomes matched, every day, before the pile gets big enough to dread opening. [Transaction categorization](https://growthy.com/features/transaction-categorization) built around the exceptions, not the easy 85%, keeps that pile from forming. [Get started with Growthy](https://growthy.com/signup/?utm_content=bank-feed) and clear your feed before it clears you. --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Claude Bookkeeping Skill: What It Can and Cannot Do](https://growthy.com/blog/claude-bookkeeping-skill): A Claude Skill is instructions, not a ledger connection. What it can and cannot do for real bookkeeping, and where a purpose-built tool has to own the ledger. Search already sends bookkeepers to Growthy looking for an answer nobody wrote yet. People search "claude bookkeeping skill." No page answers it directly. That search usually comes from one person: a bookkeeper at 15 to 25 clients who just heard Claude runs "Skills" now. They want to know if that changes anything about the job. Here's the honest answer. A Claude Skill is a real, narrow thing. It is not a plug-in for your books. People search this a few different ways, claude bookkeeping skill, claude accounting skills, claude accounting software, and they all want the same thing: what it can do for a bookkeeper and what it cannot. Most hype online blurs those two lists together. This page keeps them separate. Want the step-by-step of using Claude on client books? That guide lives at [How to use Claude for bookkeeping](/blog/how-to-use-claude-for-bookkeeping). This page answers a narrower question first: what the Skill actually is, and where it stops. > **What is a Claude bookkeeping skill?** A Claude Skill is a folder of instructions. Someone writes it once. The core is a file called SKILL.md. It has a short YAML header plus the instructions themselves. It can also carry extra scripts, templates, or reference files. Claude only loads the full instructions once your task matches what the Skill covers. That design is called progressive disclosure. Anthropic ships official Skills today for document creation, design and branding, engineering workflows, and content production. None of them is a bookkeeping Skill. Here's the part that matters most for your books: a Skill is instructions only. It has no built-in wire into your ledger. Any access Claude has to real transactions comes from a separate connector or MCP in that session, not from the Skill. ## Key Takeaways - **A Skill is a folder, not a switch:** SKILL.md plus a YAML header, with optional scripts riding along. Nothing runs until a task calls for it. - **It doesn't preload everything:** progressive disclosure means only the name and short description sit in context at first. It isn't quietly watching your files in the background. - **Anthropic's official Skills skip bookkeeping:** the published set covers documents, design and branding, engineering workflows, and content. No accounting Skill ships today. - **A Skill has no ledger of its own:** touching real client books needs a connector or MCP wired into that Claude session. Installing a Skill alone connects nothing. - **Nothing here closes a month by itself:** any categorization a Skill-equipped session produces is pattern learning for a bookkeeper to review and approve. It is not a decision made alone. - **A chat session is not a system of record:** 15 to 25 clients' books need one persistent place to live, not a conversation you re-explain every time. ## What a Claude Skill actually is Strip away the marketing. A Claude Skill is closer to a recipe than a product. Someone writes a SKILL.md file. It has a short YAML header naming the Skill and describing what it does. The actual instructions sit underneath. A Skill can also carry optional scripts, templates, or reference documents it pulls in when needed. None of that implies a database connection, a login, or an API key to your books. It's text Claude reads. The mechanism that makes this practical is progressive disclosure. Only the Skill's name and short description sit in context when a session starts. The full instructions load later, once your actual task matches what the Skill is for. That's a deliberate design choice. It keeps sessions fast. It keeps unrelated Skills out of the way, instead of stacking every installed Skill's full instructions into every conversation. Anthropic publishes a set of official, open-source Skills today. They cover document creation, design and branding work, engineering workflows, and content production. That list is real and growing. But notice what's missing: nothing accounting-specific, nothing bookkeeping-specific, nothing that touches a general ledger. A firm or vendor could build one. A Skill is just instructions, and anyone can write instructions. But "someone could build this" and "Anthropic ships this" are two different claims. This page only makes the second claim where it's verified true. ### The SKILL.md file and what rides along with it The YAML header up top is what Claude sees first: a name and a description, nothing more. Everything else sits below that header. That means the step-by-step instructions plus any optional scripts, templates, or reference files. All of it loads later, once a task matches. ### Progressive disclosure, plainly Think of a table of contents versus the book itself. At session start, Claude has the table of contents for every installed Skill: name and description only. Only when your request actually matches an entry does Claude open that chapter and read the full instructions. Until then, a Skill sitting on your account changes nothing about how Claude behaves. ### What Anthropic ships versus what anyone could build The official set covers document creation, design and branding, engineering workflows, and content production. Nothing about client books. A custom, firm-built bookkeeping Skill is technically possible. It's just a set of instructions someone writes. But that's a hypothetical today, not something you can install from Anthropic. ## What a Claude Skill can do against real books Say a session has some real access to a client's data. Maybe an export, a pasted statement, or a connected MCP. Add a bookkeeping-shaped Skill to guide it. A few things become genuinely possible. Claude can spot patterns across a batch of transactions. It can draft a first-pass categorization for a bookkeeper to check. It can summarize what changed from one period to the next. It can flag entries that look off, so a human knows where to look first. None of that is nothing. All of it still runs through a person before it counts as real. ### Pattern learning, not machine learning, and not a decision The honest word here is pattern learning, not machine learning. Claude recognizes structure in what it's shown. It proposes something that fits. It is not training a model on your books over time. Every proposal stays a proposal. The bookkeeper reviews it and approves it. Nobody skips the check the way you might with a task you no longer watch closely. The workflow stays closer to checking a draft before you sign it. ### Where it actually saves time today The real win sits on the first pass, not the final answer. A batch of transactions that would take twenty minutes to eyeball gets a first-pass sort much faster. The bookkeeper spends their time checking and correcting, not starting from a blank sheet. That's a real time saving on the first look. It is not a claim about total review time saved. It is not a promise the first pass is usually right. ### The limits inside "can do" Even within this list, nothing here closes a month. Nothing files anything. Nothing reconciles an account without a person walking through it. A Skill-equipped session drafting a categorization is not the same event as a bookkeeper approving one. Treat every output as a draft until a human says otherwise. ## What a Claude Skill cannot do This is the other half of the honest answer. It's the half most write-ups skip. ### No native connection to your books A Skill is instructions only. It cannot see a single transaction until the session running it has a connector or MCP wired to that data. Installing a Skill is not the same event as connecting QuickBooks, a bank feed, or a payment processor. Here's the most common misunderstanding, stated plainly: the Skill teaches Claude how to think about a bookkeeping task. It does not hand Claude a login. ### No closing the books alone Nothing here closes a month. Nothing reconciles an account. Nothing files a return without a bookkeeper reviewing and approving every step. A claim like "Claude closed the books" gets the story wrong. What actually happened is simpler: a draft got produced, and a human still had to check it. ### No live reconcile feature, from anyone Say this plainly, on both sides of the comparison. No chat-based tool, Claude included, performs bank reconciliation as a live, automated feature today. That's true of a general-purpose assistant. It's also true of purpose-built bookkeeping software, where a real reconcile feature takes hard, dedicated engineering. A Skill does not improvise that on the fly. ## Where a vertical tool still has to own the ledger Here's the real problem under the search query. A bookkeeper typing "claude bookkeeping skill" into Google is not really asking about YAML files. They're asking one thing: can they take on client number sixteen without working nights. A chat session was never going to answer that alone. It has no memory that persists like a ledger does. It has no place where an approval from three weeks ago is still sitting there. It has no system tying categorization decisions back to real accounts over time. That's the gap a vertical, purpose-built bookkeeping tool exists to close. Pattern learning applies inside an actual ledger. Growthy auto-categorizes high-confidence transactions; you review the rest. The accuracy numbers get stated honestly, not rounded up. ### The honest numbers On a first import, categorization is 85% accurate. On returning clients, it climbs to 90%+. Say that with a qualifier every time: it's not guaranteed, and it's never 95% or 100%. That ceiling is why low-confidence items wait for human review. It's not a caveat tucked into small print. Reconciliation, for what it's worth, isn't live or generally available yet. ### Where this leaves the bookkeeper at the ceiling The Skill question was never really about the Skill. It's about whether the next client fits without eating your evenings. Maybe what you actually need is one system: auto-categorization of high-confidence transactions, review of the rest, and an audit history of every categorization. That's a different tool than a chat window, however good the chat window gets. [Get started with Growthy](https://growthy.com/signup/?utm_content=claude-bookkeeping-skill) and see what a purpose-built ledger does with the client you're about to say yes to. Weighing other AI options side by side? [ChatGPT for bookkeeping](/blog/chatgpt-for-bookkeeping) covers the other major chat tool the same honest way. [Claude Cowork for accounting firms](/blog/claude-cowork-for-accounting-firms) covers the firm-level version of this question: seats, review, and where client data actually goes. And if the client-ceiling problem itself is on your mind, [how many clients can one bookkeeper handle](/blog/how-many-clients-can-one-bookkeeper-handle) walks through the math directly. And if the question is which terminal or agent tool to run that Skill through, [Claude Code vs Codex for bookkeeping](https://growthy.com/blog/claude-code-vs-codex-for-bookkeeping) lines up four work surfaces on the same five criteria. ## Conclusion A Claude Skill is a folder of instructions. It loads only when a task matches. It covers document creation, design, engineering, and content today, not bookkeeping. What it can do against real books runs through pattern learning and a human review-and-approve step. What it cannot do is connect to your ledger on its own, close a month with no human in the loop, or reconcile anything live. That gap is exactly where a vertical tool still has to own the ledger. For the day-to-day workflow of using Claude on client books, see [How to use Claude for bookkeeping](/blog/how-to-use-claude-for-bookkeeping). This page answered the definition. That one answers the how. More on this topic: [AI for Accountants](/topics/ai-for-accountants). --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Claude Cowork for Accounting Firms: A Rollout Guide](https://growthy.com/blog/claude-cowork-for-accounting-firms): How firms roll out Claude Cowork: seats by plan tier, who reviews the output, where client data goes, and the admin controls that govern it. Rolling out Claude Cowork at a firm is not like one bookkeeper trying a new tool. A firm has to answer three questions first. Who gets a seat? Who reviews the output? Where does the client's data go? Answer those first. The day-to-day workflow can wait. This guide covers Claude Cowork for accounting firms at the firm level only. It covers seats, review, and data handling. Want the day-to-day workflow a bookkeeper runs inside Cowork? Read our [individual-workflow guide](/blog/claude-cowork-for-accounting-bookkeeping) instead. Month-end close steps live in a [separate guide](/blog/claude-cowork-month-end-close) too. This piece stays at the firm level on purpose. **What is Claude Cowork, and does a firm need a special plan for it?** Cowork sits on paid Claude plans only: Pro, Max, Team, and Enterprise. It runs on the same agent system as Claude Code, but with no terminal. You describe a task. Claude plans the work, breaks it into steps, and returns a finished result. Desktop access, on Mac or Windows, ships on every paid plan. Web and mobile ship on Pro, Max, and Team. On Enterprise, those surfaces stay off until an admin turns them on. A firm's rollout call is really an admin call, not just a plan choice. ## Key Takeaways - **Cowork sits on paid plans only: Pro, Max, Team, Enterprise.** There is no free-tier seat. - **Desktop access comes with every paid plan.** Web and mobile are on by default for Pro, Max, and Team, but admin-enabled on Enterprise. - **Cowork does the work and hands back a result.** A person still checks it. Nothing in Cowork signs off on a client engagement. - **Cloud work runs on Anthropic's servers.** A local file or browser task routes through the Claude Desktop app on that machine. - **Network rules do not cover web fetch, web search, or connectors like Claude in Chrome.** That gap matters for locked-down firm networks. - **Admins get real levers: access by team,** spend limits, tool permissions by department, and an activity feed to your SIEM. ## Seats and who gets them Cowork is a paid-plan feature only. It is not on a free Claude account. So a firm's first choice is which plan tier covers the people who need it. Desktop access, on Mac or Windows, comes with every paid plan: Pro, Max, Team, and Enterprise. Web and mobile access work a bit differently. On Pro, Max, and Team, they are on by default. On Enterprise, they stay off until an admin turns them on for a team. That is a real design choice. An Enterprise firm opts in to each surface. It does not get everything at once. The Chrome side panel version of Cowork sits on Max and Team today. It is rolling out to Pro. On Enterprise, an admin has to turn it on, the same as web and mobile. In practice, do not hand out the same access to every staff member on day one. A partner reviewing output on a laptop needs different surfaces than a bookkeeper working inside a browser tab. Map roles to surfaces first. Hand out seats second. Not every firm needs the same setup either. Claude Cowork for accountants at a two-person shop looks different than it does at a firm with a dozen staff across three departments. ## Who reviews and who signs off Cowork plans a task, runs the steps, and hands back a finished output. That is the loop: plan, run, return. Nothing in that loop reviews the work for you. Nothing in it signs off on a client engagement. The real control here is Claude's permission modes. Three modes govern when Claude asks before it acts. Each mode is crossed with a per-connector setting: Always allow, Needs approval, or Blocked. A firm can set a connector to Needs approval, so a person has to say yes first. Or set it to Blocked, so Claude cannot reach it at all. That is the actual lever a firm has. It is not a claim about automatic quality control. To be direct: nothing here says Cowork, or any AI tool, replaces a reviewer's sign-off on a client's books. A person still reviews the output. A person still signs off. Growthy is bookkeeping software, not a CPA firm. This guide does not say otherwise about Cowork either. ## Where client data goes This is the question that matters most for an engagement. Cowork runs tasks in the cloud, currently in beta, on Anthropic's own servers, inside an isolated space. Sessions and files save to the user's Claude account. They follow that person across desktop, web, and mobile. Close the laptop, and the task keeps running. When a task needs something local, a file or the browser itself, Claude reaches it through the Claude Desktop app on that machine. That app is the bridge between the cloud session and anything sitting locally. Here is the part every firm should know before rollout. Cowork follows a firm's existing network egress rules, but those rules do not cover everything. Web fetch, web search, and connectors including Claude in Chrome sit outside them. Web fetch itself runs server-side. It is limited to search results and shared URLs. If your firm has locked down its network rules, do not assume those rules quietly cover Cowork's web tools too. They do not. Anthropic says this plainly in its own documentation: Cowork "has unique risks due to its agentic nature and internet access." That is Anthropic's own language, not a marketing gloss. It belongs in any honest rollout talk. Whether that risk works for a given engagement, and a given client's data, is a call for your firm and its own policy. This guide lists the controls. It does not make that call for you. Put plainly, a firm weighing Claude Cowork for accounting firms is not weighing one tool against no tool. It is weighing a specific set of published controls against a specific set of published gaps, for a specific engagement. That framing changes the conversation from "is this safe" to "which controls does this engagement actually require," which is a question your firm can answer. ## Admin controls for the firm A firm rolling out Cowork gets more than an on/off switch. Here is Anthropic's own line on Teams and Enterprise controls: "Admins set access by team, manage spend limits, and control tool permissions by department. Activity streams to your SIEM through OpenTelemetry." Break that into plain terms. Access by team means a bookkeeping team and an admin team do not share the same permissions. Spend limits cap what a team can run up. Tool permissions by department mean one team's connectors do not become another's. The SIEM stream means your security team can watch what happens. They do not just have to trust it. One more lever worth knowing. A Team or Enterprise plan owner can turn off web search for both Cowork and Chat. Find it in Organization settings under Capabilities. For a firm that wants Cowork's task work without the open internet attached, that is the switch. This guide will not tell you Cowork carries a specific compliance badge, a data-retention window, or that it is cleared for client financial data. Those facts are not public anywhere we could check as of this writing. Confirm them with Anthropic directly, or through your own firm's compliance process, before you decide what data touches Cowork. ## Rolling this out at your firm Rolling out Claude Cowork for accounting firms comes down to these same four decisions every time, whether your firm has three people or thirty. None of this replaces your firm's own policy work. It gives you the real controls Anthropic has published. Build your policy on what is real, not on what sounds reasonable. Start with seats mapped to roles. Set connector permissions to Needs approval where you want a person in the loop. Confirm your admin turned on the SIEM stream before anyone starts a client task. A simple rollout checklist for a partner or IT lead: pick which plan tier covers your staff, decide which roles get web and mobile access versus desktop only, set connector permissions to Needs approval for anything touching client data, and confirm the SIEM stream is live before day one. Write those four decisions down. A firm that skips this step ends up making the same calls one seat at a time, under pressure, after something has already gone wrong. Weighing how Cowork fits next to a wider AI rollout at your firm? Our guide to [Claude's accounting skill](/blog/claude-bookkeeping-skill) covers a related surface, and the [AI for accountants hub](/topics/ai-for-accountants) collects the rest. If the real problem your firm is solving is a client-count ceiling, not a single tool, [our piece on how many clients one bookkeeper can handle](/blog/how-many-clients-can-one-bookkeeper-handle) is the better place to start. Ready to see what a modern bookkeeping stack looks like for a growing firm? [Start your Growthy signup](/signup/?utm_content=claude-cowork-for-accounting-firms) and bring your books into one place before you decide what AI tools sit around them. --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [QuickBooks Online Review: An Honest Bookkeeper's Take](https://growthy.com/blog/quickbooks-online-review-bookkeeper): An honest bookkeeper's review of QuickBooks Online: what it does well, where it breaks for multi-client work, and who should use it as-is. Most QuickBooks Online reviews come from two places. A vendor with something to sell against it. Or a blogger who has never closed a real client's books in it. This one comes from neither. This is a straight look at QuickBooks Online from the seat of a bookkeeper who runs client books in it every week. What it does well. Where it actually breaks. Who should use it as-is. The short version: QuickBooks Online is good software for one business. The friction shows up once a bookkeeper runs a stack of client businesses through it at the same time. > **Is QuickBooks Online worth it for a bookkeeper who manages more than one client?** > > Yes, for the core job. QuickBooks Online handles bank feeds, reconciliation, and reporting well for any single set of books. The real friction shows up around client count, not day-to-day accounting. Every client lives in a separate company file. Each file has its own login and its own subscription. Nothing about your setup, your rules, or your review queue carries over from one client to the next. That's a small cost at two or three clients. It becomes the real limit on client count once you're past a handful and heading toward the 15-25 client range this piece is written for. ## Key Takeaways - **QuickBooks Online is genuinely good at the core job.** Bank feeds, reconciliation, and its reporting suite hold up well for any single set of books. - **QuickBooks Online Accountant (QBOA) is real, useful multi-client tooling.** One login gets you into every client file, plus a reclassify tool and a working trial balance view. - **The friction is structural, not a bug.** Every client is a separate company file and a separate subscription, with no shared view across them. - **Setup doesn't travel between clients.** Bank rules, vendor mappings, and custom reports get rebuilt inside every new company file. - **QuickBooks Online was built for one business, not a book of clients.** The multi-client layer, QBOA, was added on top of single-entity software. - **The verdict is conditional.** It's solid as-is for a solo founder or a small handful of clients. It gets rough once a bookkeeper is running 15-25 client books. ## What QuickBooks Online actually does well Give QuickBooks Online its due before getting into where it struggles. Millions of businesses run on it. Most of that is not inertia. ### Where it's strongest for a solo client or small business owner For one business with one set of books, QuickBooks Online does the job well. Bank and credit card feeds import reliably. The built-in reports cover what most owners need: profit and loss, balance sheet, cash flow. Invoicing, bill pay, and basic payroll live in the same login. One company file. One subscription. One place to look. This is the use case QuickBooks Online was built around, and it shows. ### The accountant and bookkeeper-specific tooling QuickBooks Online Accountant, or QBOA, is QuickBooks Online's answer to the multi-client problem. It's a real tool, not an afterthought. One login gets a bookkeeper into every connected client file. No separate password per client. The accountant toolbox adds batch reclassify, a working trial balance, and close-checklist features built for the monthly review process. A review of QuickBooks Online that skips QBOA is reviewing the wrong product for how a bookkeeper actually works. ### The ecosystem effect QuickBooks Online is still the default in the U.S. small business market. That has a real upside, apart from its own features. Payroll providers, point-of-sale systems, and payment processors build a QuickBooks Online connector first. Sometimes only. A bookkeeper picking client software inherits that network effect either way. Check the [QuickBooks Online integrations landscape](https://growthy.com/topics/quickbooks-integrations) before you commit a client to a stack. ## Where QuickBooks Online breaks once a bookkeeper crosses about 10 clients None of this is a knock on how QuickBooks Online is built. It's a design mismatch. QuickBooks Online was built as single-entity accounting software. The friction below shows up when one bookkeeper runs fifteen, twenty, or twenty-five of those single-entity setups at once. ### Every client is a separate company file and a separate login switch There's no dashboard that shows every client in one view. Instead there's a company-file switcher. Every switch is a full context change: a different chart of accounts, different bank feeds, different open items. With three clients, that's a minor annoyance. With fifteen or more, the switching adds up to real time. Most of it goes to figuring out what needs attention, not doing the actual work. ### Per-client subscription cost adds up Each client typically carries its own paid QuickBooks Online subscription. It's billed to the client directly, or through QBOA wholesale billing. Either way, a bookkeeper isn't managing one tool with clients inside it. They're managing a stack of separate subscriptions that happen to share one login layer. That's a real cost worth knowing going in. Check QuickBooks Online's current published pricing before you quote a client, since plans change. ### Categorization rules and vendor mappings don't travel with you Bank rules, vendor-to-category mappings, and custom reports live inside each company file. None of it carries forward to the next client automatically. A bookkeeper's own judgment (which vendor goes where, which pattern means what) gets rebuilt from scratch every time a new client file opens. Even when the bookkeeper has made that exact call a hundred times before, on other books. ### No native cross-client reconciliation or review queue There's no single place inside QuickBooks Online to see which clients have unreviewed or uncategorized transactions today. Each client's review queue lives inside that client's own file. Reconciliation status has no shared, cross-client view built in. ## What kind of business QuickBooks Online is actually built for Step back and the pattern is simple. QuickBooks Online is single-entity accounting software. QBOA is a multi-client layer added on top, for accountants and bookkeepers. It was not built from the ground up as multi-client software. That's not a criticism. It's a design fact. It explains the friction above better than any list of missing features would. A tool built well for one business will always show some seams when one person tries to run twenty of them through it at once. Some argue that QuickBooks Online is simply the wrong platform for a multi-client practice, full stop. In practice, that overstates it. The accounting engine holds up fine, client by client. It's the layer above the ledger, the part that has to manage 10-15 clients or 15-25 clients at once, that was never built. That's a narrower problem than "wrong platform," and it points to a narrower fix. ## The verdict: who should use QuickBooks Online as-is, and who needs to change how they work around it For a solo bookkeeper with a small handful of clients, QuickBooks Online as-is is a reasonable choice. The same goes for a single-entity founder managing their own books. The core product is solid. The ecosystem is wide. QBOA covers the basics of multi-client access. Read [what to look for in bookkeeping software built for multi-client firms](https://growthy.com/blog/best-bookkeeping-software-multi-client-firms) for the fuller category comparison if you're weighing options. For a bookkeeper running toward the [15-25 client ceiling](https://growthy.com/blog/how-many-clients-can-one-bookkeeper-handle), the friction above changes the math. The file switching. The per-client setup. The missing cross-client view. Together, this becomes the real limit on how many clients one person can serve well. Not a lack of hours in the day. Say it plainly: at that point, the constraint usually isn't QuickBooks Online being bad software. It's QuickBooks Online being the wrong shape of software for running many books at once. Some bookkeepers solve this by adding a layer on top of QuickBooks Online, rather than replacing it. Software that pulls in each client's QuickBooks Online data. Software that applies pattern learning to speed up categorization across the client base. Software where the bookkeeper still reviews and approves every result before it posts. Growthy is one option built for that job. This is not a pitch to replace QuickBooks Online. For most bookkeepers, QuickBooks Online stays the client's ledger of record. The real question is what sits between it and the fifteenth or twentieth client file on a Tuesday afternoon. ## Frequently asked questions ### Is QuickBooks Online good for a bookkeeper with multiple clients? It's good for the core accounting job inside each client's file. Bank feeds, reconciliation, and reports all hold up well one file at a time. It gets harder to manage once you add clients, because there's no shared setup or shared view across files. ### What is QuickBooks Online Accountant (QBOA)? QBOA is the accountant-facing layer of QuickBooks Online. It gives a bookkeeper one login into every connected client file. It also adds tools built for review work, like batch reclassify and a working trial balance. ### Does QuickBooks Online have a dashboard that shows all my clients at once? No. QBOA lets you switch between client files from one login, but each file still opens on its own. There's no single screen that shows every client's status together, and no shared review queue across them. ### Is QuickBooks Online worth it for a solo bookkeeper? Yes, for a bookkeeper with a small handful of clients, or for a business owner managing their own books. The friction in this review mostly shows up once client count climbs toward the 15-25 range. ### Do I need something other than QuickBooks Online to run a full book of clients? Not necessarily. Plenty of bookkeepers run 15 or more clients on QuickBooks Online alone. Some add a layer on top to handle the file-switching and setup work, without replacing QuickBooks Online as the client's ledger of record. ### Is QuickBooks worth it for a bookkeeper running client books? Yes, for the accounting itself. Is QuickBooks worth it for the multi-client workflow too? Mostly, once you plan around the friction above instead of being surprised by it. ## Conclusion QuickBooks Online earns its market position honestly. It's reliable for the core job. QBOA is a real answer to the multi-client login problem. Where it runs out of room is client count. Setup, rules, and review don't carry between company files. The cost of running more clients through it grows with every client added. If that friction sounds familiar, [book a demo](/signup/?utm_content=quickbooks-online-review-bookkeeper) and see it on a client's QuickBooks Online file. See the shared, cross-client review queue for yourself. --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How Many Clients Can One Bookkeeper Handle?](https://growthy.com/blog/how-many-clients-can-one-bookkeeper-handle): The real hours math behind the bookkeeper client ceiling: where 20-25 clients comes from, why categorization eats the clock, and what moves it. ## Introduction You take on a new client and it feels fine. Then you take on another one. Then one more, and something changes. Reconciliations slip a day, then a week. You stop reviewing every categorization line by line. A client emails with a question and it sits for two days before you answer. How many clients can one bookkeeper handle before that happens? That's the ceiling. It isn't a number someone hands you. It's the point where adding one more client starts costing you accuracy on the clients you already have. Most bookkeepers never measure where that point is. They just feel it arrive and start saying no to new work, or worse, they don't say no and quality slips quietly. This piece does the math on bookkeeper client capacity instead. > **How many clients can one bookkeeper handle?** > > A full-time solo bookkeeper's ceiling lands around 20 to 25 clients. That range comes from dividing about 112 billable hours a month by 4 to 6 hours of work per client. The biggest cost per client is transaction categorization. Cut that cost with review and approve instead of hand-coding, and the same hours stretch to 25 to 30-plus clients. The exact number moves with client complexity. The math behind it does not have to stay a guess. ## Key Takeaways - **A full-time solo bookkeeper has roughly 112 billable hours a month** after accounting for admin, sales, and non-client work. - **A typical straightforward client costs 4 to 6 hours a month,** which puts the baseline ceiling around 20 to 25 clients. - **Categorization is the single biggest hour-eater per client,** usually 2 to 3 of those 4 to 6 hours. - **Cutting categorization time with review-and-approve can move the ceiling to roughly 25 to 30-plus clients,** without hand-coding every line. - **Hiring alone, switching software alone, and working more nights don't move the ceiling.** They move the work around or trade hours for hours. - **The ceiling is a math problem, not a willpower problem.** Run your own numbers and you'll get your own answer. ## Body ### Where the Ceiling Actually Sits How many clients per bookkeeper is actually workable? Start with hours, not clients. A full-time solo bookkeeper works roughly 160 hours a month: 40 hours a week, four weeks. Not all of that goes to client work. Admin, invoicing, sales calls, and keeping your own skills current eat into it. At a solid 70% utilization on client work, that's about 112 billable hours a month. Now the per-client side. A straightforward small-business client with a monthly close costs about 4 to 6 hours a month. Categorization and transaction coding take 2 to 3 hours, the single biggest piece. Reconciliation takes about 1 hour. Review, reporting, and client emails take 1 to 2 hours. Divide 112 hours by the midpoint of that range, 5 hours a client. That's about 22 clients. At the efficient end, 4 hours a client, it's 28 clients. At the messier end, 6 hours a client, it's about 19. Round it out and the honest range is 20 to 25 clients. That lines up with [where multi-client bookkeeping software actually earns its cost](/blog/best-bookkeeping-software-multi-client-firms). That range moves with complexity. Payroll clients, multi-entity clients, and inventory-heavy clients push the per-client hours up and the ceiling down. But you now have a number to move, not a feeling to manage. The [bookkeeper scaling hub](/topics/bookkeeper-scaling) has more on the systems and habits that move it further out. A single average hides how this plays out. No bookkeeper runs a roster of identical clients. Say your mix is 5 payroll clients at 8 hours a month each, plus simple clients at 4 hours a month each. The 5 payroll clients already cost 40 of your 112 hours. That leaves 72 hours for the rest. At 4 hours each, that's 18 more clients, for a total of 23. Change the mix and the number moves. That's the real answer to "it depends." It depends on your roster, and you can calculate exactly how much. ### Why Categorization Eats the Clock Look again at the 4 to 6 hours per client. One line stands out: categorization takes 2 to 3 hours, the biggest bite. That's not an accident. It's a function of volume. A single small-business client can generate hundreds of transactions a month. Most of them need the right account before reconciliation, review, or reporting can happen. Reconciliation and review don't grow the same way. They're closer to fixed costs. You're checking totals and reading a close, not touching every line. Categorization is where the hours actually live. That makes it the one place where a change in method moves the math for every client at once. Put a number on "hundreds of transactions." A client running $30,000 to $80,000 a month typically has 150 to 400 bank and card transactions a month. At one transaction every 30 seconds, hand-coding 300 transactions is 2.5 hours. That's before you've caught one miscoded transfer or answered one client question. That's the 2 to 3 hour range from a different angle. It isn't a guess. It's transaction count times seconds per transaction. ### What Actually Moves the Ceiling Categorization is the biggest chunk of per-client hours. So it's the single change with the most effect on the ceiling. Pattern-learning-assisted categorization changes the math here: instead of hand-coding every transaction, you review and approve suggested categories. You still make the call on every line that matters. The software's job is narrowing down what you're looking at, not deciding for you. That's the same enable-not-replace shape covered in [will AI replace bookkeepers and accountants](/blog/future-of-ai-in-accounting). The tool changes your hours, not your judgment. Here's why review-and-approve costs less time, without costing you the judgment call. Coding from scratch means reading every transaction, picking an account, and typing it in, one at a time, for all 150 to 400 lines. Review-and-approve flips the order. The software groups similar transactions and suggests an account based on this client's past coding. You scan the groups and approve or correct them. You're still making every decision. You're just making it on pre-sorted groups instead of one raw line at a time. That's where the time savings come from. Run the same math with categorization time cut roughly in half. The 4 to 6 hour range drops to 3.5 to 4.5 hours a client. Divide the same 112 hours: 112 divided by 4 is 28. 112 divided by 3.5 is about 32. The moved range lands around 25 to 30-plus clients. Same hours, same bookkeeper, lower per-client cost. That's the same model as before, with one input changed. It's not a promise about your specific books. Your categorization time and your review time will vary by client mix. The reconciliation feature some tools mention is still in beta and gated for most users right now. Don't build your ceiling math around it existing today. ### What Doesn't Move It A few moves feel like they should raise the ceiling and mostly don't. Hiring a junior moves the work, not the margin. Someone still has to review their coding, and training time eats the first few months of any gain. You've added a person before you've added capacity. Switching accounting software alone changes the interface, not the hours, unless the workflow around it changes too. A new tool with the same manual process produces the same math. Working more nights raises your hours, not your capacity. The ceiling was never about willingness. It's about how many hours a straightforward client actually costs you. No amount of willingness changes that number. Raising your rates doesn't move it either, though it's worth doing anyway. Revenue per client goes up. The hours per client stay exactly the same. A rate increase fixes your income. It doesn't fix your calendar, and the two problems need different solutions. None of the numbers above come from a survey or a study. They come from the math above: your available hours divided by your per-client hours. Run your own numbers and you'll get your own ceiling. That's the point. ## Conclusion So, how many clients can one bookkeeper handle? The baseline math puts a full-time solo bookkeeper's ceiling around 20 to 25 clients. Cut categorization time with review-and-approve, and the same hours can stretch to 25 to 30-plus. Run the numbers against your own client roster. Check the [bookkeeper scaling hub](/topics/bookkeeper-scaling) for more on the systems that move the ceiling. Whatever your actual hours and your actual client mix, the same division works: available hours divided by per-client hours. Change either side and the ceiling moves with it. That's the number worth knowing before you say yes to client 21. Bobby writes more on raising that ceiling in his newsletter, [Scaling Clients](https://scalingclients.com). --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. --- [See what review-and-approve categorization does to your hours](/signup/?utm_content=how-many-clients-can-one-bookkeeper-handle) --- *Related: [*Bookkeeper Scaling Hub*](/topics/bookkeeper-scaling), [*Multi-Client Bookkeeping Software, Priced by Client Count*](/blog/best-bookkeeping-software-multi-client-firms), *[*Will AI Replace Bookkeepers and Accountants*](/blog/future-of-ai-in-accounting) ### [ChatGPT for Bookkeeping: What Works and What Breaks](https://growthy.com/blog/chatgpt-for-bookkeeping): ChatGPT's official QuickBooks app is no longer read-only. See what it handles well, where it breaks on real books, and what to do about each break. You already picked ChatGPT. This page won't try to talk you out of that. It's a straight read on ChatGPT for bookkeeping: what it does with real books today, where it breaks, and what to do about each break. Here's what most write-ups still get wrong. They call the official QuickBooks app in ChatGPT a read-only reporting tool. That boundary moved. Intuit added named, actionable features on top of the reports. If you're working from an old mental model, you have the wrong picture. This matters more once you're past a handful of clients. A wrong assumption about what a tool can touch doesn't stay small; it repeats across every client file it touches. This piece uses only facts verified live on 2026-09-03. Nothing here comes from memory or an old blog post. > **What can ChatGPT actually do for bookkeeping?** > The official Intuit QuickBooks app in ChatGPT is live for logged-in ChatGPT Free, Plus, and Pro accounts. It works on web and mobile, in the US only. It can analyze profitability, cash flow, and benchmark comparisons. It can generate reports like a P&L on request. Intuit has since added named actionable features: sales invoicing (quote-to-cash), deeper payroll query tools, and QuickBooks Capital peer loan benchmarking. So it's no longer purely read-only. The write surface stays scoped to those named workflows, not general-ledger editing. It doesn't fire on triggers or watch your books. It answers when you ask. Two other connection paths exist too, each with its own reach and its own upkeep cost. ## Key Takeaways - **The official QuickBooks app in ChatGPT is no longer read-only.** It handles named actionable workflows, including sales invoicing, payroll queries, and loan benchmarking, plus analysis and reports. - **It only answers when you ask.** It doesn't watch your books or fire on a trigger. It won't catch a problem you haven't already noticed. - **A free connector reaches further.** The Meridian by Pilot QuickBooks Connector lets ChatGPT run reports, find a missing transaction, or enter a batch of invoices. Access is read-only or read-write, set per company. - **Build-your-own reaches the most and costs the most.** A custom GPT Action on the QuickBooks Online API, or a Zapier or Make flow, gets you closer to full API access. You maintain it yourself. - **The official app is US-only. Access level is a real decision, not a footnote.** Every path that touches QuickBooks needs its access level set on purpose, per company. - **None of the three paths replaces review.** Pick the access level on purpose. Keep the trust call for client books with a human, every time. ## What ChatGPT Actually Does With Real Books Today Start with what it's good at. Open the official QuickBooks app inside ChatGPT. Authorize your QuickBooks account. Then ask for a profitability read, a cash-flow snapshot, or a benchmark against similar businesses. Ask for a P&L and it builds one. For a bookkeeper juggling several clients, that's a fast way to pull a client-facing number. You skip clicking through QuickBooks Online's own report menus. Here's the update most explainers on ChatGPT for accounting haven't caught up to. Intuit also added named, actionable features to the same app. Sales invoicing, meaning quote-to-cash, now runs through it. Payroll query tools go deeper than a static report. QuickBooks Capital peer loan benchmarking is in there too. That makes the app more than read-only. But the write surface stays scoped to those three named workflows. It does not reach general-ledger editing. Nothing here lets ChatGPT reclassify a transaction or post a journal entry on its own. Want the full setup path, every option and every toggle? See [our QuickBooks-to-ChatGPT connection guide](https://growthy.com/blog/connect-quickbooks-online-to-chatgpt). ### The On-Demand Limit One limit is easy to miss. The app doesn't fire on triggers. It doesn't watch your books. It answers when you ask, and that's it. For a bookkeeper with many clients, that's a real gap. Nothing here replaces a monthly review. Nothing here catches a problem you haven't already gone looking for. Keep this in mind for the breaks below. The fix for each one still runs through a human who decides when to ask and what to trust. ## Where It Breaks on Real Books ### Break 1: The Read-Only Assumption Is Now Wrong Maybe you learned about the official app a while back. Maybe you read an older explainer. You might still think it can only look at your books, never touch them. As of this piece's verification date, that's false. Sales invoicing, payroll queries, and loan benchmarking are live, named, actionable features. The break isn't that it writes now. The break is that the line around what it can write is easy to get wrong. That happens when you go by memory instead of checking the current feature list before you lean on it for a client. ### Break 2: Access Level Isn't One Setting. It's Per Company, Per Path The Meridian by Pilot QuickBooks Connector is a free connector, launched 2026-08-11. It lets ChatGPT and other AI tools act inside QuickBooks Online: run reports, find a missing transaction, enter a batch of invoices. You sign into QBO, pick which entity to connect, and set read-only or read-write access per company. That per-company part is the break for a bookkeeper near the 15-25 client ceiling. Access isn't a one-time setup step. It's a choice you make again for every client you connect. Read-only means the tool can look but never post anything. Read-write means it can act, inside whatever the connector supports for that company. Those are two different risk profiles, and a bookkeeper who sets every connection to read-write out of habit, just to save a step, has traded convenience for a mistake waiting to happen. Get one toggle wrong on one client's books, and that's a real-money mistake, not a hypothetical. ### Break 3: The Custom-Build Path Is a Maintenance Job, Not a Feature Path three is building it yourself. That means a custom GPT with an Action on the QuickBooks Online API, or a Zapier or Make flow. It reaches further than the first two paths. But it isn't a feature you set up once and keep. It's a project you maintain. It breaks when QuickBooks Online's API changes, or when your automation platform updates a step under you. Treat it as the highest-reach, highest-upkeep option. It's not a shortcut around the other two. ## What to Do About Each Break **For Break 1:** drop the blanket assumption, in either direction. Don't assume it's read-only. Don't assume it can do anything. Before you hand it a client task, check the named feature list: invoicing, payroll queries, loan benchmarking. Check what's live now, not what was live six months ago. **For Break 2:** default new Meridian connections to read-only. Flip to read-write only for the one company and one task that needs it. Write down the access level per client. Don't set it once and forget it exists. **For Break 3:** only take the custom-build path if you have the time, or the budget, to maintain it. Plan for it to break when the API or your automation platform changes. Don't hand a client-facing workflow to a custom build with no backup plan. Run this short checklist before you connect any AI tool to a client's QuickBooks: - Name which of the three paths you're using, and why that one over the others. - Set the access level, read-only or read-write, per company, on purpose. - Write down which named features are actually live before you tell a client what the tool can do. - Decide who reviews the output before it touches a client's books. - Revisit the access level and the feature list on a schedule. Both change. Critics argue no AI tool belongs anywhere near client QuickBooks files, full stop. In practice, the three paths above already exist and clients are already asking about them, so the realistic move is setting the access level on purpose instead of pretending the question away. None of the three paths is safe for client books by default. Each one gives you controls, not guarantees. The trust call for one client's books is yours to make. It's not the tool's call. Weighing this against a client-management platform? Want a plain read on QuickBooks Online itself before you add an AI tool on top? [Our QuickBooks Online review for bookkeepers](https://growthy.com/blog/quickbooks-online-review-bookkeeper) covers that separately. And if the real question here is how many clients you can carry once your tool stack is right, [we break down the numbers here](https://growthy.com/blog/how-many-clients-can-one-bookkeeper-handle). For the full set of QuickBooks connection options across tools, start at our [QuickBooks integrations hub](https://growthy.com/topics/quickbooks-integrations). ## Conclusion You already chose ChatGPT, and that choice holds up. The tool got more capable since the last time someone wrote about it. The official app moved past read-only into a scoped set of named actions. That capability needs the same careful, per-company access decisions any bookkeeping tool needs when it touches client data. Check what's actually live before you promise a client what it can do. Set access on purpose. Keep a human in the loop on every path. None of this is a reason to walk away from ChatGPT. It's a reason to know exactly what you're handing it, client by client, before you do. [See how Growthy handles categorization before you decide what ChatGPT should touch.](https://growthy.com/signup/?utm_content=chatgpt-for-bookkeeping) --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Accounts Receivable Outsourcing: When to Outsource AR and What It Costs](https://growthy.com/blog/accounts-receivable-outsourcing): What it costs to outsource accounts receivable: real bookkeeper rates, software prices, and the math for doing it yourself. Plus when to skip it. You're looking at an aging report. Four invoices are past 30 days. One is past 90. You've already sent the polite reminder twice. Now you're wondering whether chasing invoices is still your job, or whether you should pay someone else to do it. That question sits at the center of [how you manage receivables](https://growthy.com/topics/accounts-receivable-management), and it has a real dollar answer. There are three ways to handle it, and accounts receivable outsourcing is only one of them. Do it yourself. Hire a bookkeeper to do it. Or buy software and run the follow-up yourself. This page prices all three with published numbers and shows the arithmetic. There's no universal winner here. The right answer moves with how many invoices you send and what an hour of your time is worth. One thing up front, so you know the angle before the math starts. I'm Bobby Huang. I'm a partner at SDO CPA LLC. I'm not a licensed CPA. I built Growthy. Growthy is 85% accurate on first import. You review the rest. Growthy has no accounts receivable feature and no collections feature. It does not chase invoices. So none of the three options below is a Growthy product, and I have nothing to sell you inside this decision. > **What is accounts receivable outsourcing and what does it cost?** > > Accounts receivable outsourcing means handing invoicing and payment follow-up to someone outside your business. That can be a bookkeeper who adds AR to a monthly package, a dedicated AR service, or a collections agency for accounts that already went bad. Buying software is a different thing. Software gives you a tool, and you still do the chasing. Prices come in three shapes. Independent bookkeepers charge $40 to $65 an hour for mid-level work and $65 to $125 an hour for specialists (Growthy's own rate survey, Bookkeeper Hourly Rate in 2026). Workflow software starts at $233 a month billed yearly, $259 billed monthly (Chaser, US Compact tier). Contract-to-cash platforms start at $2,000 a month (Tabs, Launch tier). ## Key Takeaways - **Late invoices are common** - 59% of small businesses carry invoices 30 or more days overdue, up from 47% the year before (Intuit QuickBooks, 2026 Small Business Late Payments Report, published 2026-07-07). - **You have three real options** - do it yourself, hire a bookkeeper at $25 to $200 an hour depending on level, with mid-level at $40 to $65 (Growthy's own rate survey, Bookkeeper Hourly Rate in 2026), or buy software from $233 a month billed yearly (Chaser, US Compact tier). - **One number decides it** - hours a week × 52 × your hourly rate. If that annual figure lands under about $2,800, no software on this page pays for itself, and a bookkeeper only does if their rate is below yours. - **Software is not outsourcing** - a tool makes your follow-up faster and steadier, but you're still the one doing it. - **Growthy does not chase invoices** - it's a general ledger that categorizes transactions automatically, 85% accurate on first import (Growthy's own first-import benchmark, 2026), and you review the rest. - **A lot of overdue AR starts before the follow-up** - invoices sent late and payment terms nobody read are common causes, and both are free to fix. ## Why late invoices cost real money This is a common problem, not an unlucky one. 59% of small businesses have invoices overdue by 30 days or more, up from 47% the prior year (Intuit QuickBooks, 2026 Small Business Late Payments Report, published 2026-07-07). Businesses carrying unpaid invoices are owed $17.7K on average. In the same report, 22% of small businesses have at least a fifth of their invoices sitting past the 30-day mark. The amounts don't have to be large to hurt. In that same report, 27% of owners said a missed payment under $5,000 made payroll or other bills harder to cover. 12% said a payment under $1,000 was enough to do it. The pressure shows up in how owners describe the business, too. Among businesses with overdue invoices, 51% call cash flow a problem. Among businesses without them, it's 36%. So who chases your invoices is attached to whether you make payroll in a slow month. Every invoice sitting past due is working capital you've already earned and can't spend yet, which is why collecting sooner is one of the cheapest ways to improve cash flow. That makes it worth pricing carefully. Before you price anything, find out which bucket you're actually in. Pull an [AR aging report](https://growthy.com/blog/accounts-receivable-aging-report) and count what's sitting in each column. A business with two invoices past 30 days has a different problem than a business with twenty. There are three ways to deal with what you find. The right one depends on your numbers. ## Option 1: Do it yourself Doing it yourself means you send the invoices, track who paid, follow up by email or phone, and update the books when the money lands. Nobody sends you a bill for any of that. That's what makes it feel free, and that's the trap. You pay for it in hours. Here's how to price those hours. The hours number has to come from you. There's no reliable published figure for how long a typical owner spends on invoice follow-up, so any page that hands you one is guessing. Pick your own number and be honest about it. Look at last month. Say you spend three hours a week on invoice follow-up. That's a scenario, not a statistic. Now pick a rate. A conservative floor is the median wage for bookkeeping, accounting, and auditing clerks: $23.66 an hour (U.S. Bureau of Labor Statistics, Occupational Outlook Handbook, "Bookkeeping, Accounting, and Auditing Clerks," May 2024 data). Read that number narrowly. It's what an employed clerk earns, not what an independent bookkeeper charges you, and it leaves out payroll taxes and benefits. Use it as a floor, nothing more. The formula is short: > Hours per week × 52 weeks × your hourly rate = annual cost of doing it yourself. At three hours a week and the BLS floor, that's 3 × 52 × $23.66 = **$3,691 a year**. Your own time usually costs more than that floor. If you bill clients at $75 an hour, the same three hours a week works out to 3 × 52 × $75 = **$11,700 a year** in time you could have billed. Same task. Very different number. Plug in your real hours and your real rate before you shop for anything. That figure is the budget every other option has to beat. ### What doing it yourself costs besides time Owner-run follow-up tends to be uneven. It happens on the slow weeks and stops on the busy ones, which is exactly backwards, because busy weeks are when cash goes out fastest. Invoices get skipped. Reminders land three weeks late or not at all. Nobody's tracking which client always pays on day 45 and which one needs a nudge on day 8. If you're staying in this lane, the fix is a written cadence you actually follow. Set the dates, write the messages once, and send them on schedule. A set of [payment reminders for unpaid invoices](https://growthy.com/blog/payment-reminders-unpaid-invoices) you can reuse costs nothing. It also removes most of the decision-making that makes owners skip the task. ## Option 2: Hire a bookkeeper This is the option most people mean when they say outsourcing. Most accounts receivable outsourcing services are built this way: a bookkeeper adds AR follow-up to your monthly work. They send the invoices, watch the aging, and make the calls. Sometimes it's billed by the hour, sometimes folded into a flat monthly fee. Here's what the market actually charges. Entry-level bookkeepers run $25 to $40 an hour. Mid-level runs $40 to $65. Specialists run $65 to $125. A firm owner billing their own time runs $80 to $200. The national average for an experienced independent bookkeeper sits at $45 to $55 an hour. Fixed-fee arrangements commonly land at $300 to $700 a month per client, and that fee usually covers the whole book rather than AR alone (Growthy's own rate survey, [Bookkeeper Hourly Rate in 2026](https://growthy.com/blog/bookkeeper-hourly-rate)). Run the same arithmetic you ran on yourself. Say a mid-level bookkeeper spends three hours a week on your AR follow-up at $50 an hour, near the middle of the experienced independent band. That's 3 × 52 × $50 = **$7,800 a year**. Now sanity-check that number, because it's the check most buyers skip. $7,800 a year is $650 a month for AR follow-up alone. Compare it to the $300 to $700 monthly fixed fee above, which usually covers your entire book. If an AR-only quote lands near the top of that band, you're paying full-service money for one service line. Either the hours are overstated or the scope is. Set the hourly version against the DIY numbers on the same annual basis. $7,800 is more than the $3,691 you'd spend at the BLS floor and less than the $11,700 you'd give up at a $75 billable rate. If your hour is worth more than the bookkeeper's hour, paying them wins on paper. If it isn't, the hours are cheaper in your own hands. Just remember the two rates measure different things: yours is what you'd earn instead, theirs is what they bill. What the money buys you is a person. Someone who notices that an invoice went out on the wrong date, calls the client who never opens email, and tells you when a receivable has stopped being late and started being bad. A tool on its own doesn't do that, though some vendors sell a staffed add-on. Hiring also means the awkward part stops being your job, which for a lot of owners is worth more than the hourly difference. ### If you're the bookkeeper reading this Plenty of bookkeepers land here because a client asked what outsourcing AR would cost. The honest answer is that AR is one of the easier service lines to add and one of the easier ones to underprice. It's recurring and schedule-driven. It also gets slower per client the more clients you take on, unless you fix the cadence first. Price it on your time at the bands above. If you're weighing it as a service line, the pricing and capacity side lives in the [bookkeeper scaling](https://growthy.com/topics/bookkeeper-scaling) cluster. ## Option 3: Buy software and run it yourself Worth naming clearly: this is not outsourcing. You still do the chasing. Software makes the chasing faster, more consistent, and easier to hand to somebody else later. Two real products, with their published prices. **Chaser** sells AR follow-up automation. The Compact tier runs $259 a month billed monthly, or $233 a month billed yearly, for businesses under $5 million in annual revenue. It includes 4 users, 30 follow-up templates, and 4 automated receivables workflows. There's a paid "Care" add-on that puts a dedicated AR specialist on your account (Chaser, US pricing page). It fits a business that wants scheduled reminders and templates and is willing to keep an eye on the dashboard. Its base tier isn't built for a business that wants the whole job taken off its plate; the Care add-on is Chaser's answer to that, at extra cost. **Tabs** sells contract-to-cash. The Launch tier is $2,000 a month for companies up to $5 million in annual revenue and up to 100 active contracts, with higher tiers priced individually (Tabs, pricing page). It fits a business where the hard part is turning complicated contract terms into correct invoices, not just remembering to send a reminder. It isn't sized for a business sending a handful of invoices a month. One more thing to check before you buy either. Check whether the accounting software you already pay for includes scheduled invoice reminders. Some do, at no extra cost beyond the subscription, and prices vary by vendor, so read your own vendor's live pricing page. If bundled reminders cover what you need, a dedicated AR tool is a second bill for a job the first bill already handles. ## Three options at a glance Here are the same three options side by side, annualized so the rows compare. The two hours-driven rows use the same three-hours-a-week scenario as the worked examples above, which is an illustration and not a published figure. Find your row. | Option | Cost per year | Best fit | Where it breaks down | | --- | --- | --- | --- | | Do it yourself | $3,691 at the $23.66/hr BLS floor, $11,700 at a $75 billable rate, on the 3 hrs/week scenario | Low invoice volume, tight budget, hours you can spare | Follow-up goes quiet exactly when the business gets busy | | Hire a bookkeeper | $7,800 at $50/hr on the same scenario. A whole-book fixed fee runs $3,600 to $8,400 | Moderate volume, and you want a person rather than a dashboard | Cost scales with hours when billed hourly, not with invoice count | | Buy software (Chaser) | $2,796 billed yearly, $3,108 billed monthly, plus your own time | You want automation and will still watch it | You're still the one deciding when to escalate | | Buy software (Tabs) | $24,000 | Complicated contracts and a high contract count | Priced for a business much larger than a few invoices a month | The full price detail, source, and revenue limits for each option sit in its own section above. The BLS figure is an employed-clerk median wage, not a billing rate. ## When outsourcing is the wrong answer Most pages on this topic stop at the comparison table, because the table is where the sale is. Here are four situations where the honest answer is to spend nothing. **Your own annual number is too small to beat.** Run the Option 1 formula first: hours a week × 52 × your rate. If it comes back under about $2,800, no software on this page pays for itself, because the cheapest tool here costs a fixed $2,796 a year (Chaser Compact billed yearly). At the $23.66 BLS floor that threshold is a bit over two hours a week. At $75 an hour it's under one hour a week. Hiring is the one option that can still clear a small number, because a bookkeeper bills by the hour: if their rate sits below yours, paying them is cheaper at any volume. Use your own rate here, not a rule of thumb. **The real problem is your invoice terms or your send date.** A lot of "slow payer" trouble is actually slow invoicing. Say the invoice goes out nine days after the work finishes, on net-30 terms nobody read, with no deposit collected up front. Fix the send date, write terms in plain language, and take a deposit on larger jobs. Those changes are free. At small volume they're worth trying before you pay for anything. **You haven't defined what "done" looks like.** If you can't say what resolving an invoice means, paid in full, written off, disputed, or moved to a payment plan, then nobody you hire can be held to it. You'll pay someone to send reminders and still make every judgment call yourself. Outsourcing amplifies whatever AR process you already have. Write down the steps first, even roughly. The [accounts receivable collections](https://growthy.com/blog/accounts-receivable-collections) process is a reasonable starting shape. **You're short on cash for reasons collections can't fix.** If money's tight because spending outran revenue, faster follow-up buys you a few weeks and nothing more. To use round numbers, collecting a $6,000 receivable three weeks sooner helps, but it won't rescue a business spending $8,000 a month more than it brings in. Be clear with yourself about which problem you have. If none of those four describe you, go back to the table. ## Frequently asked questions Common questions about accounts receivable outsourcing, what it costs, and when to skip it. ### What is accounts receivable outsourcing? You hand invoicing and payment follow-up to someone outside your business. That can be a bookkeeper who adds AR to a monthly package, a dedicated AR service, or a collections agency for accounts that have already gone bad. It isn't the same as buying software. Software gives you a tool and you still do the chasing. Outsourcing means a person does the chasing. ### What does it cost to outsource accounts receivable? Three price shapes. A bookkeeper adding AR to a monthly package charges hourly or folds it into a flat fee, with independent rates running $40 to $65 an hour for mid-level work and $65 to $125 for specialists (Growthy's own rate survey, Bookkeeper Hourly Rate in 2026). Workflow software you run yourself starts at $233 a month billed yearly, $259 billed monthly (Chaser, US Compact tier, under $5 million revenue). Contract-to-cash platforms start at $2,000 a month (Tabs, Launch tier, up to $5 million revenue and 100 active contracts). Collection agencies are typically paid a share of what they recover, and rates vary widely, so ask before you sign. ### Is it cheaper to outsource AR or do it yourself? Depends on what your hour is worth and how many invoices you send. Do the math before you decide: hours a week × 52 × your rate. If that number is smaller than the annual cost of the alternative, keep doing it yourself. Most owners never run the number, which is why they either overpay for a platform or spend Saturdays chasing invoices. ### When is a business too small to outsource AR? Run your annual DIY number first. If it comes in under about $2,800, you're below the price of the cheapest software here, so buying a tool costs more than it saves. Hiring can still work at that size, but only if the bookkeeper's hourly rate is lower than the value of your own hour. Fix the invoice terms and the send date first. Those changes are free and worth trying before you pay for anything. ### Does Growthy chase invoices or collect payments? No. Growthy has no accounts receivable or collections feature. Growthy is a general ledger that categorizes transactions automatically, 85% accurate on first import, and you review the rest. It keeps the underlying books clean and current. Sending reminders and following up is a separate job, done by you, your bookkeeper, or a tool built for it. ### Does outsourcing AR damage customer relationships? It can, if you hand it to someone who treats every late invoice the same way. It usually helps if you hand it to someone who follows a consistent, polite cadence. Most late payments are invoices that got buried rather than genuine disputes. A steady follow-up schedule from a third party is often less awkward than an owner asking a client for money. ## Sources Every price and figure on this page was checked against the publisher's own page on 2026-08-12. Prices change, so check the vendor before you buy. - Intuit QuickBooks,*2026 Small Business Late Payments Report*, published 2026-07-07 - U.S. Bureau of Labor Statistics,*Occupational Outlook Handbook*, "Bookkeeping, Accounting, and Auditing Clerks," May 2024 data - Growthy,[*Bookkeeper Hourly Rate in 2026*](https://growthy.com/blog/bookkeeper-hourly-rate) (our own rate survey) - Chaser, US pricing page - Tabs, pricing page --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Whatever you decide about chasing invoices, the books underneath it have to be current. Growthy categorizes your transactions automatically, 85% accurate on first import, and you review the rest. QuickBooks Online sync is live, and you can also upload a CSV. [Get started with Growthy](https://growthy.com/signup/?utm_content=accounts-receivable-outsourcing). ### [Claude Cowork for Accounting and Bookkeeping: Setup Guide](https://growthy.com/blog/claude-cowork-for-accounting-bookkeeping): Set up Claude Cowork for accounting and bookkeeping, install the Small Business plugin, connect QuickBooks, and run 10+ workflows with real security detail. You open Claude, and there's a folder instead of a chat window. Your invoices, your QuickBooks link, last week's bank export: all sitting there. Claude reads through them and gets to work, one task at a time. You don't have to type out every step. That's Claude Cowork. If the only Claude you've used is the chat box, this guide is for you. It covers how to use Claude Cowork for accounting and bookkeeping, from first setup to daily workflows. We already covered the chat-and-Projects version of this in [How to Use Claude for Bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping). That guide is still useful, but it's built around pasting context into a conversation. Claude Cowork bookkeeping works differently. Claude operates inside a folder you point it at, with tool access and the ability to run several steps on its own. This guide is Cowork-specific and current as of the July 2026 rollout. This guide shows you how to use Claude Cowork for real bookkeeping work. You get the exact 3-step setup, how to install the Small Business plugin, and how to connect QuickBooks. You get more than ten Cowork workflows with prompts you can copy and paste today. And you get an honest look at where Cowork stops being enough once you manage more than your own books. It also covers ground shorter setup guides skip. Projects and Instructions, for work you come back to weekly. The separate Finance plugin, built for firms. Exactly where a Cowork session runs, and what that means for client data. Computer use, as a narrower add-on capability. And a rollout path, from your own books to a small firm running Team-plan controls. > **What is Claude Cowork, and how do you set it up for accounting or bookkeeping?** > > Claude Cowork is a working-session mode where Claude runs multi-step tasks on its own. Instead of one chat thread, Claude works inside a folder you choose, with access to your connected tools, until the task is done. Cowork moved from research preview (starting January 12, 2026) to general availability on all paid plans in April 2026. Setup takes three steps: pick Cowork in the mode picker, run `/setup-cowork`, then choose "Work in a folder." Add the Small Business plugin (Pro, Max, or Team) and you get six money-management skills on top, from a weekly brief to quarterly tax prep. Cowork runs on the Claude desktop app for macOS and Windows on every paid plan. It also runs on a web and mobile beta that started rolling out July 7, 2026. ## Key Takeaways - **Setup is 3 steps, no code:** pick Cowork in the mode picker, run`/setup-cowork`, then click "Work in a folder." - **The Small Business plugin now covers six money skills, not four:**`/monday-brief`,`/month-heads-up`,`/close-month`,`/price-check`,`/plan-payroll`, and`/tax-prep`. Desktop app only, Pro, Max, or Team plans. - **QuickBooks connects free, US only:** the connector pulls reports, compares your numbers to your industry, and makes invoices and estimates. No QBO plan required. - **You sign off on anything sensitive first:** Cowork asks before it sends, posts, or pays. - **It runs while you're away:** scheduled tasks fire with no device online. - **Projects carry memory across sessions; a bare folder doesn't:** set up a Project if you want Cowork to remember last month's fixes. A one-off "Work in a folder" session won't. - **Cowork sessions run remotely, in an isolated environment, not on your machine:** worth knowing before you connect client files. - **It's a workflow tool, not a system of record:** one folder, one session at a time. It's not built to run 10-plus client books with an audit trail. ## What Cowork actually is (and how it's different from Chat or Projects) Claude Chat and Projects are conversations. You paste in context, ask questions, and Claude answers from the thread. Cowork works differently. It's a session tied to a folder, with plugins and connected tools, that can run several steps in a row. You don't have to spell out each one. In practice: asking "what does a good month-end close checklist look like" is Chat. Running `/close-month` and having Claude walk your QuickBooks data against that checklist, that's Cowork. For the chat-and-Projects version, six prompts and no Cowork surface, see [How to Use Claude for Bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping). Want the wider map first? Our pillars on [Claude for bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping) and [Claude for accounting](https://growthy.com/blog/claude-for-accounting) cover every way to put Claude on your books. This guide covers what Cowork adds. Cowork runs on the same engine as Claude Code, Anthropic's developer tool. Every task walks through five visible steps: Understand, Plan, Execute, Verify, Deliver. Claude asks clarifying questions first. It shows its plan in the sidebar before it starts. It works across your files and connected tools. It checks its own output. Then it hands you finished files with a summary. You can interrupt and redirect at any point. And Claude asks approval before anything risky. That five-step loop is also the fastest way to decide which mode fits a task. A goal that's still forming, or a question you want to think through in a few turns, is Chat. A clear deliverable, or a job that touches multiple files or sources, is Cowork. If the output you want is text to read, stay in Chat. If the output you want is a finished file or an action taken, hand it to Cowork. Put in bookkeeping terms: "how do I categorize a mixed personal-business charge" is a Chat question. You mainly want to reason through the answer. "Categorize every uncoded QuickBooks transaction from the last 30 days and flag anything over $500 for me" is a Cowork task. It's multi-step and multi-file. It ends with something done, not just something explained. Say a `/close-month` run turns up an unexpected number mid-task. You can redirect before it finishes. No need to wait for the whole result and start over. One more surface worth naming: Claude Code is Anthropic's tool for developers. It's not covered here. Cowork is built for a folder full of business files, not code. See [Claude Code vs Codex for bookkeeping](https://growthy.com/blog/claude-code-vs-codex-for-bookkeeping) for how Claude Code, Cowork, and the two Codex surfaces actually compare on bookkeeping work. ## Set up Cowork for bookkeeping in 3 steps ### Step 1: pick Cowork in the mode picker Open Claude on desktop and find the mode picker. It's the same spot where you'd pick a model or a chat mode. Select **Cowork**. That switches you from a single chat into a working session. ### Step 2: run /setup-cowork Type `/setup-cowork` and follow the guided setup. This step sets your working folder and Cowork's starting permissions: what it can read and touch before you approve anything else. ### Step 3: "Work in a folder" Click **Work in a folder** and point Cowork at the folder you want it in. Your bookkeeping folder. Your client folder. Wherever your files live. This is the scope Cowork works in for the rest of the session, and it's the guardrail we come back to later. Cowork only reads and acts inside the folder you set here. Platforms: Cowork runs on the desktop app (macOS and Windows) on every paid plan. A web and mobile beta started rolling out on July 7, 2026, starting with the Max plan. If you're not on desktop yet, check whether your plan has beta access first. ### Work in a folder vs. a Project: which to use A "Work in a folder" session is scoped to that one session. Close it and start a new task tomorrow, and Cowork starts from zero again. No memory of what you fixed. No saved instructions. A Project is different. It's a dedicated workspace with its own files, instructions, and memory that carries across sessions. You can build one three ways: start from scratch, import an existing Chat project, or point it at a folder you already use. The decision rule is simple. A one-off task, or a single month-end close you'll only run once this way, is fine in a plain folder session. Anything you'll come back to weekly, a client's books, a recurring close cycle, a standing tax-prep relationship, belongs in a Project. Set it up once and Cowork stops starting from zero every time you open it. ### Instructions: set standing rules once Cowork takes standing instructions at three levels, and it's worth knowing which is which before you write one. **Global instructions** live in Settings, then Cowork, then Global instructions (desktop app only), and apply to every task you run, in any folder. **Project instructions** live in the right panel of a Project and apply only inside that Project. **Organization instructions** are admin-set and apply across Chat, Cowork, and Code for the whole team. Instructions aren't the same thing as Skills. An instruction applies to every task, quietly, in the background. A Skill loads only for the specific kind of task it's built for, and it's shareable with teammates the way `/close-month` is. A concrete example of a bookkeeping global instruction: "always flag transactions over $500 for review before categorizing them." Set that once, and every Cowork session in every folder honors it without you repeating yourself. ### Connectors: the third customization layer Instructions and plugins aren't the whole picture. Connectors are the third piece, and they work differently than either one. A connector doesn't just read your QuickBooks data. It can write back: update a record, post a categorized transaction, save a file. You enable a connector from the Customize panel, and you authorize it once, not every session. That write-back capability is exactly why the guardrails section below matters so much. A read-only connector can't do damage on its own. A write-authorized one can, if nobody checks its work first. This is also where Team and Enterprise plans add a layer solo operators don't have. An admin decides which connectors the whole org can use. The admin also sets whether each one is read-only or write-authorized, before anyone on staff even opens Cowork. ## Install the Small Business plugin (this is where the bookkeeping skills live) Cowork alone gives you a working folder and tool access. The Small Business plugin adds bookkeeping skills on top. It needs the desktop app, and a Pro, Max, or Team plan. It's not open to every plan. To install: in Cowork, go to **Customize**, then **Plugins**, click **+**, and pick **Small Business**. That installs six skills. Each one covers a different piece of the money side of your business. | Skill | What it does | Tools it reads | | --- | --- | --- | | `/monday-brief` | Weekly snapshot across every connected tool. Notes which tools it read, so you can verify any number at the source. | All connected | | `/month-heads-up` | Reads the next 30 days of cash, finds the tightest week, flags what to watch before month-end. | QuickBooks | | `/close-month` | Reconciles books against the payment processor, writes the close packet for your accountant. | QuickBooks, PayPal | | `/price-check` | Margin-by-product table plus break-even pricing scenarios. Shows the numbers, you decide what to charge. | QuickBooks | | `/plan-payroll` | 30-day cash forecast, ranks overdue invoices, drafts a reminder for each. | QuickBooks, PayPal | | `/tax-prep` | Quarterly estimated taxes, or a year-end 1099 list, formatted for your accountant. | QuickBooks | Two of the six share one piece underneath: `/month-heads-up` and `/plan-payroll` both run on a `cash-flow-snapshot` block. It reads your cash balance, open invoices, bills due, and incoming settlements. Then it builds a 30, 60, and 90-day forecast, with tight weeks flagged. That block does real work behind two different skills. It's not duplicating the same logic twice. A few mechanics worth knowing before you run any of these. Some skills run others in sequence. When they do, Claude asks you for a decision between steps. A bigger job still comes down to one ask at a time, not a wall of questions up front. You can run any skill through the `/` picker, or just ask in plain English. Corrections persist, too. Tell `/invoice-chase` you chase overdue invoices at 15 days instead of 30. That change is saved for the next run, not just this one. These six skills map directly to the workflows below, plus one QuickBooks-connector report pull that doesn't need a skill at all. Not every plan sees the Small Business option. If Customize, then Plugins, doesn't show it as a choice, your plan doesn't include it yet. Check your current plan against Pro, Max, or Team before you troubleshoot anything further. ## Connect QuickBooks (the short version) This is the short version of the Claude Cowork QuickBooks setup. For the full walkthrough, connector setup, OAuth, and what Claude can and can't read, see [Connect QuickBooks Online to Claude](https://growthy.com/blog/connect-quickbooks-online-to-claude). Short version: go to **Connectors**, pick **QuickBooks**, and click **Connect**. Sign in through Intuit. One thing worth saying plainly, not burying in a footnote: the QuickBooks connector is US customers only. You don't need an active QuickBooks Online plan to use it. You can supply the data yourself. Once connected, Claude can pull reports, compare your numbers to your industry, import transactions, and create invoices, estimates, and payment links. Intuit says your QuickBooks data isn't used to train Claude. One more plain statement: there's no official Xero connector in the current Small Business plugin table. If you run Xero instead of QuickBooks, the plugin's money skills won't reach your books the same way today. More on that in the FAQ below. This one connection feeds most of what's below. The industry-benchmark comparison in the reports workflow, the reconciliation in `/close-month`, the cash view in `/plan-payroll`, all of it reads through this same QuickBooks connector. Get this step right once, and the rest of the setup below builds on top of it. ## 10+ Cowork workflows you can run today Each of these Claude Cowork accounting workflows comes with a prompt you can copy and paste. Each one also comes with what Claude does, and what you should check before you act on it. ### Monday morning financial brief (/monday-brief) > **Prompt:** Run `/monday-brief`, or ask in plain words: "Give me this week's brief: cash position, notable transactions, and anything that needs my attention." **What Claude does:** pulls current data through the QuickBooks connector and drafts a summary. **What you check:** any number that looks off before you act on it. Claude reads what your account can read. It doesn't make the judgment call for you. ### Month-end close checklist (/close-month) > **Prompt:** Run `/close-month` for the current period. Or, plain words: "Close out this month and tell me what needs my attention." **What Claude does:** checks QuickBooks transactions against your processor settlements by matching amount and date. It flags mismatches, uncategorized transactions, duplicates, and missing receipts. You clear each flag in plain words, something like "the Coastline charge is packaging, cost of goods." Claude then hands you a reconciliation spreadsheet plus a one-page close packet for your accountant. Here's what that flag list looks like on an illustrative month. Say `/close-month` turns up four items. A PayPal settlement hasn't matched to any QuickBooks deposit yet, flagged as a mismatch until the timing catches up. A $340 charge posted twice: a straightforward duplicate. A $58 charge from a new vendor: uncategorized. And a $210 hotel charge with no receipt attached. You clear each one the way you'd explain it to a person. "The PayPal settlement is still in transit, give it a day." "The duplicate is a bank sync glitch, delete the second one." "The $58 charge is software, categorize it as subscriptions." "The hotel was a client trip, I'll upload the receipt tonight." Claude updates the reconciliation spreadsheet as each flag clears, then builds the close packet once the list is empty. The dollar amounts here are illustrative. Your own flags will carry your own numbers. The pattern holds regardless of the count. However many flags a real month turns up, you're clearing each one in plain English, not hunting through a spreadsheet line by line. For the deeper walkthrough, with scheduling, the difficult 20%, and what a full close needs beyond reconciliation, see [the full month-end close with Claude Cowork guide](https://growthy.com/blog/claude-cowork-month-end-close). **What you check:** every category it picks, and any account that doesn't match cleanly. This is a checklist helper, not an auto-close. ### Payroll planning (/plan-payroll) > **Prompt:** Run `/plan-payroll` for the next pay period. Or, plain words: "Walk me through payroll and flag anything I should know first." **What Claude does:** builds a 30-day cash view from your bank balance, open invoices, and bills due. It marks the low point and your payroll dates, then drafts a plan. **What you check:** all of it, before it becomes a payment. Payroll is exactly the kind of action Cowork asks you to approve first. More on that in the guardrails section below. ### Invoice chasing (/invoice-chase) > **Prompt:** Run `/invoice-chase` for your overdue invoices, or ask in plain words: "Chase down everyone who owes me money and draft the follow-ups." **What Claude does:** ranks late customers and drafts follow-up notes matched to each one's payment history. **What you check:** tone and accuracy on every draft before it sends. Sending needs your OK here. It's not automatic. ### QuickBooks reports and benchmarking (connector, no skill needed) > **Prompt:** Ask in plain words: "Pull my [specific report] and show me how it compares to industry numbers for my business type." A concrete version: "Pull my P&L for this quarter and show me how my margins compare to other businesses in my industry." **What Claude does:** pulls the report through the QuickBooks connector and adds the comparison. No Small Business plugin skill is needed for this one. **What you check:** any comparison against your own business. Generic industry numbers don't always fit your model. ### Tightest-week radar (/month-heads-up) > **Prompt:** Run `/month-heads-up`, or ask in plain words: "What does the next 30 days of cash look like, and which week should I watch closest?" **What Claude does:** reads the next 30 days of cash, flags the tightest week, and notes what to watch before month-end. **What you check:** the assumptions behind any invoice or bill it's counting as certain. A forecast is only as good as what's actually going to land on time. ### Margin and pricing check (/price-check) > **Prompt:** Run `/price-check` for [product or service line], or ask in plain words: "Show me my margins by product and where my break-even pricing sits." **What Claude does:** builds a margin-by-product table and break-even pricing scenarios from your QuickBooks data. **What you check:** the underlying cost assumptions. This shows you the numbers. It doesn't set your price for you. ### Quarterly taxes and 1099 prep (/tax-prep) > **Prompt:** Run `/tax-prep` for [quarterly estimate / year-end 1099 list]. **What Claude does:** calculates quarterly estimated taxes, or builds a year-end 1099 list formatted for your accountant. The 1099-NEC filing threshold for tax year 2026 is $2,000 under OBBBA. Verify any contractor count Cowork produces against that current threshold before you rely on it. **What you check:** every contractor total against your own records before you hand the list off. This is prep, not filing. ### Document triage with a Context.md briefing file > **Prompt:** Sort everything in this folder into subfolders by document type, then write a Context.md file summarizing what's here: filing status or entity, income sources, key numbers, and anything missing. Or, shorter: "Sort this folder by document type and give me a one-page summary of what's here and what's missing." **What Claude does:** sorts a folder of statements, invoices, and receipts into subfolders, and drafts a one-page Context.md briefing plus a list of what's flagged as missing. This pattern comes from the Cowork user community. It's not an official Anthropic skill. It's worth trying anyway, because it turns a folder dump into something you can actually read before a meeting. **What you check:** the missing-documents list first, then skim Context.md for anything mis-filed before you rely on it. Community reports put the setup-time savings at six to eight hours. That's walking into a close or a tax-prep meeting with a one-page brief instead of a folder dump. Your results will vary with how messy the folder started. ### Receipts and statement folder triage > **Prompt:** Go through this folder of receipts and bank statements, match receipts to transactions where you can, and flag anything without a match. Or, narrower: "Just check last month's receipts against my QuickBooks transactions and tell me what's missing." **What Claude does:** cross-references receipts against statement lines, and flags both orphaned receipts and orphaned transactions. **What you check:** every flagged item. This catches candidates. It doesn't decide what's deductible. ### Categorize a folder of bank statements (bulk first-pass books) > **Prompt:** Categorize every transaction in these bank statements against the QuickBooks default chart of accounts. Build a balance sheet and P&L, and flag any transaction you weren't sure how to classify. **What Claude does:** reads through a folder of PDF bank statements, including scanned or image-based ones. It categorizes every transaction against a standard chart of accounts, the QuickBooks default in this case. It builds pattern rules on the fly as it goes. Say it sees three coffee-shop charges from the same vendor tagged as meals. It applies that same rule to the fourth and fifth without asking again. Recurring vendors get classified automatically. Anything it's not confident about gets flagged for a second pass instead of guessed at silently. The output is a categorized transaction spreadsheet plus a balance sheet and a P&L built from it. For the full first-pass workflow, with the chart of accounts, worked flag examples, and reconciling back to your bank, see [the guide to doing your books from bank statements with Claude](https://growthy.com/blog/claude-bank-statement-bookkeeping). **What you check:** the classifications, since Cowork may categorize a charge differently than you would. And every flagged transaction. Transfers between your own accounts are one common reason. Credit-card payments and opening balances with no statement behind them are two more. Those are the usual reasons something lands on the flagged list instead of the confident pile. This is a fast first-pass draft you review, not a finished set of books. Treat the output the way you'd treat a new hire's first categorization pass. Useful, mostly right, and worth a real read before you call it done. These eleven cover the everyday surface. More skills ship inside the Small Business plugin over time, and the same prompt-and-review pattern applies to whatever's added next. Notice the shape that repeats across all ten. A prompt you can copy. A short description of what Claude actually does with your data. A specific thing to check before you trust the output. That shape holds whether the skill is `/monday-brief` or something Anthropic ships next month. Learn the pattern once, and a new skill in the plugin isn't a new thing to figure out. It's the same review habit, pointed at a new task. ## The Finance plugin (a separate install, built for firms) Small Business isn't the only pre-built plugin Anthropic ships for Cowork. There's a separate **Finance** plugin. Anthropic also ships role-based plugins for sales, legal, and marketing. The marketplace describes Finance as covering "journal entries and reconciliation to financial statements and variance analysis." That's a broader, firm-oriented toolkit than Small Business's owner-facing money skills. It's built for people doing the accounting, not just running a business. Installing it works the same way, but there's an extra step worth knowing: **Customize**, then **Plugins**, select the plugin, then **Customize** again. Running Customize on the Finance plugin sets off a short interview. Claude looks through your connected tools for signs of which systems your team actually uses. It asks you a handful of confirming questions. Then it rewrites the plugin's skills to reference your specific tools, and adds the matching connectors, before packaging it for install. You're not stuck with generic instructions written for nobody's stack in particular. Org admins can manage plugins centrally for a whole team, which matters more here than it does for Small Business. A firm standardizing on the Finance plugin wants every staff member's install pointed at the same tools. Not five different customize sessions drifting apart from each other. Where does that leave the choice? Solo operators and small businesses running their own books will likely stay on Small Business: weekly briefs, month-end close, payroll, pricing, tax prep. Bookkeeping and accounting firms doing journal entries and variance work as a regular part of the job are a different story. That's the audience the Finance plugin is actually built for. ## Automate it: scheduled tasks and Routines You don't have to be at your computer for the workflows above to run. Type `/schedule` inside any Cowork task, or open **Scheduled** in the left sidebar to view, create, or manage scheduled tasks. Scheduled tasks run remotely: no computer awake, no desktop app open required. That's a real distinction from a session you're actively watching. Once it's scheduled, it runs on Anthropic's side and waits for you to check the result. A sample bookkeeping schedule, built the same way for every item. Run the skill once, type `/schedule` inside that task, then set how often it repeats. - **Monday mornings, weekly:**`/monday-brief`, scheduled to repeat every Monday, waiting in your inbox when you sit down. - **Mid-month, monthly:**`/month-heads-up`, scheduled around the 15th, so the tightest week of the month shows up before it arrives, not after. - **The 1st of the month:**`/close-month` for the period that just closed, scheduled to repeat monthly, so the close packet is ready early instead of assembled in a scramble. - **Quarterly, ahead of each estimated-tax deadline:**`/tax-prep`, scheduled to repeat each quarter, giving you a buffer to review before you file. That's four scheduled tasks running without you in the room. Each one does the reading, matching, and drafting work the same way an interactive session would. The mechanics below cover what happens with anything that needs your sign-off. None of that requires you to remember to open Claude that day. It requires setting the schedule once. Say a scheduled run needs something it doesn't have access to: a connector that needs re-authorizing, or a folder it can't reach. It stops there and waits. It doesn't guess, and it doesn't work around a missing piece on its own. You'll see the gap the next time you check in, not a silently wrong result. As of this writing, Cowork's usage limits are doubled through August 5, 2026. Reading this later? Check current limits before you count on the same headroom. Scheduled tasks still count against your usage the same as a session you run yourself. The doubled window is worth using while it lasts, especially if you're setting up a recurring schedule for the first time. One more mechanic worth knowing: a scheduled task doesn't wait for you to notice it ran. It finishes and drops its output where you can find it. If it hit anything that needs your sign-off, that approval request is still waiting the next time you open Claude. Nothing sends, posts, or pays just because a schedule fired unattended. The same approval gate from the guardrails section below applies to every scheduled run. ## Guardrails: what Cowork asks before it acts Six things worth knowing before you hand Cowork real work. Some are the plain rules you'll use every day. Some are the setup underneath them. **You approve before anything sends, posts, or pays.** That's true across every workflow above. Drafts wait for your OK before a reminder goes out, a transaction posts, or a payment moves. Run `/invoice-chase` and Claude writes ten follow-up notes. It doesn't send any of them until you say go. Run `/plan-payroll` and Claude drafts the run. It doesn't move a dollar until you approve it, line by line if you want to. **Where sessions actually run.** This is the one most people skip past, and it's worth slowing down for. A Cowork session runs remotely, in an isolated, temporary environment created for that one session, on Anthropic's servers (beta). It can't reach your home or company network, and it's removed when the session ends. Claude reaches your local files, browser, and apps only through the Claude Desktop app, and only for folders you've connected. If the desktop app is offline, the session can't reach your computer at all. That's a materially different model from "Claude runs on my laptop," and it's the model worth knowing before you connect a client's books. **Read tools vs. write tools.** Cowork's tools split into two classes. Read tools, reading an inbox, taking a screenshot, are lower-risk. Write tools, creating a calendar invite, deleting a file, running a command, clicking something, carry more risk and are treated with more caution. Human oversight is recommended in high-stakes scenarios. For bookkeeping, that splits cleanly: reading your QuickBooks ledger to draft `/monday-brief` is a read action, low-stakes on its own. Posting a categorized transaction, or sending a payment reminder, is a write action. That's exactly where the approval gate in the first guardrail does its job. **No training on your business data.** Anthropic doesn't train on your business data. QuickBooks data isn't used to train Claude either, per Intuit. That's a specific, checkable claim, not a vague reassurance. It's worth confirming against the source, not taking any guide's word for it, including this one. Weighing data-security questions more broadly before you connect client books? [Our security guide](https://growthy.com/blog/ai-bookkeeping-data-security) covers what to check. **Prompt-injection review.** An action-review system scans for prompt injection before Claude executes a write action. That's one more layer, not a substitute for reading what you're approving. A bad line hidden in a document you feed Cowork is exactly the kind of thing this check exists to catch. But the approval gate above is still your last line of defense. **Firm-level controls, if you're reading this as a firm.** A few notes if you're evaluating Cowork for a bookkeeping or accounting firm rather than your own books. Cowork activity isn't captured in Anthropic's Compliance API yet, the system built for compliance audit logs. If compliance logging is a requirement today, that gap matters. Team and Enterprise owners have a workaround. They can stream Cowork events to their own monitoring tool, called a SIEM, using OpenTelemetry, a standard method apps use to send activity logs. That gives an audit-adjacent record in the meantime. Team and Enterprise owners can also turn off web search for Cowork and Chat in Organization settings, under Capabilities. Admins control which connectors are open org-wide, and whether each one is read-only or write-authorized. Computer use, one more capability that touches this same trust question, gets its own section next. It's a separate, narrower feature with its own safeguards, worth knowing on its own terms rather than folding into the guardrails above. Taken together, these six guardrails are the reason the worked `/close-month` example above reads the way it does. Claude surfaces every flag and drafts every clearing note. Nothing about a client's books changes without you reading and answering each one. ## Computer use in Cowork: when it helps, when to skip it Computer use is a separate, narrower capability inside Cowork, worth knowing on its own terms. Status, plainly: research preview, available on Pro and Max plans only, desktop macOS and Windows, not Team or Enterprise. Before Cowork resorts to clicking around your screen, it works through a priority order. **Connectors come first**, fastest and most reliable, because they talk to an app's API directly instead of guessing at pixels. **The browser comes second**, through Claude in Chrome, when a connector doesn't exist for the tool you need. **Screen interaction is the last resort**, used when neither of the first two paths reaches what you're asking for. Computer use can technically click anything on your screen, so the safeguards match that risk. Claude asks a permission prompt before it touches a new application. Investment, trading, and crypto apps are blocked by default. You can extend a user-managed blocklist yourself. And the same prompt-injection review from the guardrails section above still runs. Anthropic's own guidance is direct: don't grant access to banking, healthcare, or government apps. Start with simple tasks. Keep prompts specific. Here's the practical framing for bookkeeping. Computer use isn't needed for any of the ten workflows above. They all run through connectors, the fastest and most reliable path. It starts to matter when Cowork hits a tool with no connector path yet. Think a niche invoicing app, or a vendor portal with no API. That's when you'd need Claude to work through the screen instead. For most bookkeeping and accounting work today, that's the exception, not the rule. Say a vendor's payment portal has no API and no connector, and you need Cowork to pull last month's activity from it. That's a real computer-use case. It's also a good moment to check the plan gate first: Pro or Max only, desktop only. If you're on Team, Enterprise, web, or mobile, computer use isn't available yet, whatever the task. ## Where Cowork stops (and what that means for client books) Cowork is genuinely good at the ten-plus workflows above. One person, working through one folder, getting real bookkeeping done without spelling out every click. It's also, by design, one folder, one session at a time. It doesn't hold state across many clients. It isn't a system of record. There's no built-in audit trail showing who approved what, when, across a roster of client books. Every session starts fresh, without memory of last week's fixes, unless you set up a Project the way the setup section above describes. What you taught it Monday doesn't carry to Friday on its own, in a bare folder session. Managing books for more than yourself, or more than a couple of clients? [See how AI bookkeeping tools handle multiple clients at once](https://growthy.com/blog/multi-client-ai-bookkeeping) before you decide Cowork alone covers it. That's not a knock on Cowork. It's doing what it's built for. It's also why Growthy exists as a separate layer. Growthy connects straight to QuickBooks Online. It pattern-learns from your fixes per client. It reviews every transaction with you before it posts, the same approve-first posture Cowork uses. It's just built to run many client books at once, 10 to 30-plus, with an audit trail. Growthy is 85% accurate on first import. You review the rest. And if your work runs into tax season, the same operator stack covers workpapers through our sister product, [TracePrep for tax workpaper automation](https://traceprep.com/). > **Get started with Growthy.** [Get started](/signup?utm_content=claude-cowork-for-accounting-bookkeeping) and see what it catches on your first import. ## Give Cowork a ledger it remembers: the Beancount trick Here's the honest problem underneath everything above. A bare Cowork session has no database. The categorized transactions from a workflow like the bulk bank-statement one above live in a one-off spreadsheet, with nothing persistent behind them. Close the session, and the structured record goes with it. That's unless you built a Project to hold it, or you're deliberate about saving the output somewhere. One technique from the Cowork user community closes part of that gap for free. Ask Claude to keep the books in Beancount instead of a spreadsheet. [Beancount](https://github.com/beancount/beancount) is an open-source, plain-text double-entry accounting system written in Python, with roughly 5,800 stars on its GitHub repo as of this writing. Every transaction and every account lives in a plain text ledger file you own. That file is git-friendly and portable. Hand it to a colleague, or drop it in a shared folder. Or open a fresh Claude session pointed at the same file and pick up exactly where you left off. It's closer to how a QuickBooks Desktop file works than to a cloud subscription. > **Prompt:** Use Beancount to keep the books for these statements. Use the QuickBooks default chart of accounts and stick to the Beancount format so the ledger stays valid. To see the numbers, [Fava](https://github.com/beancount/fava) is Beancount's open-source web interface. Point it at your ledger file and it renders a trial balance, a balance sheet, and a P&L. Or skip Fava and have Claude build a small custom reporting view on top of the same file, if you want something more tailored. For the full setup, the syntax primer, and the git workflow, see [the guide to giving Claude a permanent Beancount ledger](https://growthy.com/blog/claude-beancount-permanent-ledger). Here's the honest limit, and it's the same one this guide keeps coming back to. The Beancount trick is a clever, free way to give your own books a persistent ledger instead of a one-off spreadsheet. The same goes for a couple of simple clients' books. But you're hand-wrangling text files. There's no pattern memory learning across a roster of 30 client books the way there is with a purpose-built tool. And there's no built-in audit trail of who approved which change, and when. That's the exact line where a DIY text-file ledger stops and a productized book of record begins. It's the same review-and-approve territory Growthy covers above, just built to carry the volume a hand-maintained ledger can't. ## A bookkeeper's rollout plan: solo operator to firm Everything above is real and usable today. The question most readers actually have is where to start, and where the natural next step is once Cowork earns your trust. Three stages, roughly in order. **Stage one: solo, your own books.** Cowork on desktop is enough to start. "Work in a folder" gets you through your first close without any setup overhead. Add the Small Business plugin and the QuickBooks connector. That gives you five or six workflows covering most of what a solo operator needs weekly. Skip Projects and Instructions at this stage. They're overhead you don't need yet, not a requirement to get started. Run the same folder for a few weeks before you add anything else. If you notice yourself explaining the same context to Claude every Monday, that's your signal to move to stage two, not before. **Stage two: a handful of clients, still one person.** This is the stage where the setup section above starts to matter most, especially the Projects-vs-folder decision. This is where Projects earn their keep. Set up one Project per client, not one shared folder for everyone, so memory and instructions don't bleed between clients. A standing rule that's right for one client's chart of accounts is wrong for another's. A Project instruction like "this client's contractor payments always route through Bill.com, never a manual check" belongs at the Project level, not Global, because the next client on your roster probably pays contractors a different way. Use Global Instructions sparingly, since they apply to every task in every folder. Reach for Project instructions instead when a rule is specific to one client's books. Worth naming honestly at this stage: Cowork's one-session-at-a-time design means you're still the one holding continuity across clients. Nothing about Projects removes that. You're the connective tissue between five separate Cowork relationships, not Cowork itself. **Stage three: a firm, multiple staff.** This is where the Team plan's admin controls start to matter. Connector governance. Event streaming to a monitoring tool for an audit-adjacent record, the option covered in the guardrails section above. Org-wide instructions that keep every staff member's Cowork sessions consistent. Evaluate the Finance plugin if journal entries and variance work are a regular part of the job, not just month-end. And this is also the honest point. The answer to "who runs 10 to 30-plus client books with an audit trail" stops being Cowork alone. That's the natural line. It's not a sales pitch tacked onto the end of a feature list. The Growthy bridge above already made the case for what that looks like. Wherever you're starting, the setup section above works the same way at every stage. What changes is how much structure you build around it. ## Troubleshooting and common gotchas A few things that trip people up, worth knowing before you hit them rather than after. **QuickBooks connector is US-only.** Non-US readers hit a wall here immediately. It doesn't extend to Xero through an official connector yet either. So if you're outside the US, or you run Xero, expect a gap. The Small Business plugin's QuickBooks-dependent skills won't reach your books the way this guide describes. **Small Business and Finance plugins both need the desktop app.** If you're on the web or mobile beta, don't expect plugin parity yet. The beta covers Chat and Cowork sessions themselves; plugin installs are a desktop-app feature for now. **Plan gating is real, and it's not the same gate for every feature.** Pro, Max, or Team opens up the Small Business plugin. Pro or Max specifically, not Team or Enterprise, opens up computer use. A Free plan or an unsupported tier blocks both. The error you'll see is usually just the option not appearing in Customize, under Plugins. It's rarely an explicit denial. **A bare "Work in a folder" session has no memory.** If last month's corrections aren't showing up this month, that's usually not a bug. You're probably running a fresh folder session instead of a Project, and a fresh session starts exactly where the name implies: fresh. **The desktop app needs to be open and online for an interactive session to reach local files.** A scheduled task is different, as the automate section above covers. An interactive session you're actively using, one pointed at local files and connected folders, needs the desktop app running to reach them. If Cowork says it can't see a file you know is there, check whether the desktop app is actually open first. **A Chat conversation and a Cowork session aren't the same memory.** They're both under one home tab, and it's easy to assume context carries between them. It doesn't, unless you import a Chat project into a Cowork Project on purpose. If Cowork seems to have no idea what you discussed in Chat yesterday, that's expected, not a glitch. **A skill correction that "didn't stick" is usually a Project mismatch, not a bug.** Corrections persist for the next run of a skill, but that memory lives inside the Project you made the correction in. Say `/invoice-chase` reverted to chasing at 30 days instead of the 15 you taught it. Check whether you're running it from the same Project. A different folder, or a fresh session, starts over. ## Frequently asked questions Once you know how to use Claude Cowork for daily bookkeeping, these are the questions that come up next. ### What is Claude Cowork, and how is it different from Claude Chat or Projects? Cowork is a working-session mode where Claude runs multi-step tasks on its own. It works inside a folder you choose, with tool access, and can finish those tasks without you spelling out every step. Chat and Projects are conversation threads where you paste in context and ask questions. Cowork reached general availability on all paid plans in April 2026, after a January 2026 research preview. ### Which Claude plans include Cowork? Every paid Claude plan includes Cowork. Pro runs $20 a month. Max runs $100 or $200 a month. Team runs $25 a seat on Standard, or $125 a seat on Premium. The Small Business plugin narrows that further to Pro, Max, or Team. It also needs the desktop app. ### Is Claude Cowork available on Mac, Windows, and web or mobile? Yes on desktop, macOS and Windows, on every paid plan. Web and mobile are in beta, announced July 7, 2026, rolling out step by step, starting with Max. Not on Max? Check your account before you assume web or mobile access is live yet. ### Is it safe to connect QuickBooks or client data to Cowork? Anthropic says it doesn't train on your business data. Intuit's own help article confirms QuickBooks data isn't used to train Claude either. Cowork only reads what your connected accounts can already read. It runs each session in an isolated remote environment. It only acts inside the folder you gave it. For more on data-security questions around AI bookkeeping tools in general, see [our security guide](https://growthy.com/blog/ai-bookkeeping-data-security). ### Can Cowork actually send invoices, post transactions, or pay bills in QuickBooks? It can draft plenty: reminders, categories, payment plans, invoices. But it asks for your OK before anything actually sends, posts, or pays. You don't need an active QuickBooks Online subscription to connect the tool in the first place, either. You can supply the data yourself if you're not on a QBO plan. ### What's the Small Business plugin, and do I have to install it separately from Cowork? Yes, it's a separate install. Cowork gives you the working-session mode. The Small Business plugin adds bookkeeping skills, six of them as of this writing, on top. Install it from Cowork's Customize menu, under Plugins. ### Can Cowork run bookkeeping tasks on a schedule without me at my computer? Yes. Scheduled tasks run with no device online. Type `/schedule` inside a task, or open Scheduled in the sidebar. A weekly `/monday-brief` or a recurring close checklist can run without you sitting in front of Claude at all. ### How does Cowork compare to Growthy for actually running client books day to day? Cowork is a workflow tool: one folder, one session at a time. Growthy is built to run many client books at once. It connects directly to QuickBooks Online, pattern-learns per client, and runs 10 to 30-plus client books with an audit trail Cowork doesn't have. Both share the same review-and-approve posture. Growthy just carries more volume than Cowork was built for. Think of it this way: Cowork is a very capable assistant for your own desk. Growthy is the system underneath a whole roster of desks. ### What's the difference between the Small Business plugin and the Finance plugin? Small Business is owner-facing: weekly briefs, month-end close, payroll planning, pricing, tax prep. Finance is a separate, broader plugin built for firms, covering journal entries and reconciliation through financial statements and variance analysis. Both install from the same Customize menu. Finance also runs a short customize session first, rewriting its skills to your team's specific tools before the install finishes. Most solo operators and small businesses stay on Small Business. Bookkeeping and accounting firms doing journal entries and variance work regularly are the Finance plugin's fit. ### Does Cowork work with Xero, or only QuickBooks? There's no official Xero connector in the current Small Business plugin table. The plugin's money skills are built around QuickBooks and, for a couple of skills, PayPal. If Xero is your system, the workflows in this guide won't reach your books the way they reach a QuickBooks connection today. You can still point Cowork at a folder of Xero exports for general document work. You just won't get the six connected skills running against live Xero data the way this guide describes them. That gap is worth checking again before you commit a Xero-based practice to Cowork as its main bookkeeping tool. ### Does Cowork remember what I taught it last month? Only if you set it up to. A bare "Work in a folder" session has no memory once it ends. A Project is different: it carries files, instructions, and memory across sessions. You can build a Project three ways: start from scratch, import an existing Chat project, or point it at a folder you already use. Say you tell `/invoice-chase` to chase at 15 days instead of 30 inside a Project. That correction is saved. It applies the next time you run the skill inside that same Project. ### What happens to a scheduled task if my laptop is closed? Nothing stops. The scheduled run doesn't need your laptop, as the FAQ above covers. Your laptop can be closed, asleep, or off entirely, and the task still runs and waits for you to check the result. ### Can Cowork create journal entries? Not through the Small Business plugin. Journal entries and reconciliation are Finance plugin territory, described in the marketplace as covering journal entries and reconciliation through financial statements and variance analysis. If journal entries are a regular part of your work, that's the plugin to look at, not Small Business. ### Does Cowork keep a permanent ledger, or is Beancount required? Not on its own. A bare Cowork session has no database behind it, so a categorization run's output normally lives in a one-off spreadsheet. Beancount is a free, optional workaround. It's a plain-text ledger file Claude can write to and read back from, session to session. It's popular in the Cowork user community for exactly this reason. It's not built into Cowork, and it's not a requirement. It's one way to get a persistent record without paying for anything, if you're comfortable maintaining a text file yourself. ### What admin controls does a Team or Enterprise account get? Team and Enterprise owners get connector governance: which connectors are available, and whether each one is read-only or write-authorized. That's a per-connector setting, not one org-wide switch. QuickBooks read access and a payment connector's write access can be governed differently under the same admin. They can turn off web search for Cowork and Chat in Organization settings. They can set org-wide instructions that apply across the whole team. And they can stream Cowork activity to their own monitoring tool for an audit-adjacent record, the option covered in the guardrails section above. Formal compliance logging inside Cowork itself isn't there yet. That's how to use Claude Cowork for your own books, whether you're a solo operator or a small team. The setup. Six money skills across two plugins. Projects and Instructions for work you come back to weekly. The security behind every session. Computer use as a narrower add-on. A rollout path from solo to firm. And a schedule you can automate once you trust it. It's not a bookkeeping system on its own. It was never built to be. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* ### [Do Your Books From Bank Statements With Claude](https://growthy.com/blog/claude-bank-statement-bookkeeping): You've got a folder of bank statements and no bookkeeping software. Claude can turn that into a first draft of your books. Not finished books. A first pass you read and fix, the same way you'd check a new hire's work. You've got a folder of bank statements and no bookkeeping software. Claude can turn that into a first draft of your books. Not finished books. A first pass you read and fix, the same way you'd check a new hire's work. > **Can Claude do your books straight from bank statements?** > > Yes, for a first pass. Point Claude at a folder of PDF bank statements, including scanned or image ones. It reads every page, categorizes each transaction against a standard chart of accounts like the QuickBooks default, and builds pattern rules as it goes. It flags anything it's unsure about. You get back three files: a categorized transaction spreadsheet, a balance sheet, and a P&L. This is a fast first-pass draft, not finished books. You review it before you trust it, starting with the flagged items. ## Key Takeaways - **One folder in, three files out:** drop your PDF statements in, and Claude returns a categorized transaction spreadsheet, a balance sheet, and a P&L. - **It sorts against a standard chart of accounts:** the QuickBooks default works out of the box, or hand it your own. - **Pattern rules build on the fly:** it sees 3 coffee charges from one vendor tagged as meals, and tags the 4th and 5th the same way. - **The flagged pile is the point:** transfers, credit-card payments, and opening balances get flagged instead of guessed. - **The bank balance is your check:** the cash on the built balance sheet should match your last statement's ending balance. If it doesn't, a line is missing or double-counted. - **It's a first pass, not a filing:** read every category and clear every flag before you call the books done. - **Good for your own books, not a 30-client roster:** one folder at a time, with no memory that carries your fixes forward. ## What doing your books from bank statements means Most books start from two things. Bank statements and card statements. Every dollar in and out is on them. So if you want Claude to do your books, statements are the natural place to start. Claude reads the statements directly. You don't need a live accounting connection for a first draft. Just the files. That matters if you're behind on the year and staring at twelve PDFs from online banking. Here's the honest frame. This is a draft. A good one, usually. But a draft. You read it and fix it, the same way you'd check anyone's first attempt. Want the wider setup first? The [full Claude Cowork for bookkeeping walkthrough](https://growthy.com/blog/claude-cowork-for-accounting-bookkeeping) covers the whole workflow. This guide zooms in on one job. Books from statements. For the plain-language version of what the tool does day to day, the [overview of using Claude for bookkeeping](https://growthy.com/blog/claude-for-bookkeeping) is a good primer. ### Why statements are a good starting point Statements are the raw record. Nothing's been categorized yet, so nothing's been miscategorized yet either. You're starting from the source, not from someone else's guesses. Think about what a bank statement already is. A dated list of every dollar in and out, with a running balance and a stated ending figure. That's most of a set of books, minus the labels. The work Claude does is put a label on each line and add the two summary statements. The raw truth is already sitting in the file. Claude reads scanned and image-based PDFs too. Old paper statements you scanned last spring still work. So do fresh exports from online banking. You bring what you have, in whatever shape it's in. ## Set up a folder for the job The setup is small. You point Claude at a working folder. That folder is the whole job. Your statements go in. Your finished files come out. Pick your target chart of accounts before you start. The QuickBooks default is a safe, common choice. It's familiar, and most accountants read it without asking questions. You can hand Claude your own chart instead if you have one. One thing worth saying plainly. You don't need the QuickBooks connector for this. Claude reads the statement files directly, so a first pass works without connecting anything. If you do want live data later, the [step to connect QuickBooks to Claude](https://growthy.com/blog/connect-quickbooks-online-to-claude) covers it. ### Your chart of accounts is the target A chart of accounts is just the list of buckets. Rent, software, meals, income, and so on. Claude sorts every transaction into one of them. Give it a standard chart, and the output reads like real books, not a pile of guesses. Why does a standard chart matter so much? Because the labels are what turn a bank feed into accounting. A row that says "$1,200, Rent" is bookkeeping. A row that says "$1,200, out" is just a bank line. The chart is the set of labels you're sorting into. Pick a messy one and the output is messy. Pick a clean, standard one and the output looks like books an accountant would recognize. ### The six buckets a standard chart uses The QuickBooks default chart groups everything into six kinds of account. Knowing the six helps you read the output and catch a bad sort fast. - **Income.** Money you earn. Sales, service fees, anything a customer pays you. - **Cost of goods sold, or COGS.** The direct cost of what you sell. Materials, inventory, the labor that goes straight into the product. - **Expenses.** The running costs of the business. Rent, software, meals, utilities, insurance. Everything it takes to keep the doors open. - **Assets.** What the business owns. Bank accounts, equipment, money customers still owe you. - **Liabilities.** What the business owes. Credit-card balances, loans, unpaid bills. - **Equity.** The owner's stake. Money you put in, money you draw out, profit left in the business. Two math rules fall out of those six. Income minus COGS minus expenses gives you profit. That's the P&L. Assets equal liabilities plus equity. That's the balance sheet. Claude builds both from the same sorted transactions, so a clean sort feeds two clean statements. You don't have to memorize this. But when you read the draft, a quick gut check helps. Is a loan payment sitting in expenses when it should touch a liability? Is an owner deposit tagged as income when it's really equity? Those are the sorts worth a second look. If you want the wider frame beyond the books themselves, the [Claude for accounting](https://growthy.com/blog/claude-for-accounting) overview covers the reports that sit on top. ## What to drop in the folder Now the easy part. Drop your statements in. - PDF bank statements, one account or several. - Card statements too. - Scanned or image-based PDFs. Claude reads those. No cleanup first. You don't have to rename files or sort by month. A year of raw exports is fine. Messy is expected. ### Scanned statements, and where they break Claude reads scanned statements and image-based PDFs, not just clean digital exports. So the stack of paper statements you scanned last spring works the same as a fresh download. You don't convert anything first. The honest limit is scan quality. A crisp scan reads fine. A crooked phone photo of a crumpled page reads worse. A fax-quality copy where the numbers blur is where it starts to struggle. Handwriting is the hardest case of all. If you scribbled a note in the margin, don't count on Claude reading it right. When a scan is bad, the fix is a better scan, not a better prompt. Lay the page flat, good light, straight angle, and re-scan. A clean image reads clean. This is worth knowing up front so you don't blame the sort when the real problem is a fuzzy input. ## The prompt that categorizes everything Here's the prompt. Copy it, point Claude at your folder, and send it. > **Prompt:** Categorize every transaction in these bank statements against the QuickBooks default chart of accounts. Build a balance sheet and a P&L. Flag any transaction you weren't sure how to classify. What happens next. Claude reads every statement, page by page. It sorts each transaction into an account. Then it builds the two financial statements from what it sorted. You watch it work, and you can stop it any time to redirect. That's the core of getting Claude to do your books. One prompt, one folder, real output. ## How Claude builds pattern rules on the fly This is the part that saves you time. Claude doesn't treat every line as a stranger. Say it sees three charges from the same coffee shop, all tagged as meals. It notices the pattern. So it tags the fourth and fifth charges the same way, without asking you again. Recurring vendors get sorted automatically once the pattern is clear. That's pattern learning. Not a black box. Just Claude spotting a repeat and applying it. And when it isn't sure? It doesn't guess and hide it. It flags the transaction for a second look. A silent wrong guess is the one you can't catch later. A flag is one you can. ## What you get back Three files. That's the output. - **A categorized transaction spreadsheet:** every line, with the account Claude picked. - **A balance sheet:** built from the categorized data. - **A P&L:** built from the same data. The spreadsheet is where you'll spend your review time. It's the working document. The balance sheet and P&L follow from it, so fix the spreadsheet and the statements update. ## Running several accounts and a full year at once Real books rarely live in one account. You've got checking. Maybe a savings. One or two cards. And a year isn't one statement. It's twelve. The good news is you can drop the whole pile in one folder and let Claude read across it. Order doesn't matter. Files named by month, files dumped at random, both work. The date on each transaction tells Claude where the line belongs. It reads the full set together, not one file at a time. The thing to watch with several accounts is transfers between them. Move $2,000 from checking to savings and it shows up twice, once as a debit on checking and once as a matching credit on savings. Claude matches the two sides by amount and date and flags the pair. You'll clear that kind of flag in the worked examples below. For a full year, the risk is a missing month. If March is gone, the running balance won't line up. Claude can't invent a statement it doesn't have. It'll flag the jump instead of papering over it. So gather the full run before you start. A quick check catches gaps early: each month's ending balance should match the next month's opening balance. If they don't, a statement is missing. ## Review the flags first Now the real work. And it's less than you think. Start with the flagged pile. These are the transactions Claude wasn't sure about. Three reasons show up again and again: transfers between your own accounts, credit-card payments, and opening balances with no statement behind them. Each one is easy to misread, so Claude holds it for your call instead of guessing. The worked examples below show how you clear each. Here's a prompt to walk the pile with you. > **Prompt:** Walk me through every transaction you flagged, grouped by reason. For each one, show me the category you'd suggest and why. Wait for my answer before you change anything. ### Three worked examples from the flagged pile The flagged pile sounds abstract until you see it. Here are the three that show up most, and how you clear each one. **The $2,000 transfer that isn't an expense.** You moved $2,000 from checking into savings. On the checking statement, that's a $2,000 debit. If Claude counted it as spending, your P&L would show $2,000 of expense that never happened. When both accounts are in the folder, there's a second half to catch too. The matching $2,000 credit lands in savings, and on its own that looks like income. Claude sees the amounts match on the same date across two of your accounts, so it flags the pair. You tell it: same money, my own accounts. It codes both to a transfer, and neither one touches the P&L. **The credit-card payment that isn't spending.** You paid your card $1,500. Money left checking, so it looks like an expense. But the spending already happened, on the card, when you bought things. If Claude counted the payment as an expense too, every purchase would be counted twice. Once as the card charge. Once as the payment. Claude flags the payment. You confirm it's a card payment. It codes it against the credit-card liability, which is you paying down what you owe, not a new cost. **The opening balance with nothing behind it.** Your first statement starts with money already in the account. There's no deposit line showing where it came from, because it landed before this statement period began. Claude can't source what it can't see, so it flags the gap. You give it the opening figure and, if you know it, the reason. An owner contribution. A carryover from last year. It records that as opening equity, so the balance sheet starts from a true number instead of a hole. Clear those three and you've handled most of what Claude will ever flag. ### Then spot-check the confident pile The flags are only half the review. The other half is the transactions Claude was sure about. Here's the trap. A flag is Claude telling you it wasn't sure. But a wrong sort it was sure about won't carry a flag. It filed a charge with confidence, and it filed it the way most businesses would, which happens to be wrong for yours. No flag, because there was no doubt on Claude's end. Only on yours. So read the confident pile too. Not every line. Spot-check. Scan the big-dollar transactions first, since a wrong sort there moves the statements the most. Then skim the vendor names you recognize and make sure each one landed where you'd put it. A software charge you treat as COGS, an owner meal you keep personal, a client refund that isn't really income. Those are the ones a general sort gets wrong and never flags. The COGS-versus-expense split is the classic one. Say you buy $400 of raw material that goes straight into a product you sell. That's COGS. Say you buy $400 of office software the whole business runs on. That's an expense. Both are money out, and a general sort can swap them without a second thought. The split matters because it changes your gross margin, so it's worth a look when the dollar amount is real. Treat the whole thing like a new hire's first categorization pass. Useful. Mostly right. Worth a real read before you sign off. If you'll do this every month, the [Chat and Projects way to use Claude for bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping) shows how to keep context between runs. ## Reconcile the balance sheet back to your bank Here's the one check that tells you the draft holds together. Compare the cash on the built balance sheet to the ending balance on your last statement. They should match. Say your checking statement ends at $8,412.55. If the balance sheet shows checking at $8,412.55, every transaction is accounted for. Nothing dropped, nothing doubled. That's a strong sign the sort is complete, even before you read a single category. If the two numbers differ, the gap is the size of the error. A $2,000 difference points you straight at a transfer counted once instead of twice, or twice instead of once. A smaller odd figure often means a missing page or a misread line from a bad scan. An opening balance that's off throws the whole run by the same amount from day one. Ask Claude to hunt the difference for you. > **Prompt:** Compare the checking balance on the balance sheet to the ending balance on my last checking statement. If they don't match, list the transactions that could explain the difference. Run this for each bank and card account. When every account's built balance matches its statement, the books tie out. That's the moment a draft stops feeling like a guess and starts feeling like books. It's also the check a real bookkeeper runs, so building the habit now pays off whether you stay with Claude or move to a purpose-built tool. ## Where a bank-statement first pass stops Be honest about the ceiling. A statement pass with Claude is genuinely useful. For your own books. For a couple of simple clients. It gets you from a folder of PDFs to a reviewable draft in one sitting. Here's where it stops. There's no per-client memory that carries your fixes forward across a roster. Fix the same vendor for one client this month, and next month, for the next client, you start over. And there's no built-in audit trail of who approved what across ten, twenty, thirty client books. Once you're running books for others, that gap gets expensive. The [multi-client AI bookkeeping](https://growthy.com/blog/multi-client-ai-bookkeeping) breakdown walks through why a roster needs more than a single folder. That's the line where Growthy begins. Growthy connects to QuickBooks Online. It pattern-learns per client, so the same correction carries forward instead of getting re-taught. It reviews every transaction with you before it posts. And it runs 10 to 30-plus client books with an audit trail behind every change. Same idea as this guide, built for volume. Growthy is that reviewable first pass at scale, with memory. Growthy is 85% accurate on first import. You review the rest. And if your work runs into tax season, our sister product [TracePrep handles tax workpaper automation](https://traceprep.com/). That's the difference between a first pass for your own books and a system that runs a full roster of them. > **Get started with Growthy.** [Get started](https://growthy.com/signup/?utm_content=claude-bank-statement-bookkeeping) and see what it catches on your first import. ## Frequently asked questions These are the questions that come up once you've tried a first pass from statements. ### Can Claude really do my books from just bank statements? Yes, as a first pass. It reads your PDF statements, categorizes every transaction, and builds a balance sheet and P&L. You review the draft before you rely on it. Think of it as a strong starting point, not a finished set of books. ### Does Claude read scanned or image-based PDF statements? Yes. Scanned statements and image-based PDFs both work. So do exports straight from online banking. You don't have to convert them first. The one limit is scan quality. A blurry or crooked scan reads worse, and handwriting is the hardest case, so re-scan a bad page rather than fight the sort. ### What chart of accounts does it use? Whatever you point it at. The QuickBooks default is a common, safe target, and most accountants read it easily. Have your own chart? Give Claude that instead, and it sorts against yours. ### What are the main account types in a standard chart? Six. Income, cost of goods sold, expenses, assets, liabilities, and equity. Income minus COGS minus expenses is your profit, and that's the P&L. Assets equal liabilities plus equity, and that's the balance sheet. Claude builds both from the same sorted transactions. ### Do I need a QuickBooks subscription or the connector? No, not for a first pass. Claude reads the statement files directly, so you can build a draft with no connection at all. If you want live QuickBooks data later, that's a separate setup step. ### What does Claude flag, and why? The transactions it isn't sure about. The usual three: transfers between your own accounts, credit-card payments, and opening balances with no statement behind them. Each one is easy to misread, so Claude flags it instead of guessing. ### How does it handle a transfer between my own accounts? It treats it as money moving, not money earned or spent. When both accounts are in the folder, it matches the debit and the credit by amount and date, then flags the pair so the same dollars don't count twice. You confirm it's your own transfer, and it codes both sides out of the P&L. ### Is the output ready to file taxes from? No. It's a first-pass draft, not a filing. Read every category and clear every flag first. Treat it like a new hire's first attempt. Useful, but it needs your sign-off before anything official. ### Does it build a balance sheet and P&L, or just categorize? Both. You get the categorized transaction spreadsheet plus a balance sheet and a P&L built from it. Fix the spreadsheet, and the two statements follow. ### How do I know the books are complete? Reconcile. Compare the cash on the built balance sheet to your last statement's ending balance. If they match, every transaction is accounted for. If they don't, the gap is the size of the error, and it usually points at a transfer, a missing page, or an off opening balance. ### Can it handle several bank and card accounts at once? Yes. Drop them all in one folder. Claude reads across every statement together and still flags transfers between your own accounts so they don't count twice. ### Is it safe to hand Claude my bank statements? Statements hold sensitive numbers, so it's a fair question to ask of any tool. Read up on how data is handled before you upload, and keep files where you control them. The [AI bookkeeping data security](https://growthy.com/blog/ai-bookkeeping-data-security) overview covers what to check. ### What if my account mixes business and personal spending? Common when a sole proprietor runs everything through one account. Claude sorts every line into the business chart by default, so a personal grocery run can land in expenses. Tell it up front to flag anything that looks personal. On review, mark those as owner draws instead. They aren't business costs. They pull money out of the owner's equity. A quick pass to pull personal charges out keeps the P&L honest. ### What if I'm running books for a lot of clients? That's where a single-folder pass stops being enough. There's no memory that carries your fixes across clients, and no audit trail across a roster. A purpose-built tool covers that gap. ## Where to start Start small. Your own books, one folder, the prompt above. Read the flagged pile first, then spot-check the rest, then reconcile the cash back to your last statement. Once you trust the pattern, the same habit scales to a client or two. Past that, you'll want a tool that remembers. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* ### [Claude + Beancount: Give AI Bookkeeping a Permanent Ledger](https://growthy.com/blog/claude-beancount-permanent-ledger): You run a clean categorization pass in Claude, then close the session. The structured record is gone, because a bare Cowork session has no database behind it. This guide walks the Claude and Beancount setup: a free, community-built way to give those You run a clean categorization pass in Claude, then close the session. The structured record is gone, because a bare Cowork session has no database behind it. This guide walks the Claude and Beancount setup: a free, community-built way to give those books a plain-text ledger that survives every session. > **How do you use Claude with Beancount to keep a permanent ledger?** > > Point Cowork at your bank statements and ask it to keep the books in Beancount. Beancount is an open-source, plain-text double-entry accounting system written in Python, with about 5,800 stars on GitHub. The whole ledger is one text file you own. It's git-friendly and portable. Open a fresh Claude session on the same file and pick up where you left off. To read the numbers, use Fava, Beancount's open-source web interface, with about 2,500 stars. It renders a trial balance, a balance sheet, and an income statement from the file. One caveat: this is a community pattern, not an official Anthropic skill. You wire it up yourself. ## Key Takeaways - **A bare Cowork session forgets your books:** a categorization run's output lives in a one-off spreadsheet unless you save it or hold it in a Project. - **Beancount is a plain-text ledger you own:** open-source, written in Python, about 5,800 GitHub stars, git-friendly, and portable. - **The format is simple to read:** five account types, one line per transaction, and postings that always balance to zero. - **One prompt starts it:** point Cowork at your statements and ask it to keep the books in Beancount against a standard chart of accounts. - **Plain text means git works:** commit the file each month, diff this month against last, and roll back a bad pass. A spreadsheet keeps no history. - **Fava shows the reports:** the open-source web interface, about 2,500 stars, renders a trial balance, balance sheet, and income statement from the same file. - **It's a community pattern, not an official skill:** Anthropic ships no Beancount plugin. You maintain the file yourself. - **It stops at scale:** no pattern learning across a roster of 30 client books, and no built-in audit trail of who approved what. ## The problem: a Cowork session forgets your books A bare Cowork session has no database. When Claude categorizes a folder of bank statements, the result lands in a one-off spreadsheet. Useful, mostly right, worth a real read. But close the session and that structured record goes with it. Nothing persists behind it. You can save the spreadsheet somewhere. You can build a Project to hold the context. Both work, sort of. But you're still stitching files and sessions together by hand. Here's the deeper miss. That first-pass draft isn't a book of record. It's a snapshot. For the full picture of what a Cowork session can and can't do, read our [guide to running Claude Cowork for bookkeeping](https://growthy.com/blog/claude-cowork-for-accounting-bookkeeping). This is one narrow move inside the bigger question of [how to put Claude on your books](https://growthy.com/blog/claude-for-bookkeeping). What's missing is a real ledger. A double-entry ledger that survives the session and holds the whole history in one place. That's where double-entry accounting with Claude and a text-file ledger comes in. ## What Beancount is: a plain-text ledger you own [Beancount](https://github.com/beancount/beancount) is an open-source, plain-text double-entry accounting system. It's written in Python. Its GitHub repo describes it in five words: "Double-Entry Accounting from Text Files." It has about 5,800 stars as of this writing. Every account and every transaction lives in one plain text file. Because it's text, it travels well. It's git-friendly, so you can version it and see every change. It's portable, so you can hand it to a colleague or drop it in a shared folder. Open a fresh Claude session pointed at the same file, and Claude reads the whole history back. Think of it like a QuickBooks Desktop file more than a cloud subscription. The file is yours. It sits on your disk. It doesn't vanish when a session ends. This is what people mean by plain text accounting: the books are a document, not a login. One honest note. It's a text file you maintain yourself. There's no support desk. There's no automatic backup beyond what you set up. You own the upside and the upkeep. ## The shape of a Beancount file: a short syntax primer You don't have to write Beancount by hand. Claude writes it for you. But you'll read it, so it helps to know the shape. It's plain and short. Every account is one of five root types. Assets, Liabilities, Equity, Income, Expenses. Each name is capitalized and split by colons, so you can nest as deep as you want. Here are five real accounts: > `Assets:Checking``Liabilities:CreditCard:CITI-1234``Equity:Opening-Balances``Income:Consulting``Expenses:Groceries` Every account has to be opened before you use it. That's a one-line directive with a date: > `2024-01-01 open Assets:Checking` Dates are always written year, month, day. A transaction starts with a date, then a flag, then an optional payee and a description in quotes. Under it come the postings, one account per line, each indented. Here's a single transaction: > `2024-01-05 * "Farmer's Market" "Groceries"`` Expenses:Groceries 50.00 USD`` Assets:Checking` A few things to notice. The `*` is a flag. It means the entry is cleared and complete. If Claude isn't sure about a line, it uses `!` instead, which marks it for review: > `2024-01-09 ! "Unknown ACH" "Needs a second look"`` Expenses:Uncategorized 120.00 USD`` Assets:Checking` That `!` is your flag pile. It's the fast way to see what Claude wasn't sure about. The amount is a number, then the commodity in uppercase on the right, like `50.00 USD`. The postings under a transaction always sum to zero. That's the double-entry rule, baked into the format. Money out of one account is money into another. Notice the second posting in each example has no amount. Beancount fills it in for you, since the whole thing has to balance. You can write both amounts if you want, but you don't have to. Anything after a semicolon is a comment. Beancount reads right past it, so you can leave yourself notes: > `; Rent went up in March, watch this account` Those are the pieces you'll see most: accounts, `open`, a dated transaction with `*` or `!` flags, amounts, and comments. Beancount has more directives with names like `close`, `balance`, `pad`, `price`, and `note`. You'll meet `balance` in a minute. The rest you can pick up later. This much is enough to read your own books. ## A worked example: a few transactions in one file Here's what a small stretch of a real ledger looks like. Four accounts, three transactions: > `2024-01-01 open Assets:Checking``2024-01-01 open Income:Consulting``2024-01-01 open Expenses:Software``2024-01-01 open Expenses:Groceries` > > `2024-01-04 * "Acme Co" "January retainer"`` Assets:Checking 3000.00 USD`` Income:Consulting` > > `2024-01-06 * "Farmer's Market" "Groceries"`` Expenses:Groceries 50.00 USD`` Assets:Checking` > > `2024-01-12 * "Cloud Host" "Monthly server bill"`` Expenses:Software 40.00 USD`` Assets:Checking` Read it top to bottom. First you open four accounts. Then money comes in: a $3,000 retainer lands in checking, and the other side of that entry is income earned. Then two bills go out: $50 for groceries, $40 for the server. Each one pulls from checking. Do the math and checking holds $2,910. Income shows $3,000 earned. The two expenses sit in their own buckets, ready to roll up into a report. In each transaction the last posting had no amount, so Beancount worked it out. That's the whole ledger, in text, in order. Open this same file in Fava and you'd see those numbers as a trial balance: checking at $2,910, consulting income at $3,000, and each expense on its own row. The report isn't a separate thing you build. It's the file, read back to you. This is what Claude produces when you point it at your statements. Not a spreadsheet you have to re-save. A running file you add to. ## Keep the books in Beancount: the step-by-step Here's the setup, start to finish. First, gather your statements in one folder. Bank statements, card statements, PDFs are fine, including scanned ones. Point Cowork at that folder. Then ask Claude to keep the books in Beancount. Use this prompt: > **Prompt:** Use Beancount to keep the books for these statements. Use the QuickBooks default chart of accounts and stick to the Beancount format so the ledger stays valid. Claude reads the statements. It writes each transaction as a double-entry posting into a `.beancount` ledger file. Debits and credits, every entry balanced. It flags anything it wasn't sure how to classify instead of guessing. Those are the `!` lines from the primer above. What you check: the classifications, and every flagged line. Treat the output like a new hire's first pass. Useful, mostly right, and worth a real read before you call it done. The same review habit applies here as anywhere else you [put Claude to work on bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping). Next month, you don't start over. Point a new session at the same ledger and add to it: > **Prompt:** Here's my existing Beancount ledger. Add these new statements as double-entry transactions, match my existing account names and categories, and flag anything that doesn't fit a pattern already in the file. The file carries the history. Claude reads it, matches your existing accounts, and appends. That's the whole point. The ledger remembers, so the session doesn't have to. ## Which chart of accounts to use Your chart of accounts is just the list of categories your money sorts into. The prompt above points Claude at the QuickBooks default set, and that's a fine place to start. It gives you the standard buckets every set of books needs: income, cost of goods sold, expenses, assets, liabilities, and equity. The exact list matters less than one rule. Pick it once and keep it. Beancount only cares that the account names stay the same month to month. If January calls it `Expenses:Software` and March calls it `Expenses:Software-Subscriptions`, your report splits that spend across two rows. So when you ask Claude to add next month's statements, tell it to match the account names already in the file. That one instruction keeps the ledger clean over time. ## The lines Claude flags, and why The `!` flag isn't random. A few kinds of line trip it every time, and they're the same ones that trip up any first pass. Knowing them makes your review fast. The most common is a transfer between your own accounts. Move $2,000 from checking to savings and it looks like money leaving, but it isn't spending. It's your own cash in a different pocket. In Beancount that's two asset accounts and no expense at all: > `2024-01-15 * "Transfer to savings"`` Assets:Savings 2000.00 USD`` Assets:Checking` A credit-card payment is the same trap. Paying the card isn't an expense. It moves a liability down. The expense already happened when you swiped. Then there's the opening balance with no statement behind it. Claude flags it because it can't see where that starting number came from. So work the flagged pile first. Those are the lines that need your eyes. Once they're clear, spot-check the confident pile, then run your balance assertions. That order catches the most for the least effort. ## Balance assertions: your check against the bank statement There's one directive worth learning on its own, because it's how you keep the ledger honest. It's called a balance assertion. A balance assertion is one line. A date, the word `balance`, an account, and an amount: > `2024-02-01 balance Assets:Checking 1000.00 USD` It tells Beancount: this account holds exactly this much as of the start of this date. If the ledger disagrees, Beancount throws an error and points at the line. It won't let you pretend the books are fine when they aren't. Here's how you use it to reconcile. Pull the closing balance off your bank statement. Say your checking account ends January at $1,000. You add a balance line dated February 1, the start of the next day, set to $1,000. Run Beancount. If it passes, your ledger matches the bank through the end of January. If it fails, something is miscoded or a transaction is missing. That's a real honest-check, not a vibe. It's the plain-text version of ticking your books against the statement. Ask Claude to add a balance assertion for each account at each month's end, and you get a hard stop every month that either passes or tells you exactly where the books drifted. ## Plain text plus git: version every change Because the ledger is plain text, git works on it. And that changes what your books can do. Git is version control. Every time you commit the file, git saves that exact state forever. Do it once a month, after each add, and you build a full history of your books over time. A simple habit does it. After Claude appends the new month and your balance assertions pass, commit the file with a note like "closed January." Now that month is frozen in the history. Next month you add, check, and commit again. Over a year you get twelve clean snapshots, each one a moment your books balanced. Now you can do things a spreadsheet can't. You can diff. Ask git to show you what changed between last month's commit and this month's, and it lists every line added or edited. You see exactly which transactions are new. You can also branch. Try a fresh re-categorization on a side branch, look at it in Fava, and either keep it or throw it away. Your main ledger never moves until you say so. Compare that to a one-off spreadsheet. Change a cell and the old value is gone. There's no history, no diff, no going back. With git, every past state is still there. A bad categorization pass is a one-command undo, not a lost afternoon. There's a quieter benefit too. The file lives on your own disk. It never leaves your machine unless you send it somewhere. If where your books live matters to you, that's a real point in favor of plain text. For more on that side of things, see [how AI bookkeeping handles your data](https://growthy.com/blog/ai-bookkeeping-data-security). ## Running a couple of clients: one file per entity The pattern stretches to a few sets of books. The rule is simple: one file per entity. Your own books go in one `.beancount` file. A client's books go in a second. Another client, a third. Each file is self-contained. It has its own accounts, its own history, its own balance assertions. Nothing is shared between them. For a couple of simple clients, this holds up fine. You keep three files. You run Fava on whichever one you're looking at. You commit each to git on its own. Each set of books stays clean and separate, which is exactly what you want when the work is small. Be honest about the ceiling, though. That separation is the upside and the limit at once. A fix you make in one file never carries to another. Rename an account or sharpen a rule for client A, and client B knows nothing about it. You redo the same work by hand. That's workable for two or three. It's the exact thing that breaks when the roster grows, which we'll come back to. ## See the numbers: Fava or a custom Claude view A ledger file is great for storage. It's not much to read. That's what Fava is for. [Fava](https://github.com/beancount/fava) is Beancount's open-source web interface, with about 2,500 stars as of this writing. Its own description is plain: a web interface for the double-entry bookkeeping software Beancount, focused on features and usability. Setup is short. Install it with one command: > `pip3 install fava` Then point it at your ledger and start it: > `fava ledger.beancount` Open `http://localhost:5000` in your browser and there's your report view. It renders a trial balance, a balance sheet, and an income statement, straight from the file. It also shows account registers and charts, so you can click into an account and see every posting behind a number. There's an online demo too, if you want to look before you install anything. One thing to hold onto: Fava runs locally. You host it. Nothing gets uploaded to a server. The page at localhost is coming off your own machine, reading your own file. That's the same ownership story as the ledger itself. Prefer something more tailored? Ask Claude instead: > **Prompt:** Read my Beancount ledger and build a one-page owner summary: cash position, top expense categories this month, and anything that changed sharply from last month. Same file, a custom view. No new tool to install. ## The honest upkeep Say the trade-off plainly, so nothing surprises you later. You maintain the file. There's no support desk to call when something looks off. If a balance assertion fails at 9pm, you're the one who figures out why. There's no automatic backup. Beancount doesn't save copies for you. If you don't set up git or your own backups, a lost file is a lost ledger. This is why the git habit above isn't optional if the books matter. The pieces are yours to update. Beancount and Fava are mature open-source projects, but nobody maintains the wiring between them and Claude. If a future Claude update changes how Cowork writes files, you adjust the prompt and move on. One more part of the deal. Beancount and Fava are free, but the workflow runs on Claude, and Claude runs on a paid plan with usage limits. A heavy month, or several client files in one week, can run into those limits. Check your plan's current caps before you lean on this for anything time-sensitive. None of this is a reason to skip it. It's just the deal you're making. Full ownership on one side, full upkeep on the other. For one operator and one file, that's a fair trade. Know it going in. ## This is a community pattern, not an official skill Say this part plainly too. Anthropic does not ship a Beancount skill or plugin. This whole setup is a pattern the Claude user community worked out. It's not a supported feature. That's not a knock. It works. It's free. Beancount and Fava have years behind them. But nobody at Anthropic or Intuit maintains the wiring for you. You're the operator here, not a subscriber. If you're weighing this against the official route, it helps to know what Anthropic does support directly. Their Small Business plugin connects Claude to QuickBooks, and you can also [connect QuickBooks Online to Claude](https://growthy.com/blog/connect-quickbooks-online-to-claude) on its own. Those are supported paths. Beancount is the free, do-it-yourself lane running alongside them. ## Where a text-file ledger stops (and what runs the whole roster) Give the trick its due. It's a clever, free way to give your own books a persistent ledger instead of a one-off spreadsheet. The same goes for a couple of simple clients' books. For one operator and one file, it's genuinely useful. Now the honest limit. Three parts. First, you're hand-wrangling text files. You maintain them. You back them up. You fix them when they break. Second, there's no pattern learning across a roster. Run 30 client books this way and each ledger is its own island. A fix you make for one client never carries to the next. You saw that already with the one-file-per-entity setup. Third, there's no built-in audit trail. Nothing records who approved which change, and when. For your own books, that's fine. Across a roster of clients, that gap gets real. That's the exact line where a do-it-yourself text-file ledger stops and a productized book of record begins. Same review-and-approve work, built to carry volume a hand-maintained file can't. It's the same jump you face anywhere you scale [Claude for accounting](https://growthy.com/blog/claude-for-accounting) past your own single set of books. That's why Growthy exists. It connects straight to QuickBooks Online. It pattern-learns per client from your fixes. It reviews every transaction with you before it posts. And it runs 10 to 30-plus client books with an audit trail. Growthy is 85% accurate on first import. You review the rest. And if your work runs into tax season, our sister product [TracePrep handles tax workpaper automation](https://traceprep.com/). If a roster is where you're headed, see [how AI bookkeeping handles many clients at once](https://growthy.com/blog/multi-client-ai-bookkeeping). > **Get started with Growthy.** [Get started](https://growthy.com/signup/?utm_content=claude-beancount-permanent-ledger) and see what it catches on your first import. ## Frequently asked questions A few more questions that come up when people set up Claude and Beancount for the first time. ### What is Beancount, and why use it with Claude? Beancount is an open-source, plain-text double-entry accounting system written in Python, with about 5,800 GitHub stars. Used with Claude, it gives a Cowork session a ledger that survives the session, instead of a one-off spreadsheet you have to remember to save. ### What does a Beancount ledger look like? It's plain text. Every account is one of five types: Assets, Liabilities, Equity, Income, or Expenses. Each transaction is a dated line with a short description, then a couple of indented postings that balance to zero. Claude writes it and you read it. If you can read a bank statement, you can read this. ### Is the Beancount setup an official Anthropic feature? No. It's a community pattern. Anthropic ships no Beancount skill or plugin. You wire up the pieces yourself and maintain the file. ### Do I need to know how to code to use Beancount? No, but you are maintaining a text file. Claude writes the entries and you review them. Being comfortable opening a plain-text file and reading it helps a lot. ### How do I check my ledger against my bank statement? Use a balance assertion. Add a one-line entry with the date, the word `balance`, the account, and your statement's closing balance. Beancount checks the ledger against that number and errors if they don't match. It's the plain-text way to reconcile. ### How do I see reports from a Beancount ledger? Use Fava, the open-source web interface, with about 2,500 stars. Install it with `pip3 install fava`, run `fava ledger.beancount`, and open `http://localhost:5000`. It renders a trial balance, a balance sheet, and an income statement from your file. Or ask Claude to build a custom view on the same file. ### Does Fava send my data anywhere? No. Fava runs locally on your own machine. The report page at localhost reads your file off your disk. Nothing gets uploaded to a server unless you send it somewhere yourself. ### Can I use git with my Beancount ledger? Yes, and it's worth doing. Because the ledger is plain text, git tracks every version. Commit the file each month and you can diff month to month, branch a re-categorization, and roll back a bad pass. It's also your backup. ### Is a Beancount ledger really double-entry? Yes. Every transaction posts to at least two accounts and has to balance to zero. It's the same double-entry rule QuickBooks enforces, just kept in plain text. ### Can I share the ledger or move it between tools? Yes. It's one text file, git-friendly and portable. Hand it off to a colleague, version it in git, or open a fresh Claude session pointed at the same file. ### Does Claude remember my books between sessions? The ledger file does the remembering, not the session. Point a new session at the file, and Claude reads the history back before it adds anything new. ### Can I keep books for more than one client this way? For a couple of simple clients, yes. Use one file per entity. It works when the number is small. It stops working as a roster grows, because a fix in one file never carries to the others. ### When is Beancount not enough? When you run many clients. You hand-maintain the files, there's no pattern learning across a roster, and no built-in audit trail of approvals. That's the point where a purpose-built tool fits better. ### Is this a replacement for QuickBooks or Xero? No. It's a plain-text ledger, not a connected accounting platform. For running client books at scale with an audit trail, a productized tool is the better fit. The Beancount trick gives a Cowork session a ledger it remembers, for free, if you're comfortable maintaining a text file. It's a real upgrade over a one-off spreadsheet. And it stops right where running a roster of client books begins. Know both, and you'll know exactly when to reach for it, and when to reach for something built to scale. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* ### [Month-End Close with Claude Cowork: A Step-by-Step Guide](https://growthy.com/blog/claude-cowork-month-end-close): Month-end close is the part most people dread. You match your books against your payment processor, then chase mismatches and missing receipts by hand. Claude Cowork has a skill for exactly that, `/close-month`, and this guide walks the whole run, on Month-end close is the part most people dread. You match your books against your payment processor, then chase mismatches and missing receipts by hand. Claude Cowork has a skill for exactly that, `/close-month`, and this guide walks the whole run, one level deeper than the close section in [the full Claude Cowork for accounting and bookkeeping guide](https://growthy.com/blog/claude-cowork-for-accounting-bookkeeping). > **What is a Claude Cowork month-end close, and how does ****`/close-month`**** work?** > > A Claude Cowork month-end close is a reconciliation run inside Claude's Small Business plugin. Anthropic's official line: `/close-month` "reconciles your books against your payment processor and writes the close packet for your accountant." You need the Claude desktop app on a Pro, Max, or Team plan, with QuickBooks connected. It matches your QuickBooks transactions to processor settlements by amount and date. Then it flags four things: mismatches, uncategorized transactions, duplicates, and missing receipts. You clear each flag in plain English. It hands back two files, a reconciliation spreadsheet and a one-page close packet. It is a checklist helper, not an auto-close. ## Key Takeaways - **You need three things:** the Small Business plugin, a Pro, Max, or Team plan on the desktop app, and QuickBooks connected. Add PayPal if you run payments through it. - **Two ways to start it:** the`/close-month` slash command, or plain English like "close out this month and tell me what needs my attention." - **It flags four problem types:** mismatches, uncategorized transactions, duplicates, and missing receipts. You clear each one yourself. - **You get two outputs:** a reconciliation spreadsheet and a one-page close packet for your accountant. - **It reconciles, it doesn't accrue.** Accruals, prepaids, and depreciation stay your judgment calls, not part of the run. - **Nothing posts or sends without you.** Claude drafts and flags. You approve. - **Use a Project to make fixes stick.** One per recurring client keeps last month's corrections loaded for the next close. - **You can schedule it monthly** with`/schedule`, and it runs with no device online. ## What /close-month actually does Claude Cowork bundles a set of money skills called the Small Business plugin. `/close-month` is the one built for your monthly close. The official description is short. It "reconciles your books against your payment processor and writes the close packet for your accountant." Under the hood, it runs a routine called `month-end-prep`. It reads your QuickBooks data, plus PayPal if that is one of your processors. That is the raw material for the match. Here is the honest framing. `/close-month` does the tedious matching and the first-pass flagging. It does not close your books on its own. You stay in the loop for every judgment call. Think of it as a sharp checklist that fills itself in, not a button that closes the month while you look away. If you are new to the plugin, start with [how to use Claude for bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping) for the wider tour, then come back here for the close. ## Before you run it: what you need A few things have to be in place first. None of them take long. You need the Claude desktop app, on a Pro, Max, or Team plan. The Small Business plugin lives on those plans only. To install it, open Cowork, go to Customize, then Plugins. Click the plus, pick Small Business, and hit Install. You need QuickBooks connected. One caveat worth saying plainly, not burying in a footnote: the QuickBooks connector is US customers only right now. You do not need an active QuickBooks subscription to connect it. You can supply your business type, your region, and about ten transactions instead, and Claude has enough to work with. For the full connect walkthrough, see [how to connect QuickBooks Online to Claude](https://growthy.com/blog/connect-quickbooks-online-to-claude). PayPal helps too, if you take payments there. `/close-month` reads QuickBooks and PayPal together. That is how it matches your books against what actually settled. ## Run /month-heads-up before you close There is a companion skill worth running first. It is called `/month-heads-up`. Where `/close-month` looks back at the month you just finished, `/month-heads-up` looks forward. It reads the next 30 days of cash, finds your tightest week, and flags what to watch before month-end. It runs on your QuickBooks data. Why pair them? A close tells you what happened. A heads-up tells you what is coming. Run the heads-up first, and you walk into the close already knowing where cash is tight. You are not surprised by a slow week after the books are done. > **Prompt:** Give me a heads-up on the next 30 days of cash and point me at the tightest week. It takes a minute. Then you close. The two skills work as a pair. Look forward, then close the month behind you. ## How to run a Claude month-end close You have two ways in. Both land in the same place. The first is the slash command. Type `/close-month` and point it at the period you just finished. The second is plain English. You do not have to memorize the command name. > **Prompt:** Close out this month and tell me what needs my attention. Either way, Claude reads your QuickBooks and PayPal data, runs the match, and comes back with a list of flags. A Claude month-end close comes down to that one step. Run it, then clear what it surfaces. You are not typing out each instruction. You start it, and it works through the reconciliation on its own, one flag at a time. ## What it checks under the hood The match itself is simple to describe. `/close-month` lines up each QuickBooks transaction against your processor settlements. It matches on two things: amount and date. When something does not line up, it gets flagged. There are four kinds of flag. A mismatch is a transaction that does not tie to a settlement, or a settlement with no transaction behind it. An uncategorized transaction is one with no account assigned yet. A duplicate is the same charge posted twice. A missing receipt is a charge with no document attached. That is the whole check. Amount and date go in. Four flag types come out. Nothing gets changed at this stage. You just get a clean list of what needs a decision. ## A worked close: clearing the flags Here is what a flag list looks like on a made-up month. The numbers below are illustrative. Yours will be different. Say `/close-month` turns up four items. - A PayPal settlement has not matched any QuickBooks deposit yet. Flagged as a mismatch. - A $340 charge posted twice. A plain duplicate. - A $58 charge from a new vendor. Uncategorized. - A $210 hotel charge with no receipt attached. You clear each one the way you would explain it to a coworker. > **Your replies:** "The PayPal settlement is still in transit, give it a day." "The duplicate is a sync glitch, delete the second one." "The $58 charge is software, code it to subscriptions." "The hotel was a client trip, I will upload the receipt tonight." Claude updates the reconciliation spreadsheet as each flag clears. When the list is empty, it builds the close packet. The dollar amounts here are made up, and your real flags carry your own numbers. The pattern holds no matter how many a month turns up. You clear each one in plain English. You are not hunting through a spreadsheet row by row. ## The difficult 20%: where a close actually gets hard Most of a close is easy. The match ties, the category is obvious, you move on. The hard part is a small slice, maybe a fifth of the work, that eats most of your time. Growthy calls it the difficult 20%. Here is how it shows up in a close, and what you decide each time. **Net deposits versus gross sales.** Your payment processor takes a fee before the money lands. Say you sold $1,000. PayPal keeps its cut, and $971 hits your bank. Your books may show the full $1,000 in sales. That $29 gap is the fee. `/close-month` sees the deposit not matching the sale and flags it. You decide the fix. Record the gross sale, then book the fee as a processing expense. The deposit ties once you split it. This is gross-versus-net, and it is the single most common close mismatch. The same logic holds for any processor. `/close-month` reads QuickBooks and PayPal directly. For a processor it does not read, you bring the fee numbers in yourself, but the decision is identical. **Transfers that look like income.** You move $2,000 from checking to savings. Your bank shows money leaving one account and landing in another. Neither line is income. Neither is an expense. It is your own money changing seats. `/close-month` may flag both sides as uncategorized or as a mismatch. You code it as a transfer, not revenue and not spending. Miss this, and your income looks $2,000 bigger than it is. This is the flag that most often hides a real error behind a clean-looking total. **The blank ACH line.** A charge posts as "ACH PAYMENT" with no vendor, no memo, nothing. The bank feed dropped the detail. `/close-month` flags it uncategorized because there is no way to guess the account. You recognize it. That is your insurance carrier. You supply the category. Claude cannot know what the bank did not send. You can. None of these are Claude failing. They are the judgment part of a close, the part that was always going to need a person. `/close-month` finds them and lines them up. You make the call. ## What a full close needs that /close-month skips Reconciliation is the biggest chunk of a close. It is not the whole job. `/close-month` does the reconcile-and-flag slice well. It does not do the rest, and it is worth being clear about what the rest is. A complete monthly close usually needs a few adjusting entries that no reconciliation will surface: - **Accruals.** You owe for something you have not been billed for yet. The work happened this month, so the expense belongs this month. That is a judgment call and a journal entry.`/close-month` will not make it. - **Prepaids.** You paid a year of insurance up front. Only one month's worth belongs this month. The rest sits on the balance sheet and releases over time. That is your entry to record. - **Depreciation.** You bought equipment. Its cost spreads across the months it is used, not all at once.`/close-month` does not track a depreciation schedule. These are your entries to make. `/close-month` reconciles the cash and the categories. It does not decide that half of a prepaid should move, or that this month owes for unbilled work. Those are accounting judgments. Here is the honest workflow. Run `/close-month` to reconcile and clear the flags. Then make your period-end adjustments on top: accruals, prepaids, depreciation, any reclass you know is coming. The skill handles the mechanical match. You handle the judgment layer. If you are not sure which adjustments your books need, that is a question for your accountant, and the close packet gives them exactly what they need to answer it. ## What you get: two outputs Every clean `/close-month` run hands you two files. They map to the two jobs a close actually has. The first is a reconciliation spreadsheet. It shows every match, and every flag you cleared, with your reasoning attached. That is your record for the month. If a number gets questioned later, the answer is right there. The second is a one-page close packet for your accountant. It is the short summary they actually want. What closed, what moved, what needs a note. No more forwarding a messy export and hoping they piece it together on their end. Here is what the close packet pulls together. The period it covers. The reconciliation result, tied out. The flags you cleared, with the reason you gave for each. Anything still open that needs a decision. And a short note for anything unusual, like a fee split or a transfer you recoded. It answers one question fast. Is this month done, and can I trust it? Your accountant does not have to dig through raw exports to find out. The reconciliation spreadsheet is the long-form backup. The close packet is the summary on top. Together they mean your accountant reads one page first, then drills into the spreadsheet only if a number needs a second look. ## Keep your close conventions in a Project Run a close in a bare session, and it starts from nothing next month. The fixes you made, the way you code a certain vendor, the transfer accounts Claude should never treat as income, all of it resets. You would re-explain the same things every close. A Project fixes that. A Project holds files, standing instructions, and memory across sessions. Set one up for each recurring client or entity. Put your conventions in it once. > **Project instructions:** This is Acme LLC. Their chart of accounts is attached. Payments from PayPal land net of fees, so split gross sales from processing costs. Transfers between the operating and reserve accounts are never income. The monthly insurance draft is prepaid, so code it to prepaid expense. Now every close for Acme starts with that context loaded. Claude codes the recurring vendors the way you taught it last month. It knows which transfers to leave alone. Your corrections stick instead of evaporating. One Project per client keeps them separate. Acme's rules do not bleed into another client's books. If you close the same handful of entities every month, this is the difference between a close that gets faster over time and one that stays exactly as slow as the first one. ## Nothing posts or sends without you This is the guardrail that matters most for a close. You approve before anything sends, posts, or pays. That holds across every skill in the plugin, not just this one. Claude reads only what your account can already read. Your existing permissions still apply. Connect a read-only view of a tool, and it stays read-only. Nothing about a close changes that. Anthropic does not train Claude on your business data. Intuit says your QuickBooks data is not used to train Claude either. Those are specific claims you can check at the source, not vague reassurance. Confirm them yourself before you connect a client's books. For a deeper look at where your numbers go, see [how AI bookkeeping tools handle your data](https://growthy.com/blog/ai-bookkeeping-data-security). ## Schedule it to run every month You do not have to be at your desk for a close to run. You can put it on a schedule. Run `/close-month` once, then type `/schedule` inside that same task. Or open the Scheduled panel in the left sidebar. Set it to repeat, and Claude runs the close on its own each period. > **Prompt:** Run `/close-month` for last month on the 5th of every month, and leave the close packet ready for me to review. Scheduled tasks run with no device online. Your laptop can be closed. The run still happens on Anthropic's side, and the result waits for you when you check in. One practical tip on timing. Do not schedule the close for the 1st. Bank feeds and processor settlements take a few days to fully post. Set the run for the 3rd or the 5th, so the month's last transactions have landed before Claude reconciles. A close run too early just flags things that were only in transit. A full recurring setup looks like this. Run `/close-month` once by hand, so you have seen it work. Schedule it for the 5th of each month. Point it at the prior month. Tell it to leave the packet ready, not to assume anything. Then each month, you open Claude, find a close waiting with its flags surfaced, and spend your time only on the judgment calls. Here is the part that keeps it safe. Anything that needs your sign-off does not fire on its own. If a scheduled close turns up flags, they wait for you the next time you open Claude. Nothing posts because a schedule ran while you slept. ## A manual close versus a Cowork-assisted one It helps to see the two side by side. A manual QuickBooks close goes like this. You open the reconcile screen. You match transactions to the statement one row at a time. You spot the ones that do not tie and dig into why. You hunt for missing receipts across email and folders. You fix categories by hand. Then you export something for your accountant and hope it is clear. The mechanical matching, row by row, is where most of the time goes. The judgment calls are a smaller slice, but they are buried inside all that clicking. A Cowork-assisted close moves the clicking off your plate. You run `/close-month`. It does the matching and hands you a flag list. You clear each flag in plain English, the way you would explain it to a coworker. It writes the packet for you. What is left on you is the judgment. Which category is right, whether a transfer is really a transfer, which receipt still needs chasing. That part does not disappear, and it should not. So the honest contrast is this. Cowork does not remove the judgment. It removes the row-by-row matching around the judgment. Some people report saving real time this way. Your own mileage depends on how messy your books are and how many flags a month turns up. What is certain is where the effort moves. Away from mechanical matching, toward the decisions only you can make. ## Tie the close back to your statement One check outranks the rest. Before you trust the close, tie it to the source. Pull your bank statement and your processor statement for the month. Look at the ending balances. Then check that your reconciled numbers land on those same figures. If your books say checking ended at $12,430 and the bank statement says $12,430, the month ties. If they are off by $29, you have a fee you did not split, or a transaction still in transit. Chase the difference until it is zero. This is the moment the whole close earns its trust. A reconciliation that does not tie to the statement is not done, no matter how clean the flag list looks. `/close-month` gets you most of the way by matching and flagging. This last tie-out is the step that tells you the match is actually right. It takes two minutes, and it catches the errors a tidy total can bury. ## What to double-check `/close-month` is fast and mostly right. It is not a rubber stamp. A few things deserve your eyes every single time. Check every category it picks. It may code a charge differently than you would. Say it books a client dinner as "office supplies" because the vendor name was vague. You catch that and recode it. Give transfers between your own accounts a second look too. A miscoded transfer inflates your income without ever looking wrong on the page. The honest summary: this is a checklist helper, not an auto-close. It does the matching and the flagging. You do the judgment. Treat the output like a sharp junior's first pass. Useful, mostly right, and worth a careful read before you sign off on the month. ## Where /close-month stops `/close-month` is genuinely good for your own books. It holds up for a couple of simple clients too. This is not a teardown. It does what it was built for, and it does it well. The limits show up at scale. Cowork works one folder, one session at a time. It does not carry pattern memory per client across a roster. A bare session forgets last month's fixes unless you build a Project to hold them. And there is no built-in audit trail of who approved what, and when, across ten to thirty-plus client books. That is the exact line where Growthy begins. Growthy connects straight to QuickBooks Online. It uses pattern learning per client, so your fixes stick and compound instead of resetting each month. It reviews every transaction with you before it posts, the same approve-first posture Cowork uses. And it runs ten to thirty-plus client books at once, with an audit trail. Growthy is 85% accurate on first import. You review the rest. And if your work runs into tax season, our sister product [TracePrep handles tax workpaper automation](https://traceprep.com/). If you are closing your own books or a couple of simple ones, `/close-month` may be all you need. If you are running a roster, see [how AI bookkeeping tools handle many clients at once](https://growthy.com/blog/multi-client-ai-bookkeeping) before you decide Cowork alone covers it. > **Get started with Growthy.** [Get started](https://growthy.com/signup/?utm_content=claude-cowork-month-end-close) and see what it catches on your first close. ## Frequently asked questions These are the questions that come up most about running a Claude Cowork month-end close. ### What is a Claude Cowork month-end close? It is a reconciliation run inside Claude's Small Business plugin. You run `/close-month`, and Claude matches your QuickBooks transactions to your payment processor settlements by amount and date. It flags mismatches, uncategorized items, duplicates, and missing receipts. You clear each flag, and it writes a reconciliation spreadsheet plus a one-page close packet. ### What plan do I need to run /close-month? You need the Claude desktop app on a Pro, Max, or Team plan. The Small Business plugin, where `/close-month` lives, is limited to those plans. A Free plan will not show the plugin in Customize. ### Do I need an active QuickBooks subscription? No. You can connect the QuickBooks connector without a paid QuickBooks plan. Supply your business type, your region, and about ten transactions, and Claude has enough to work with. An active plan makes the connection richer, but it is not required. ### Does /close-month work outside the US? Not yet. The QuickBooks connector is US customers only for now. If you are outside the US, the close workflow will not reach your books the way this guide describes. There is no official Xero connector for the money skills either. ### What does /close-month actually flag? Four things. A mismatch is a transaction that does not tie to a settlement. An uncategorized item has no account yet. A duplicate is the same charge posted twice. A missing receipt is a charge with no document attached. It matches on amount and date to find all four. ### Does /close-month connect to Stripe or Square? There is no confirmed Stripe or Square connector for the close. `/close-month` reads QuickBooks and PayPal. For any other processor, you bring the settlement and fee numbers in yourself. The gross-versus-net logic is the same no matter which processor you use. ### How does net-versus-gross work with processor fees? Your processor takes a fee before the deposit lands, so the deposit is smaller than the sale. Record the gross sale, book the fee as an expense, and the deposit ties. `/close-month` flags the gap between the sale and the deposit. You decide the split. ### Does /close-month handle accruals, prepaids, and depreciation? No. It reconciles and flags. Accruals, prepaids, and depreciation are judgment entries you record on top of the reconciliation. If you are not sure which your books need, ask your accountant. The close packet gives them what they need to advise you. ### What is in the close packet? A one-page summary for your accountant. It covers the period, the reconciliation result, the flags you cleared with your reasons, anything still open, and a note on anything unusual like a fee split or a recoded transfer. The reconciliation spreadsheet is the long-form backup behind it. ### Can Claude close my books automatically? No, and that is by design. `/close-month` reconciles and flags. It does not post the close on its own. You clear every flag and approve the result. It is a checklist helper, not an auto-close. ### Should I run /month-heads-up before I close? It is a good pairing. `/month-heads-up` looks forward at the next 30 days of cash and flags your tightest week. `/close-month` looks back and reconciles the month you just finished. Run the heads-up first, so you are not surprised by a cash crunch right after the books are done. ### Can I run the close on a schedule? Yes. Run `/close-month` once, type `/schedule` inside the task, and set it to repeat monthly. Scheduled tasks run with no device online. Anything that needs your sign-off waits for you the next time you open Claude. ### Does it remember last month's fixes? Only if you set it up to. A bare "work in a folder" session starts fresh each time. A Project carries files, instructions, and memory across sessions. Put a recurring client in a Project so your corrections stick. ### How is this different from Growthy for many clients? `/close-month` is a workflow tool: one folder, one session at a time. Growthy is built to run many client books at once. It connects to QuickBooks Online, uses pattern learning per client, and runs ten to thirty-plus client books with an audit trail. Both ask you to review before anything posts. Growthy just carries the volume Cowork was not built for. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* ### [Stripe Test Cards: 4242 Card Numbers, Declines & 3D Secure](https://growthy.com/blog/stripe-test-cards): Stripe test cards for every case: 4242 4242 4242 4242, 3D Secure, declines, fraud, disputes and refunds. Copy-ready test card numbers, verified against Stripe docs. You're wiring up a Stripe integration. You need to know it works before a real customer hits it. That's what stripe test cards are for. They're fake card numbers that trigger one exact result: a good charge, a decline, a 3D Secure prompt, or a fraud flag. No real money moves. Every card here is for Stripe's testing environments and your test API keys (`sk_test_…` and `pk_test_…`). Switch to your test environment. Pick a number below, and Stripe runs the exact case that card is built for. We show you where to grab those keys and where to paste them further down, in the "Where to paste your test cards" section. This page covers the main card types Stripe documents: working payments by brand, 3D Secure, declines by code, fraud and Radar, disputes, refunds, country cards, and the `pm_card_*` PaymentMethods. Every number below is copied straight from Stripe's own docs. ## What are Stripe test cards? Stripe test cards are fake card numbers built for test mode. Each number triggers one set result: a good charge, a decline, a 3D Secure prompt, or a fraud flag. The best-known one is `4242 4242 4242 4242`. Use any future expiry date, any 3-digit CVC (4 for Amex), and any ZIP code. No real money moves. > **What is a Stripe test card number?** > > A Stripe test card number is a fake card you use with Stripe's test API keys (`sk_test_…`/`pk_test_…`) in a testing environment. Each one triggers one exact result: a good charge, a decline, a 3D Secure prompt, or a fraud flag. The universal success card is `4242 4242 4242 4242` (Visa). It works with any future expiry date, any 3-digit CVC, and any ZIP code. Stripe documents dozens of these numbers, one for nearly every case you'd want to test before going live. None of them move real money. The Stripe Services Agreement prohibits testing in live mode with real card details. Test transactions settle instantly. In live mode, settling to your available balance can take multiple days. ## Key Takeaways - **The one card to memorize:**`4242 4242 4242 4242` is Stripe's universal Visa success card. Reach for it any time you just need a charge that works. - **CVC, expiry, and ZIP are throwaway values:** any 3-digit CVC (4 digits for Amex), any future expiry date, any ZIP code. A Stripe test card CVC is never checked against anything real. - **Test cards are for test mode only:** use them with your test API keys (`sk_test_…`/`pk_test_…`). The Stripe Services Agreement prohibits testing in live mode with real card details. - **The number picks the result:** decline codes, 3D Secure prompts, and Radar fraud flags each get their own card. Match the row to the case you're testing, not just the happy path. - **PaymentMethod tokens skip the raw number entirely:** pass`pm_card_visa` or a similar token as the`payment_method` value when you test at the API level. - **Keep test and live keys apart:** you can't process live payments while your integration still uses test API keys, so check which mode you're in before you paste anything into your checkout form. ## Grab-and-go: the test cards you'll copy most Here are the numbers you'll reach for again and again. Each block has a copy button, so you can grab the raw digits and paste them straight into your checkout form or API call. The full reference tables are further down. Visa, successful payment (the one to memorize): ``` 4242424242424242 ``` Mastercard, successful payment: ``` 5555555555554444 ``` American Express, successful payment (use a 4-digit CVC): ``` 378282246310005 ``` Generic decline: ``` 4000000000000002 ``` Insufficient funds decline: ``` 4000000000009995 ``` Requires 3D Secure authentication: ``` 4000002760003184 ``` PaymentMethod token for API tests (no raw number needed): ``` pm_card_visa ``` Expiry is any future date, CVC is any 3 digits (4 for Amex), and the ZIP is any value. These work only in test mode. The tables below cover every other card Stripe documents. ## Stripe test cards for successful payments (every brand) Use these test credit card numbers any time you need a charge that works, across every card network your customers might use, not just Visa. | Brand | Card number | CVC | | --- | --- | --- | | Visa | `4242 4242 4242 4242` | Any 3 digits. | | Visa (debit) | `4000 0566 5566 5556` | Any 3 digits. | | Mastercard | `5555 5555 5555 4444` | Any 3 digits. | | Mastercard (2-series) | `2223 0031 2200 3222` | Any 3 digits. | | Mastercard (debit) | `5200 8282 8282 8210` | Any 3 digits. | | Mastercard (prepaid) | `5105 1051 0510 5100` | Any 3 digits. | | American Express | `3782 822463 10005` | Any 4 digits. | | American Express (alt) | `3714 496353 98431` | Any 4 digits. | | Discover | `6011 1111 1111 1117` | Any 3 digits. | | Discover (alt) | `6011 0009 9013 9424` | Any 3 digits. | | Discover (debit) | `6011 9811 1111 1113` | Any 3 digits. | | Diners Club | `3056 9300 0902 0004` | Any 3 digits. | | Diners Club (14-digit) | `3622 720627 1667` | Any 3 digits. | | JCB | `3566 0020 2036 0505` | Any 3 digits. | | UnionPay | `6200 0000 0000 0005` | Any 3 digits. | | UnionPay (debit) | `6200 0000 0000 0047` | Any 3 digits. | | UnionPay (19-digit) | `6205 5000 0000 0000 004` | Any 3 digits. | See the [full list and current test-mode keys](https://docs.stripe.com/testing) on Stripe's site. ## 3D Secure test cards Need a 3D Secure test card? Some cards must pass 3D Secure under SCA rules. These numbers force each result on purpose, so your whole auth flow gets tested, not just the happy path. | Scenario | Card number | Behavior | | --- | --- | --- | | Requires authentication (SCA) on all transactions | `4000 0027 6000 3184` | Always prompts 3DS. | | Requires auth for off-session unless set up | `4000 0025 0000 3155` | 3DS unless saved for future use. | | Already set up for off-session | `4000 0038 0000 0446` | On-session needs auth; off-session succeeds. | | Auth required, then declined `insufficient_funds` | `4000 0082 6000 3178` | Authenticates, then declines. | | 3DS2 required, succeeds | `4000 0000 0000 3220` | Must complete 3DS2. | | 3DS2 required, declined after auth (`card_declined`) | `4000 0084 0000 1629` | Completes 3DS, then declines. | | 3DS supported but not required | `4000 0000 0000 3055` | Optional 3DS. | | Supports 3DS but not enrolled (no prompt) | `4242 4242 4242 4242` | Same as basic Visa. | | Does not support 3DS | `3782 822463 10005` | Amex, proceeds without auth. | See [how the 3D Secure flow works](https://docs.stripe.com/payments/3d-secure/authentication-flow) in Stripe's docs. ## Declined payments: test every decline code A generic decline card covers catch-all error handling in your checkout. To run a stripe declined card test for one exact reason, like `insufficient_funds` or `stolen_card`, use the matching row below. That tests the specific decline your code will hit, not a generic stand-in. | Scenario | Card number | Error code returned | | --- | --- | --- | | `generic_decline` | `4000 0000 0000 0002` | `card_declined` | | `insufficient_funds` | `4000 0000 0000 9995` | `card_declined` | | `lost_card` | `4000 0000 0000 9987` | `card_declined` | | `stolen_card` | `4000 0000 0000 9979` | `card_declined` | | `expired_card` | `4000 0000 0000 0069` | `expired_card` | | `incorrect_cvc` | `4000 0000 0000 0127` | `incorrect_cvc` | | `processing_error` | `4000 0000 0000 0119` | `processing_error` | | `incorrect_number` (fails Luhn) | `4242 4242 4242 4241` | `incorrect_number` | | `card_velocity_exceeded` | `4000 0000 0000 6975` | `card_declined` | | Attaches to Customer, then charge fails | `4000 0000 0000 0341` | `card_declined` | See the [full decline code list](https://docs.stripe.com/declines/codes) on Stripe's site. ## Fraud and Radar test cards These numbers trigger Stripe Radar's risk score and the AVS/CVC checks. Use them if your code reacts to a risk level or a check failure, like a manual-review queue. | Scenario | Card number | | --- | --- | | Always blocked (risk = highest) | `4100 0000 0000 0019` | | Highest risk | `4000 0000 0000 4954` | | Elevated risk | `4000 0000 0000 9235` | | CVC check fails | `4000 0000 0000 0101` | | ZIP / postal check fails | `4000 0000 0000 0036` | | Address line 1 check fails | `4000 0000 0000 0028` | | Both ZIP and line 1 fail | `4000 0000 0000 0010` | ## Dispute and chargeback test cards Use these to test your dispute logic, including the `charge.dispute.created` webhook, without waiting on a real chargeback. With default account settings, each charge succeeds and is then disputed. | Dispute type | Card number | | --- | --- | | Fraudulent (3DS-protected) | `4000 0000 0000 0259` | | Product not received | `4000 0000 0000 2685` | | Inquiry | `4000 0000 0000 1976` | | Early fraud warning | `4000 0000 0000 5423` | | Multiple disputes | `4000 0004 0400 0079` | ## Refund test cards (async outcomes) Refunds aren't always instant. These two cards test the pending-then-succeeds and succeeds-then-fails paths, through the `refund.updated` and `refund.failed` webhooks. | Scenario | Card number | | --- | --- | | Refund pending, then succeeds (`refund.updated`) | `4000 0000 0000 7726` | | Refund succeeds, then fails (`refund.failed`) | `4000 0000 0000 5126` | ## Country-specific test cards This is a sample, not the full list. For every country Stripe covers, use the link below. | Country | Card number | Brand | | --- | --- | --- | | United States | `4242 4242 4242 4242` | Visa. | | Canada | `4000 0012 4000 0000` | Visa. | | Mexico | `4000 0048 4000 8001` | Visa. | | Brazil | `4000 0007 6000 0002` | Visa. | | United Kingdom | `4000 0082 6000 0000` | Visa. | | France | `4000 0025 0000 0003` | Visa. | | Germany | `4000 0027 6000 0016` | Visa. | | Australia | `4000 0003 6000 0006` | Visa. | | India | `4000 0035 6000 0008` | Visa. | | Japan | `4000 0039 2000 0003` | Visa. | See the [full country list](https://docs.stripe.com/testing) on Stripe's site. ## PaymentMethod test tokens (no raw card numbers) Pass a PaymentMethod as the `payment_method` value instead of a raw card number when you write test code against the API. Stripe's own example is `pm_card_visa`, sent with a test secret key when creating a PaymentIntent. Same result as the matching card, no card number needed. - **Success by brand:**`pm_card_visa`,`pm_card_visa_debit`,`pm_card_mastercard`,`pm_card_amex`,`pm_card_discover`,`pm_card_diners`,`pm_card_jcb`,`pm_card_unionpay`. - **Declines:**`pm_card_visa_chargeDeclined`,`pm_card_visa_chargeDeclinedInsufficientFunds`,`pm_card_visa_chargeDeclinedLostCard`,`pm_card_visa_chargeDeclinedStolenCard`,`pm_card_chargeDeclinedExpiredCard`,`pm_card_chargeDeclinedIncorrectCvc`,`pm_card_chargeDeclinedProcessingError`,`pm_card_visa_chargeDeclinedVelocityLimitExceeded`. - **3D Secure:**`pm_card_threeDSecure2Required`,`pm_card_threeDSecureRequiredChargeDeclined`,`pm_card_threeDSecureOptional`,`pm_card_authenticationRequired`. - **Disputes:**`pm_card_createDispute`,`pm_card_createDisputeProductNotReceived`,`pm_card_createDisputeInquiry`. - **Fraud:**`pm_card_radarBlock`,`pm_card_riskLevelHighest`,`pm_card_riskLevelElevated`,`pm_card_cvcCheckFail`,`pm_card_avsZipFail`. - **Where to find more:** every card table on Stripe's testing page has a "PaymentMethods" tab next to "Card numbers", with the PaymentMethod for each scenario. - **Why bother:** Stripe doesn't recommend using card numbers directly in API calls or server-side code, even in testing environments. If you do, your code might not be PCI-compliant when you go live. - **Default behavior:** a PaymentMethod isn't attached to a Customer by default. Older tokens use `tok_` (for example `tok_visa`, `tok_visa_chargeDeclined`). Most tables on Stripe's page also have a "Tokens" tab for older integrations built on tokens. New test code is better served by PaymentMethods, per the PCI note above. ## Where to paste your test cards (test keys and setup) Stripe card testing uses your test API keys, never live ones. You get a publishable key and a secret key for testing, and they start with `sk_test_…` (secret) and `pk_test_…` (publishable). When you're ready to go live, you replace both test keys with live ones. Never mix test and live keys in the same setup. You can't process live payments while your integration still uses test keys. And a live key sitting in what you think is a test run is how a real charge slips through. Store live keys in a secrets vault or environment variables, not in source code. Once you're in test mode, enter any card number from this page in the Dashboard or in any payment form. Same screen your real customers see, fake number, exact result. Test transactions settle instantly and land in your available test balance. In live mode, settling to your available balance can take multiple days. One rule doesn't bend: don't use real card details to test, even to "just check" something. The Stripe Services Agreement prohibits testing in live mode using real payment method details, and a real card won't show you anything a test card can't already show. See [test-mode keys and the full setup steps](https://docs.stripe.com/testing) on Stripe's site. ## Frequently asked questions Quick answers to what people ask most about stripe test cards, straight from Stripe's own docs. ### Are Stripe test cards real card numbers? No. They're numbers Stripe reserves for testing, tied to no real account and no real person. They only work with test-mode keys, and they never move money. Nothing in test mode settles to a real account, on either side. Test mode exists so you can run every case without moving a dollar. The best-known one is `4242 4242 4242 4242`, the standard Visa success card used all through this guide. ### What is the Stripe test card 4242 4242 4242 4242? It's Stripe's universal Visa success card. Pair it with any future expiry date, any 3-digit CVC, and any ZIP code, and the charge goes through. Use it with your test API keys (`sk_test_…` and `pk_test_…`), not live ones. Reach for it any time you just need a payment that works, before you test the harder cases. ### What CVC and expiry do I use for a Stripe test card? Any future date works (for example `12/34`), any 3-digit CVC (4 digits for American Express), and any ZIP or postal code. Stripe doesn't check these against anything real in test mode. They're throwaway values, so you can type whatever is easy to remember when you test your checkout form. ### Can I use my own card in Stripe test mode? No. Stripe says not to use real card details for testing, and the Stripe Services Agreement prohibits testing in live mode with real payment method details. Use test keys with test cards, and live keys with real cards. Live-mode charges move real money. Test-mode charges never do. You also can't process live payments while your integration still uses test keys. ### How do I test a declined payment with a Stripe test card? Use `generic_decline`, `4000 0000 0000 0002`, for a catch-all decline. To test one exact reason, like `insufficient_funds`, use the matching row instead: `4000 0000 0000 9995` triggers `insufficient_funds` on the nose. Test several cards, because your real customers won't all hand you the same one. They'll pay with Visa, Mastercard, Amex, and Discover, and some will get declined, trigger 3D Secure, or trip a fraud rule. One card, one happy path, leaves every one of those cases unchecked. ### What are the Stripe 3D Secure test cards? `4000 0027 6000 3184` always prompts 3D Secure, no matter what. To test auth that only fires for off-session charges unless the card was saved first, use `4000 0025 0000 3155` instead. The 3D Secure table above lists every case, including 3DS2 that succeeds and 3DS2 that declines after auth. ### Where can I find the full official list of Stripe test card numbers? Stripe's own testing page at [docs.stripe.com/testing](https://docs.stripe.com/testing) is the source, and it covers more country cards and edge cases than fit on this page. This guide sorts and links back to that list. Stripe's docs stay the last word. Use this page to grab the common numbers fast, and Stripe's page for anything not listed here. ## Where Growthy fits in Get your checkout working, and money starts moving for real. It doesn't land as line items, though. It lands as one net payout. Picture a made-up example: a single $3,847.92 deposit that's actually 47 charges minus 3 refunds minus $127 in fees, all bundled together. Matching that number back to the sales, refunds, and fees behind it is a real bookkeeping problem, and it's not one this guide tries to solve. This guide comes from Growthy. We build bookkeeping software that pulls bank feeds through Plaid, scores its confidence on each categorization, and syncs categories both ways with QuickBooks Online. You review the low-confidence ones. For how the [Stripe fees hit your chart of accounts](https://growthy.com/blog/stripe-fees-chart-of-accounts), why [one payout isn't one sale](https://growthy.com/blog/stripe-payouts-vs-individual-transactions), and what to do when [your deposits don't match your sales](https://growthy.com/blog/stripe-deposits-dont-match-sales), start with our [Stripe bookkeeping guide](https://growthy.com/blog/stripe-bookkeeping). Past testing and into real revenue? [Get started with Growthy](/signup?utm_content=stripe-test-cards). --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* ### [How to Evaluate AI Categorization Tools: A Bookkeeper's Checklist](https://growthy.com/blog/evaluate-ai-categorization-tools-bookkeepers): An 11-point checklist for evaluating any AI categorization tool: accuracy methodology, review queues, audit trails, pricing, and migration risk. You've clicked "categorize" 500 times this week. Your cursor is tired. Somewhere in that pile sits a $3,847.92 Stripe deposit. It doesn't match any invoice. You still have to figure out where it goes. (This is an illustrative example, not a real client transaction.) Every AI bookkeeping tool promises to fix this. Most demos look great. A vendor walks you through ten clean transactions. The categories snap into place. You nod along. Then you load your real client mix: split payments, refunds, owner draws, and that one vendor who bills under three different names. Consider this your AI bookkeeping tool evaluation guide: a checklist you can run against any tool, not just Growthy. It skips the demo and goes straight to the questions that predict whether a tool holds up on real books. The goal isn't a tool that replaces your judgment. The goal is a tool that handles the easy 80% and hands you the hard 20% to review yourself. > **What should you look for when evaluating an AI categorization tool for bookkeeping?** > > Look past the headline accuracy number. Ask how it was measured: whose books, what time window, how many transactions. Ask if accuracy climbs on returning clients. Ask if low-confidence transactions get flagged for review, or silently guessed. A tool with 85% first-import accuracy that flags its own uncertainty beats one advertising a 96% headline number with no review queue. Check the audit trail, the export path, and the pricing model before you hand over a client's books. ## Key Takeaways - **First-import accuracy needs a stated measurement window.** A tool that can't tell you whose books, what time period, and how many transactions its number came from is marketing, not data. - **Accuracy should climb on returning clients.** Real pattern learning shows a gain after 30 or more days on the same book, often reaching 90% or higher. A number that never moves is a bad sign. - **A review queue beats silent guessing.** Confidence flagging keeps a missed transaction from becoming your problem at tax time. - **Audit trails make categorization defensible.** If you can't see why a transaction landed where it did, you can't explain it to a client or an auditor later. - **Pricing models punish different business shapes.** Per-seat pricing hurts firms scaling client count. Per-company pricing hurts solo bookkeepers with a few large clients. - **Export format decides your exit cost.** Test how hard it is to get data out. Do this before you decide how easy it was to get data in. ## Why a checklist beats a demo A demo shows you a tool's best day. Ten clean transactions. A friendly walkthrough. Categories snapping into place on cue. It tells you nothing about your real client mix: split payments, partial refunds, an owner draw disguised as a vendor bill. The real test happens at transaction 501, not transaction 10. That's where accuracy claims hold up, or fall apart. That's also where you learn if a tool flags what it doesn't know, or just guesses and moves on. A checklist forces a fair comparison, too. Without one, you compare a slick sales call from one vendor against a rough beta login from another. The smoother pitch usually wins, even when it shouldn't. A written checklist keeps the questions the same while the tools change. Some argue a single high accuracy percentage is proof enough that a tool works. In practice, a static number tells you nothing about your specific client mix, how the tool behaves on the transactions it hasn't seen before, or what happens when it's unsure. To evaluate AI categorization tools properly, you need more than one number. The 11 criteria below test for that, not just the headline figure. If you want the fuller picture behind this checklist, read our breakdown of [AI accounting software](https://growthy.com/blog/ai-accounting-software). The 11 questions below are the fast version: what to check before you sign anything. ## The 11-point evaluation checklist Run each question below against any tool you're considering, including Growthy. Want to compare specific named tools side by side? Our [rundown of the best AI bookkeeping tools in 2026](https://growthy.com/blog/best-ai-bookkeeping-tools-2026) pairs well with this checklist. ### 1. First-import accuracy methodology Ask the vendor how they measured their headline number. Whose books? What date range? How many transactions? A vendor reporting 85% first-import accuracy on real client books, over a stated month, is more trustworthy than one stating a round number with no method behind it. Push for the method, not just the percentage. ### 2. Returning-book learning Does accuracy improve the longer a tool works on the same client's books? Real pattern learning should show a gain after 30 or more days on a returning book. Accuracy often reaches 90% or higher once the tool has learned that client's vendor list and habits. Ask the vendor to explain this gain in plain terms, not buzzwords. A flat number that never moves is a warning sign. ### 3. Confidence handling Does the tool tell you when it's unsure? Or does it silently pick a category and move on? A tool that flags a low-confidence guess, on a vendor it has never seen before, is being honest about its limits. A tool that force-categorizes everything the same way hides its mistakes inside your ledger. You won't find them until reconciliation. ### 4. Review queue Ask to see the actual triage queue. Don't just take the vendor's word that one exists. A working review queue puts uncertain transactions in one place, sorted so the oldest or highest-dollar items surface first. Otherwise those transactions scatter through your general ledger for you to find later. If the vendor can't show you a real queue on a real screen, treat "we flag low-confidence items" as an unproven claim. ### 5. Audit trail Can you click into any categorized transaction and see why it landed there? If a client or an auditor asks you to defend a category months from now, "the software did it" isn't an answer. You need a visible reason attached to the transaction. ### 6. QBO/Xero workflow-layer mode Some tools sit on top of your existing QuickBooks Online or Xero ledger instead of replacing it. That matters, because QBO's own native categorization runs around 50% accuracy. One bookkeeper we work with calls it "optimistically random." A workflow layer needs to clear that bar by a wide margin to earn its place in your stack. ### 7. Standalone-ledger mode Other tools aim to be the book of record on their own, without QBO or Xero underneath. That's a different buying decision. If you're weighing this option, read our [comparison of AI bookkeeping tools versus traditional outsourced bookkeeping](https://growthy.com/blog/ai-bookkeeping-vs-bench-pilot) before you commit a client's books to a standalone system. ### 8. Multi-client workflow A tool that runs cleanly on one demo company file might buckle at 10, 20, or 30-plus client books running at once. Ask about client isolation: can one client's rules bleed into another's books? Ask how batch imports handle multiple bank feeds at once. Ask if switching between client books slows you down during a busy week. ### 9. Pricing model Per-seat pricing charges you for every team member with access. Per-company pricing charges per client book instead. Each model rewards a different firm shape. Per-seat pricing punishes a firm adding client volume with a small team. Per-company pricing punishes a solo bookkeeper serving a few large clients. Know which one fits your business before you sign a multi-year contract. Ask what happens to pricing when you add or drop a client mid-year. ### 10. Migration risk Getting data into a new tool is usually easy. Getting it back out, in a format you can actually use, is the harder question. Ask for a sample export file before you migrate a single client's books. Check whether the export includes your full categorization history, or just a raw transaction list you'd have to rebuild from scratch. ### 11. Honest limits No categorization tool sends invoices, chases late payments, or removes the need for your review. Be cautious of any vendor who implies otherwise. For context: a generic large language model like GPT-5 categorizes around 70 to 71% out of the box. Marketing claims in this space are easy to state and hard to verify. Ask what a tool doesn't do before you ask what it does. ## How the two modes change your checklist Criteria 6 and 7 above point at the real fork in this decision: a workflow layer over QBO or Xero, or a standalone ledger that replaces it. If you're staying on QBO or Xero, weight criteria 1, 2, and 6 the heaviest. Your baseline is QBO's own ~50% native categorization. A workflow layer needs to clear that bar clearly, and keep improving as it learns your returning clients. If you're considering a standalone ledger, weight criteria 7, 9, and 10 the heaviest. You're not just adding a tool. You're picking a new book of record. Pricing and migration risk matter more here. Switching back later is a bigger project than canceling a subscription. Either way, criteria 3, 4, 5, and 11 (confidence handling, review queue, audit trail, and honest limits) apply no matter which mode you're evaluating. ## Red flags and honest limits Walk away from a vendor who won't name the measurement window behind their accuracy number. A percentage with no stated books, date range, or sample size is a marketing line, not a data point. Walk away from a tool with no review queue at all. If every transaction gets force-categorized with no flag for uncertainty, the errors just wait for you to find them later. Usually at tax time. Walk away from any vendor who implies their tool replaces your judgment entirely. The honest pitch for any categorization tool, including Growthy, is that it handles the easy 80% so you can spend your time on the hard 20% and on the client relationship itself. If a vendor tells you it eliminates review, ask them to put that claim in writing. ## See it work on your own books The fastest way to run this checklist is against your own client files, not a demo company. Growthy runs a first-import accuracy check on real client books during setup. You see your actual number before you commit anything. For more on where AI fits into a bookkeeping or accounting practice, see our [AI for accountants hub](https://growthy.com/topics/ai-for-accountants). [Book a demo](/signup?utm_content=blog-02) and bring your messiest book. That's the one worth testing against. --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How Accurate Is Auto-Categorization? Honest Numbers](https://growthy.com/blog/auto-categorization-accuracy-honest-numbers): See the real accuracy numbers behind AI auto-categorization: 85% on first import and on returning books, and where a bookkeeper's review still matters. Julia Eskander is a CPA. She reviews client books for a living. She says she's constantly finding gross errors made by AI. She's skeptical, but open. That's the right posture for anyone deciding whether to trust software that categorizes transactions on its own. Most vendors answer the auto categorization accuracy question with one round number and a smile. This piece answers it with the real ladder. It covers what different tools actually hit, how Growthy's own number is measured, and where the software still needs you. No inflated claims. Just the numbers. > **How accurate is auto-categorization?** > > It depends on the tool and the books. QuickBooks Online's native rule-matching runs around 50%. That's close to a coin flip. A generic large language model like GPT-5 gets to roughly 70-71% with no training on your specific books. Growthy hits 85% on first import, before it's learned anything about your business. On returning books, Growthy's accuracy holds at that same 85%. That's the number we publish. Nobody serious should claim 95% or 100%. ## Key Takeaways - **85% first-import accuracy** is Growthy's baseline the day a new client's books connect, before any pattern learning on that client's books has happened. - **One number for new and returning books.** Growthy publishes 85% for returning books too, so there's no qualifier to lose. - **A confidence score isn't an accuracy score.** The system can be very sure and still wrong. - **Roughly 15% of transactions stay difficult.** How many need a human eye depends on the confidence threshold you set. - **QBO's native categorization runs about 50%.** A generic LLM like GPT-5 lands around 70-71% with no context on your books. - **Review never fully goes away.** At 85%, a bookkeeper still checks the queue. ## What 85% first-import accuracy actually means The 85% figure comes from Bobby Huang's own dogfood data. Bobby is a partner at SDO CPA LLC. He's not a CPA himself. He ran the comparison on his firm's own books and Growthy's books during a March 2026 window. At that point the system had learned nothing about either business yet. First import means exactly that. Day one. Cold start. No history. Growthy has never seen this client's vendors, categories, or quirks before. It's working from patterns learned across many books, not this specific one. That's a different measurement than a steady-state number collected after months of use. Mixing the two is how marketing claims get inflated. For contrast, Digits advertises 96% accuracy. That's their claim. We're not going to compete on that number. We can't verify how they measured it, and an unqualified 95%+ figure doesn't match what real categorization work looks like on messy books. A first-import number like 85% is lower. It's the number we can actually stand behind. Take a transaction like a $3,847.92 Stripe deposit that doesn't match any invoice in the system. This is an illustrative example, not a real client record. On first import, that's exactly the kind of line item that can trip up any categorization engine. Human or software, there's no history to draw on yet. The 85% number also tells you something about scope. It's measured across a full month of real transactions, not a cherry-picked sample of easy ones. Recurring subscriptions and simple vendor payments are usually easy. Odd deposits, split transactions, and one-off vendors are the ones that pull the average down. An honest first-import number has to include all of it, not just the easy ones. ## What happens on returning books Here's where pattern learning matters. Growthy isn't training a brand-new model on your data. It's building a working memory of how a specific set of books behaves. That means which vendor names map to which categories, which recurring charges are subscriptions versus one-time purchases, and how this business tends to code its own transactions. On returning books, accuracy holds at about 85%. What changes is the repeat work: once a client's patterns are in place, you correct the same vendor or recurring charge far less often. We publish one number for first import and returning books, so it doesn't need a qualifier to stay honest. It doesn't reach 100% because some transactions will always need judgment that only a person can supply. Compare that against the other end of the spectrum. QBO's native rule-based categorization runs around 50%. One bookkeeper, Natalia P., called it "optimistically random." A generic LLM like GPT-5, with no training on your books at all, lands around 70-71%. Patterns learned across many other books are the difference between those numbers and 85%, since the first-import figure comes before Growthy has seen your specific books. Outsourced human bookkeeping lands around 80%, used cautiously as a comparison point. That number moves with the person doing the work and how many clients they juggle at once. It's a useful middle marker. Growthy's 85% sits above it, and review still applies. ## Confidence is not accuracy Skeptics like Julia are right to push back here. A system can look certain and still be wrong. A confidence score tells you how sure the system is. It doesn't tell you whether the system is right. A raw bank string like "ACH PAYMENT 847293847 WEB" can pattern-match cleanly to a category the system has seen before. The system can report high confidence on that match. But a clean pattern match isn't the same as a correct one. The string might belong to a vendor the system has never actually verified. It might just resemble a familiar pattern closely enough to trigger a confident guess. That gap, between "the system is sure" and "the system is correct," is exactly why review stays part of the workflow. A confident wrong answer is more dangerous than an uncertain one. It doesn't ask for a second look. Think about how this plays out over a full month of books. A low-confidence guess gets flagged and lands in front of a bookkeeper. A high-confidence wrong guess slides straight through, unless someone happens to spot it later during reconciliation. That's why a bookkeeper's spot-checks matter even on transactions the system marked as certain, not just the ones it flagged as uncertain. ## The difficult 15%: which transactions stay human Not every transaction is equally hard. The hard ones tend to repeat. A few patterns show up again and again in the categories that need a person: - The $3,847.92 Stripe deposit that doesn't match any invoice on file (illustrative example). - Raw bank strings with no vendor context, like "ACH PAYMENT 847293847 WEB," where the description alone isn't enough to work from. - Clearing accounts that never return to zero. This usually signals a miscoded transaction sitting somewhere in the chain. A number like "13 out of 247 need you" gets used sometimes to describe this slice. It's worth saying plainly: that ratio is threshold-dependent. Set the confidence bar higher and more transactions get flagged for review. Set it lower and fewer do, at the cost of more silent errors. There's no single fixed rate. The rate moves with where you set the line. ## Why review never fully goes away Growthy doesn't replace a bookkeeper's judgment. It doesn't send invoices, run collections, or remove the need for someone to check the work. Even at 85%, a share of transactions still needs a person to make the call. That's by design, not a shortfall to apologize for. The honest version of this story is simple. Growthy's published accuracy is 85%, not 100%. The bookkeeper stays the judgment-holder. Software handles the repeatable pattern matching so a person can spend their attention on the transactions that actually need it. ## Frequently asked questions ### Is auto-categorization accurate enough to trust? On first import, plan on roughly 85%, and plan on the same 85% for returning books. Either way, budget time to review the flagged transactions. Don't assume a clean pass. ### What does 85% first-import accuracy mean in practice? Out of every 100 transactions on a brand-new set of books, about 85 get categorized correctly on the first pass. That's before the system has learned anything specific about that business. ### Why isn't the number higher, like 95% or 100%? Some transactions genuinely need judgment a system can't supply on its own. Think of an unmatched deposit or an ambiguous bank description. Growthy publishes one number, 85%, and doesn't claim more. For the buying-decision side of these numbers, read the companion [checklist for evaluating AI categorization tools](https://growthy.com/blog/evaluate-ai-categorization-tools-bookkeepers). If you run client books and want to see where Growthy's numbers land on your own data, [get started](/signup?utm_content=blog-06) and bring a messy month. You'll also want to read how [automated expense categorization](https://growthy.com/blog/automated-expense-categorization) handles the mechanics behind these numbers, and how Growthy fits into the broader picture of [AI for accountants](https://growthy.com/topics/ai-for-accountants). For a wider look at how AI accounting software claims stack up against each other, see [AI accounting software](https://growthy.com/blog/ai-accounting-software). --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [ChatGPT's New Finances Tab: Can Bookkeepers Use It for Client Books?](https://growthy.com/blog/chatgpt-personal-finance-bookkeeping): ChatGPT's Finances tab reads your own accounts via Plaid and tracks spending. It doesn't keep books. The honest answer for bookkeepers and founders. OpenAI put a Finances tab inside ChatGPT, and the question hit every bookkeeper group chat within a day: can I run client books through this? Short answer: no. And that's not a knock on the feature. As of July 2026, the ChatGPT Finances tab is a genuinely useful personal-finance dashboard. It syncs your accounts, tracks spending, flags subscriptions, and answers money questions in plain English. It's just built for a different job than the one bookkeepers get paid for. So here's the honest ChatGPT personal finance bookkeeping answer, from a team that builds accounting software and keeps books. We'll cover what the tab does today, why it isn't client bookkeeping, where it truly helps, and the business-grade path from an AI to a ledger. > **Can bookkeepers use ChatGPT's Finances tab for client books?** > > No. The Finances tab is a personal-finance dashboard, not a bookkeeping tool. As of July 2026, it connects accounts you own through Plaid's network of 12,000+ financial institutions. It's open to Plus and Pro subscribers in the US. It categorizes transactions for spending insight: subscriptions, budgets, upcoming payments. There's no chart of accounts, no journal entries, no book of record, and nothing syncs back to QuickBooks Online or Xero. Connecting client books to an AI is a different door entirely: the MCP route, plus software that owns the bookkeeping workflow. ## Key Takeaways - **It's a personal-finance dashboard.** As of July 2026, the ChatGPT Finances tab syncs accounts you own via Plaid (12,000+ institutions) and tracks spending, subscriptions, and upcoming payments. Plus and Pro plans, US only. - **You can't connect client accounts.** Plaid connections are single-owner. A bookkeeper can't link 18 clients' banks into a consumer chat app, and shouldn't try. - **Categorization here isn't bookkeeping.** It sorts spending for insight. No chart of accounts, no debits and credits, and nothing syncs back to QBO or Xero. - **It's still worth recommending.** Founders get a feel for their own cash patterns, and clients who use it for personal money hygiene make the business-versus-personal talk easier. - **Watch the Intuit thread.** Intuit support is "coming soon," alongside tax estimates and live tax-expert sessions inside ChatGPT. - **The business door is MCP.** Connecting books (not a bank login) to ChatGPT or Claude runs through the QuickBooks Online MCP route, with software that owns the bookkeeping workflow doing the clicking. ## What the ChatGPT Finances tab actually does The facts first, dated, because this feature is moving fast. OpenAI launched Finances as a preview for Pro users on May 15, 2026. Since June 25, 2026, it's available to both Plus and Pro subscribers, US only, on web, iOS, and Android. You connect bank, credit card, and investment accounts through Plaid. That network covers 12,000+ financial institutions. Support for Intuit accounts is listed as coming soon. Once connected, the tab becomes a live dashboard. It shows portfolio performance, spending by category, subscriptions, and upcoming payments. It syncs on its own and categorizes what comes in. Ask it why your food spending jumped, and it answers from your actual numbers. It also keeps "financial memories," a dedicated memory type you can view and delete from the Finances page. Under the hood, Finances defaults to GPT-5.5 Thinking. That model scored 79 out of 100 on OpenAI's internal personal-finance benchmark, graded with input from 50+ finance professionals. GPT-5.5 Pro scores 82.5. The access model is read-only. ChatGPT can't see your full account numbers and can't make changes to your accounts. Disconnect any time in Settings > Apps > Finances. Synced data is then deleted from OpenAI's systems within 30 days. Your conversation history stays, and those chats follow your own model-training data-controls setting. For what it's built to do, it's good. OpenAI itself frames it as personal finance and says it's not a replacement for professional financial advice. ## Why it isn't client bookkeeping One might assume a tool this good at categorizing is most of the way to doing books. In practice, the gap is structural. Three reasons, all true as of July 2026. None of them are secret flaws. They're just what the product is. ### One owner, one login: the Plaid problem Plaid connections in ChatGPT are personal. You link accounts you own, verified as you, on your subscription. If you came here searching for a ChatGPT Plaid bookkeeping setup for your client roster, this is where it ends. There's no path to link 18 clients' bank accounts into your ChatGPT. And you shouldn't want one. Holding client bank credentials inside a consumer chat app is a professional-liability problem, not a productivity hack. There's no engagement letter that covers it, no client-level permissions, and no audit trail. Even the privacy control that matters most, the model-training toggle, is a personal setting on the user's own account. You can't manage it at the engagement level for a client. ### Categorizing for spending isn't keeping books The Finances tab categorizes transactions, and bookkeepers categorize transactions. Same word, different job. ChatGPT sorts your spending into buckets so you can see patterns: subscriptions, travel, dining, recurring bills. That's spending insight. Bookkeeping is a system of record. It needs a chart of accounts, debits and credits, journal entries, and a ledger that ties out. The Finances tab has none of that. Nothing it categorizes syncs back to QuickBooks Online or Xero. Your client's books don't know the tab exists. ### No multi-entity, no close, no reports a CPA signs The dashboard is one person's financial picture. There's no client isolation and no way to wall off entity A from entity B. There's no concept of a period close either. You can't reconcile against a bank statement, and you can't hand its output to a CPA as anything more than a talking point. No P&L, balance sheet, or trial balance a professional would sign comes out of it. That's not a bug list. It's the difference between a personal dashboard and a book of record. ## Where it actually helps Here's the non-dunking part, because the feature earns it. If you're a founder doing your own books, connecting your own accounts is a fast way to get a feel for your cash. Seeing subscriptions you forgot about and payment timing in one view is real value, especially in the messy first year. Just know what you're looking at: spending insight on accounts you linked, not books. If you run business and personal through the same checking account, a slick dashboard won't fix that. It might even hide it. If you're a bookkeeper, the Finances tab is worth recommending to clients for their PERSONAL money. A client who watches their own subscriptions and spending patterns starts to understand why you keep asking about that Amazon charge. The business-versus-personal talk gets easier, because now they can see the mess on their side of the line. ChatGPT already earns a place in a bookkeeping workday for drafting, explaining, and checklists. We keep a working set of [ChatGPT prompts for bookkeepers](https://growthy.com/blog/chatgpt-prompts-for-bookkeepers) that covers what it does well without touching the books. ## The Intuit signal One thread in OpenAI's announcement is worth flagging on its own. Intuit support for account connections is "coming soon." OpenAI's published examples go further: asking about a credit card leads to a recommendation, approval odds, and an application. Asking about the tax hit of selling stock leads to "a trusted tax estimate and scheduling a session with a live, local tax expert, powered by Intuit and all inside ChatGPT." That's the QuickBooks and TurboTax company building consumer finance and tax services inside ChatGPT itself. What it becomes for business accounting, nobody outside those companies knows. If you make your living in books or tax, it's a signal to watch, stated plainly, as of July 2026. Intuit is reshaping its professional side too — it’s discontinuing QuickBooks Online Accountant, and our breakdown of [what the Intuit Accountant Suite change means for firms](/blog/quickbooks-online-accountant-discontinued) covers the timeline. ## The business door: your books, not your bank login So what does connecting an AI to actual books look like? Different door. Instead of linking a bank login through Plaid, you connect the ledger itself. The AI can then read your chart of accounts, transactions, and reports. That's the MCP route, and we wrote the full walkthrough: [how to connect QuickBooks Online to ChatGPT](https://growthy.com/blog/connect-quickbooks-online-to-chatgpt). It covers the read-only and read-write options and the security calls that come with them. But an AI that can read your books still leaves the daily grind: the clicking. Categorize, next, categorize, next, 500 times before lunch. That's the job Growthy exists for. Growthy is 85% accurate on first import. You review the rest. When it isn't sure, it asks instead of guessing. The point isn't ChatGPT versus Growthy. The Finances tab competes with your budgeting app. Growthy competes with your Tuesday afternoon. ## Frequently asked questions ### Can I use ChatGPT's Finances tab for my business? Partly. As of July 2026, it connects accounts you own through Plaid, so a founder can link a business checking account and watch cash patterns. But it won't keep books. There's no chart of accounts, no journal entries, and no sync to QuickBooks Online or Xero. Treat it as insight, not records. ### Is the ChatGPT Finances tab safe? The access model is read-only. ChatGPT can't see full account numbers and can't make changes to your accounts. If you disconnect in Settings > Apps > Finances, synced data is deleted from OpenAI's systems within 30 days. Conversations follow your own model-training data-controls setting, so check that toggle before connecting anything. ### Can bookkeepers connect client accounts to ChatGPT? No. Plaid connections are single-owner, tied to your identity and your subscription. There's no multi-client structure, no engagement-level controls, and no audit trail. Putting client bank credentials into a consumer app creates liability without creating books. ### What's the difference between the Finances tab and connecting QuickBooks to ChatGPT? The Finances tab is a Plaid bank feed for personal spending insight. Connecting QuickBooks is an MCP link that reaches the ledger itself: accounts, transactions, and reports. You control read-only or read-write scope. One watches your money. The other reaches your books. ## Two different doors The ChatGPT Finances tab is good news, honestly. More people watching their own money means better clients. That's ChatGPT personal finance bookkeeping in one line: personal money goes in the tab, client books go through a different door. The business door is connecting the books themselves, and then having something that does the clicking once the AI can see them. For the model-choice side of that question, we've compared [ChatGPT vs Claude for accounting](https://growthy.com/blog/chatgpt-vs-claude-for-accounting) and [Claude vs ChatGPT for bookkeeping](https://growthy.com/blog/claude-vs-chatgpt-for-bookkeeping) in detail. > **See what the business door looks like on your own client books.** Growthy is 85% accurate on first import. You review the rest. [Get started with Growthy](https://growthy.com/signup/?utm_content=chatgpt-personal-finance-bookkeeping). --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* ### [QuickBooks Online Accountant Is Going Away: Do You Have to Pay for Intuit Accountant Suite?](https://growthy.com/blog/quickbooks-online-accountant-discontinued): QuickBooks Online Accountant ends December 31, 2026. Core stays free; only Accelerate and Books Close bill, starting January 20, 2027. Click-by-click steps to stay on the free plan, and when moving a client elsewhere makes more sense. QuickBooks Online Accountant is being retired. Intuit Accountant Suite replaces it, and there's no version of this where your firm stays on the old console past the end of 2026. Most firm owners already know it's happening. What they want is the bill. Short answer: nothing, if you do two or three specific things before January 19, 2027. The base tier is free. Two add-ons are not, and they start billing the day after that. This page is the click-by-click version. Where the free plan lives, who on your team is allowed to change it, what the upsell screen looks like, and what happens if nobody at your firm touches any of it. QBOA has been the daily home base for a large share of independent bookkeeping and tax practices, and it has held that spot for more than a decade. A platform change that size deserves the actual dates and the actual dollar figures rather than the summary in the announcement email. This page covers the deadlines, the two tiers, the per-client add-on that changes firm economics at scale, the partner-program overhaul, and what all of it means for how much of your practice sits inside one vendor's roadmap. > **Is Intuit forcing firms onto Intuit Accountant Suite, and do you have to pay?** > > Yes to the first. No to the second. QuickBooks Online Accountant is discontinued on December 31, 2026, so every firm ends up on Intuit Accountant Suite. But the base tier, Core, is free and stays free. Two things bill: Accelerate and Books Close. Both are free in beta through January 19, 2027, and billing starts January 20, 2027. If you activated a paid beta and do nothing by January 19, Intuit switches you to free Core with your data intact. To stay free on purpose, a primary admin opens Settings, goes to Subscription Summary, and downgrades to Core before that date. Watch for the 60-day billing notice Intuit sends to primary admins. ## Key Takeaways - **QBOA is discontinued December 31, 2026** - every firm moves to Intuit Accountant Suite. There's no published way to stay on the classic console past that date. - **Core is free and keeps your clients, data, and access** - Intuit's own FAQ says core features remain free. Accelerate and Books Close are the paid pieces. - **The beta ends January 19, 2027** - Accelerate and Books Close are free until then. Billing starts January 20, 2027. - **Do nothing and you land on free Core** - if you're on a premium beta with no action by January 19, 2027, Intuit auto-switches you to Core. Data stays intact, nothing is lost. - **Staying free takes one admin and a few clicks** - Settings, then Subscription Summary, downgrade to Core, and choose "Continue without Books Close" on the upsell screen. - **Only a primary admin can do it** - firm subscriptions can't be changed by anyone else, so find out today who holds that role. ## The Dates That Matter Four dates, and one suggestion Intuit makes on top of them. | Date | What happens | | --- | --- | | December 31, 2026 | QuickBooks Online Accountant is discontinued | | Before January 15, 2027 | Intuit suggests finishing your migration before this point, so it doesn't collide with busy season | | January 19, 2027 | The free beta for Accelerate and Books Close ends | | January 20, 2027 | Billing starts for Accelerate and Books Close | The January 15 note is the one firms skip. If your practice also prepares returns, the back half of January is the worst possible window to be learning a new admin console and reading a new billing screen at the same time. Move it into December. Source: Intuit's Tax Pro Center walkthrough, [Switching from QuickBooks Online Accountant to Intuit Accountant Suite](https://accountants.intuit.com/taxprocenter/practice-management/switching-from-quickbooks-online-accountant-to-intuit-accountant-suite/). One clarification before anything else, because firms get this backwards and panic. This change is about the accountant-side admin platform, QBOA itself. It is not about your clients' individual QuickBooks Online subscriptions. Client-facing QBO stays QBO. Their files, their logins, and their billing are untouched. What changes is the console your firm uses to reach and manage those client files, plus the pricing tiers and partner program wrapped around it. You do not need to send a client-facing email about this, and you should not. There's also a difference between moving on your own schedule and letting a date move you. A deliberate switch lets you pick your tier, pick the week, and brief your team beforehand. The default path lands you on free Core, which is a perfectly good outcome if Core is what you wanted anyway. It's a worse outcome if your firm actually wanted Accelerate for the staff-management tools, because you'll still have to go in and upgrade manually, just later, with less time to train anyone. Depending on where your firm sits today, the useful next step looks different: | Your situation | What to do before the deadlines | | --- | --- | | Comfortable staying on Core | Confirm you're on Core in Subscription Summary and move on. Nothing bills. | | Activated Accelerate or Books Close during the beta | Decide by January 19, 2027 whether you're keeping either one. Downgrade in Subscription Summary if not. | | Want Accelerate for staff or client-insight tools | Check your actual price in Subscription Summary, then model 12 months of it before January 20, 2027. | | Running multiple QBOA consoles | Treat Console Consolidation as its own decision, separate from the platform move. It isn't required to complete the switch. | | Considering leaving QuickBooks entirely | Pilot an alternative on two or three clients now, while nothing is billing and nothing is urgent. | ## How to Stay on the Free Plan (and Not Get Charged) If your firm never activated a paid beta, there's very little to do. If you did activate Accelerate or Books Close during the free window, this is the part that keeps an invoice from showing up on January 20. 1. **Watch for the 60-day billing notice.** Intuit sends it to primary admins before billing begins. If that email is going to someone who left the firm or to a shared inbox nobody reads, fix that first. It is the notice Intuit has said it will send. 2. **Find out who your primary admin is.** Only a primary admin can change firm subscriptions. Not a partner, not the person who manages the client list day to day, not whoever happens to be logged in. If your primary admin is a former staff member or a founder who isn't around, sort that out well before January. 3. **Open Settings, then Subscription Summary.** That's where every firm-level subscription lives, including the ones you picked up during the beta. 4. **Downgrade to Core before January 19, 2027.** Your data stays intact through the downgrade. Clients, books, and access carry over. 5. **On the Books Close upsell screen, choose "Continue without Books Close."** It's a link, and it's easy to miss when the rest of the screen is pushing you toward the add-on. That's the exit. 6. **If you do nothing, you're auto-switched to free Core on January 19, 2027.** Intuit says data stays intact and nothing is lost. That's a real safety net, but treat it as a backstop, not a plan. If you activated a paid beta, do step 4 yourself rather than trusting a default to catch you on the right side of a billing date. > Do steps 2 and 3 this week, even if you plan to decide later. Finding out in mid-January that your primary admin is someone who left in March is the expensive version of this. ## Switching Without Surprising Your Team The mechanics are simple. The admin permissions and the sequencing are where firms trip. Per [Intuit's help documentation](https://quickbooks.intuit.com/learn-support/en-us/help-article/intuit-account-management/evolution-quickbooks-online-accountant-updating-intuit-accountant-suite/L6jm9Au47_US_en_US), the subscription controls live under Settings, then Subscriptions and billing, then Firm subscriptions. Reaching them requires admin-level access on the account. Staff without it can't initiate anything, which is exactly the situation that turns a two-minute task into a two-week email thread in January. Confirm who holds that access before you plan a date. Before you click anything, a short pre-flight is worth five minutes. Settle your Core-versus-Accelerate decision ahead of time so you aren't choosing live on a screen designed to sell you something. Confirm who holds admin access. Give your team a heads-up on the date so nobody meets a new login screen mid-workday. None of this is complicated, and skipping it is how a decision gets made by whoever happened to be logged in on a slow Friday afternoon. For firms with more than a handful of staff, run a short internal walkthrough before the whole team is routed through the new console cold. Have whoever holds admin access click through the new interface once and note anything that breaks muscle memory from classic QBOA. Then send the team two or three lines on what to expect. Five minutes of that beats a dozen confused messages on switch day. After the switch completes, spend ten minutes verifying. Confirm every client you expect to see is still listed. Confirm staff logins and roles look the way you left them. Confirm saved reports and custom views carried over. Catching a gap the same week is much easier than catching it three weeks later in the middle of a client meeting. The practical advice is sequencing. Decide your tier first, then switch. Some settings carry forward automatically, but changing tiers afterward means a second trip through the same admin menu, and by then you may be inside busy season. ## Core vs Accelerate: What's Free and What's Paid Every firm gets Core. Intuit's FAQ is direct about it: core features remain free, while Accelerate and Books Close require paid subscriptions starting January 20, 2027. | | Core (free) | Accelerate (paid from Jan 20, 2027) | | --- | --- | --- | | Clients, data, and access | Unchanged | Unchanged | | Client Insights, with AI anomaly detection | Not included | Included | | User Groups (bulk role-based access) | Not included | Included | | Portfolio-level Insights | Not included | Coming soon | Core is the floor, and nothing about your existing clients, their books, or your login changes there. A small firm with a handful of staff and no need for bulk permission management can sit on Core indefinitely. No expiration for the free tier appears anywhere in Intuit's published material. That last part is worth sitting with, because it's the single most useful fact on this page. As far as the published plan goes, Core is free with no announced expiration and no forced upgrade built into the schedule. It isn't a trial. It isn't a 12-month grace period. A firm that decides today to stay on Core and never look at the add-ons again has made a complete, defensible decision, and it costs nothing. Intuit shows your Accelerate price inside Intuit Accountant Suite under Subscription Summary. Industry reports put it at $149 per month. Verify that number in-product before you budget around it. Industry reports also describe a limited-time discount for the first 12 months; verify in Subscription Summary. Those three features come from Intuit's switching guide. Client Insights gives you a client overview with AI anomaly detection, which saves real time if your advisory work already involves hunting for outliers by hand. User Groups let you assign roles to a group of staff instead of one login at a time, which barely registers at two people and matters a lot at twelve. Portfolio-level Insights is listed as coming soon, so don't pay for it yet. A rough read by firm size: - **Solo or two-person.** Core covers it. Bulk role assignment is pointless with two logins. - **Three to ten staff.** Worth testing Accelerate while it's still free, especially if permission changes already eat admin time each month. - **Ten or more across client segments.** User groups alone may justify it. Check your actual price in Subscription Summary, then model 12 months of it. - **Any size, if Portfolio-level Insights is the actual draw.** Wait. Paying today for something listed as coming soon means paying for a roadmap item, not a product, and there's no published ship date. Decide on what's live right now. Whatever your price turns out to be in Subscription Summary, model two numbers before you commit: the discounted first year and the full-price year after it. Any launch discount is temporary by definition, and the second year is where the real cost shows up. Put a renewal-reminder date on the calendar the same day you subscribe, so the price step doesn't arrive unnoticed while everyone is heads-down on returns. Weighing Accelerate against other tools already in your stack? The wider [multi-client firm bookkeeping software landscape](https://growthy.com/blog/best-bookkeeping-software-multi-client-firms) is a better frame than deciding on this one line item alone. ## Books Close: The Per-Client Fee Books Close is the add-on most likely to change what your practice costs to run, because it's priced per client instead of per firm. It's a separate, opt-in add-on that sits on top of whichever tier you're on. You don't need Accelerate to use it, and staying on Core doesn't block it. Two separate decisions, two separate timelines. Billing starts January 20, 2027 at $8 per client per month for firms with 50 or fewer clients onboarded, and $6 per client per month above 50. Intuit counts the clients you've chosen to onboard at the start of each billing month. Clients sitting in your firm but not onboarded to Books Close don't count. Until then it's free, which makes the beta a runway rather than a gift. Use it to build the habit and find out which clients the automated close genuinely helps. Then trim the list before the meter starts. | Onboarded clients | Rate | Monthly | Annual | | --- | --- | --- | --- | | 25 | $8 | $200 | $2,400 | | 40 | $8 | $320 | $3,840 | | 50 | $8 | $400 | $4,800 | | 60 | $6 | $360 | $4,320 | | 100 | $6 | $600 | $7,200 | Two things fall out of that math. The lower rate applies to your whole count once you cross 50, not just the clients above it, so a 60-client firm pays less per month than a 50-client firm. The total doesn't climb back past $400 until roughly 67 clients. And the word "onboarded" is doing real work: a firm running 80 clients that only onboards 30 to Books Close pays for 30. So before January, pull the onboarded list and cut it to the clients whose monthly close genuinely benefits. Compare $6 to $8 per client against the staff time that specific client's close takes today. Use the real client, not a firm-wide average. A client you added during the beta because it was free may not be worth $8 a month when the meter is running. A few ways firms are likely to manage this once billing starts: - Onboard only the clients whose monthly close actually benefits from the automation. Resist onboarding the whole book by default just because it cost nothing during the beta. - Price the fee against that specific client's close time, at that client's staff rate. Firm-wide averages hide the clients where the math doesn't work. - Revisit the onboarded list every quarter. Client mix changes, and a client that justified $8 a month in March may not in September. None of this makes Books Close a bad tool. Per-client close automation at $6 to $8 a month is inexpensive against the hours a routine monthly close can eat. The point is to model it at your real, deliberate client count before the first invoice arrives, and to pick the client list on purpose. One timing detail deserves its own flag. January 20, 2027 lands square in the middle of individual tax season for any firm that handles both bookkeeping and returns. That's exactly when staff attention is thinnest and a new recurring line item is most likely to get waved through. Reviewing a per-client billing list takes a few minutes when things are quiet and gets skipped when they aren't. Do that review in December, before the calendar turns hostile. Don't wait to see the first invoice. ## Console Consolidation: The One-Way Door Console Consolidation is for firms running more than one QBOA console, usually from multiple entities, multiple offices, or an old merger that left two logins in place. It merges them into one. Intuit describes consolidation as permanent; confirm before you merge. If there's any plausible scenario in the next few years where your firm sells a book of business, spins off an office, or separates after a partner change, get the current terms in writing from Intuit before you touch this. Before consolidating, it's worth asking a short list of questions as a firm rather than as one admin clicking a button: - Does your firm have any plans, even loose ones, to sell a book of business or a client segment in the next few years? - Do you run separate offices or entities that need to stay operationally or legally distinct for compliance reasons? - Could a future partner split or spin-off require separating client access again? - Is the current multi-console setup actually causing daily friction, or is it a minor annoyance everyone has learned to work around? Consider a firm that grew by combining two smaller practices, each with its own console and its own client list. Consolidating gives the combined firm one login, one client list, and one place to manage staff access. That's a real convenience, and for a firm that has simply accumulated logins through growth it may be the cleanest thing on this page. It's a different calculation for a firm where the two original practices might ever need to separate again, whether through a partner disagreement or the sale of one half of the business. If your firm does consolidate, give staff and clients a short heads-up first. Staff logins, saved views, and role assignments can shift as consoles combine. A client used to reaching a specific office or contact may notice a change in how their file looks behind the scenes, even when nothing about their actual books changes. A two-line note beforehand costs nothing and prevents a week of "why does this look different" messages. A single-console firm has nothing to consolidate and can skip this entirely. Everyone else should put it on a partner-meeting agenda. ## ProAdvisor Becomes ProPartner Accountants The partner program is changing alongside the platform. [Intuit ProPartner Accountants](https://quickbooks.intuit.com/accountants/propartner-program/) succeeds the ProAdvisor Program. Intuit has said advancement ties to product usage; the tier details are on the ProPartner program page. That's a change in what earns standing, and it's worth a read before you plan next year's tech-stack recommendations. Check your current discount rate and tier status on Intuit's ProPartner page or in-product rather than assuming last year's numbers still apply. For staff who built their standing through certifications, that work doesn't disappear. Certifications remain part of how the program measures a firm. What's changing is that they're no longer the whole story, and the rest of the formula points toward how much of the Intuit product set a firm and its clients actually use. Two kinds of firms will feel this differently. A practice that already runs most of its clients on Intuit products will likely see its standing hold or climb without changing anything, because the usage that counts is already happening. A practice that mixes Intuit tools with other vendors by design, choosing each tool on its own merits, may progress more slowly even with identical technical expertise. Neither position is wrong. It's worth knowing which one describes your firm before the new program is fully in force, so the tier you land on isn't a surprise. ## What This Signals for Your Firm's Stack None of this is a knock on Intuit. A free base tier that keeps your clients and data intact, with no announced expiration, is a generous floor compared to how most software vendors handle a platform migration. There's a real convenience case for one login and one support line too. But look at the three moves together. Client analysis moves inside the platform. The close gets priced per client. Partner tier advancement now ties to product usage. Each one is a normal business decision on its own. Stacked, they tie a firm's book of record and its growth path more tightly to one vendor's roadmap and one vendor's billing calendar. There's also an architectural point that isn't about any specific tool. A product that sits on top of QuickBooks, however good its categorization, still closes and reconciles inside QuickBooks. The workflow gets faster. The book of record doesn't move. That's a different kind of dependency than a ledger that lives outside any single vendor's platform. That's the actual question worth sitting with, separate from whether Intuit's move is good or bad: how much of your practice do you want to run inside a single vendor's stack, priced and gated on that vendor's schedule? This is what people mean by vendor lock-in, even when nobody intends it maliciously. It isn't one dramatic moment. It accumulates. Your clients live in one platform. Your staff training lives in one platform. Your partner-tier perks depend on that platform's usage measures. Your close workflow runs through that same platform's per-client fee. No single one of those forces a decision. Together they make leaving expensive in ways that are hard to reverse, which is the same one-way shape Console Consolidation has at a smaller scale. Put the three moves side by side and the direction is easier to see: | Intuit move | What it does | Why it matters for stack independence | | --- | --- | --- | | Client Insights with anomaly detection (Accelerate) | Surfaces client analysis inside the platform | More of the analytical work happens in Intuit's tools rather than a firm's own process | | Books Close per-client fee | Prices the close by client count from January 20, 2027 | Close cost now scales with firm growth, inside one vendor's fee schedule | | ProPartner standing tied to product usage | Links partner status partly to Intuit product usage | Growth incentives point toward deeper Intuit adoption, not only more certified staff | None of this is a call to rip out QuickBooks tomorrow. Intuit's infrastructure has a decade of reliability behind it, and a newer standalone ledger hasn't had time to build that record. The point isn't picking a side this week. It's understanding, with real dates and real numbers, what staying put actually costs and what independence actually requires, so the choice gets made on purpose instead of by default. ## Should You Manage Clients in Growthy Instead? Honest version first: for most firms reading this, the answer is "not for every client." If your clients are staying on QuickBooks Online, you still need Intuit Accountant Suite Core to manage those files. Core is free, so there's no cost argument for replacing it. Growthy doesn't change that, and any article telling you otherwise is selling you something. Where Growthy fits is the clients you'd move off QuickBooks anyway. Growthy is a standalone general ledger, the book of record itself, plus a workflow layer for bookkeepers running a portfolio. It categorizes routine transactions automatically and your team reviews and approves, instead of clicking through every line. It's 85% accurate on first import. You review the rest. Every transaction carries a confidence score, so the triage dashboard tells you which ones need you. You can bring books in through QuickBooks Online sync or CSV import. The QuickBooks Online sync is read-only to the bank. So the useful question is narrower than "Growthy or Intuit Accountant Suite." Which of your clients would be better off on a ledger your firm owns outright, and which ones are fine staying where they are? Pilot it on two or three before your whole book runs on one vendor's calendar. [Get started with Growthy](https://growthy.com/signup/?utm_content=quickbooks-online-accountant-discontinued) Already planning to move clients off QuickBooks Desktop this year? The timing overlaps, and it's worth reading [moving clients off QuickBooks Desktop](https://growthy.com/blog/moving-clients-off-quickbooks-desktop) alongside this so you're not running two migrations on two clocks. If a client wants a CPA-managed migration handled end to end instead of a firm-run one, SDO CPA's [QuickBooks Desktop discontinued walkthrough](https://www.sdocpa.com/quickbooks-desktop-discontinued/) covers that version. Still mapping the landscape? [Comparing SaaS accounting software options](https://growthy.com/blog/saas-accounting-software-comparison), [why some firms skip QuickBooks and start on an AI-native GL](https://growthy.com/blog/skip-quickbooks-start-on-ai-native-gl), and the direct [Growthy against Bench and Pilot](https://growthy.com/blog/ai-bookkeeping-vs-bench-pilot) comparison all go deeper than fits here. [Growthy's accountant overview](https://growthy.com/for-accountants) walks through both modes. For the automation side of a platform switch, see [QuickBooks automation for firms](https://growthy.com/topics/quickbooks-automation). ## A Practical Action Checklist for Firms You have until December 31, 2026 for the platform itself, and until January 19, 2027 for anything that bills. Here's what to do with that window. 1. **Audit your current setup.** How many consoles does your firm run? How many clients and staff seats sit on each? Which subscriptions did someone activate during the beta and forget about? You can't decide Core versus Accelerate, or whether consolidation makes sense, without that baseline. Write it in a shared document rather than one partner's head. Most firms have never counted this in one place, and the person who knows the client count off the top of their head usually isn't the person who'll manage the switch. 2. **Confirm your primary admin, today.** Only a primary admin can change firm subscriptions, and the 60-day billing notice goes to primary admins. If that role belongs to someone who left, or the notice routes to an unmonitored mailbox, fix it now. This is the step that quietly causes missed deadlines. 3. **Decide Core versus Accelerate on real usage, not fear of missing out.** If your team won't use Client Insights or User Groups, Core is free and does the job. If you're managing staff at scale, pull your actual price from Subscription Summary and model both the discounted year and the year after it. Set a renewal reminder the day you subscribe. 4. **Model your Books Close cost at your real onboarded count.** Take the table above, plug in your number, multiply by 12. Do it again for where you expect to be in a year, since crossing 50 clients changes your rate. Then decide which clients actually need it rather than onboarding the whole book by default. Put a December 2026 reminder on the calendar to finalize that list before billing starts. 5. **Treat Console Consolidation as permanent.** If a sale, split, or restructure is even plausible in the next few years, get a second opinion from a partner and confirm the current terms with Intuit before merging anything. A single-console firm can skip this step entirely. 6. **Pilot an independent layer on two or three clients.** Whether that's a workflow tool on top of QBO or a standalone ledger, test it on a small slice before your whole book depends on one vendor's calendar. A two-client pilot run through a full close cycle tells you more than any feature list. 7. **Put one name on the deadline.** If nobody at the firm owns this, the calendar decides for you. Assign an owner the same way you'd assign one to a filing deadline, and give them both dates: December 31, 2026 and January 19, 2027. None of those steps requires an immediate platform change. They require a firm that has actually looked at its own numbers, on its own timeline, instead of finding out where it landed after the fact. ## Frequently Asked Questions ### Do I have to pay for Intuit Accountant Suite? No. Core is free, and Intuit's FAQ says core features remain free. The two paid pieces are Accelerate and Books Close, and both start billing January 20, 2027. If your firm stays on Core and skips Books Close, you pay nothing. Intuit shows your Accelerate price inside the product under Subscription Summary. Industry reports put it at $149 per month, but verify that in-product rather than budgeting off a secondhand number. ### What happens if I do nothing? If you're on a premium beta and take no action by January 19, 2027, Intuit auto-switches your firm to free Core. Your data stays intact and nothing is lost. That's Intuit's published behavior. It's a reasonable outcome for a firm that wanted Core anyway. It's a risky one to rely on if you activated a paid beta and want certainty, since a downgrade you performed yourself in Subscription Summary is the version you can verify. ### How do I skip Books Close? On the Books Close upsell screen, choose "Continue without Books Close." It's a link on the screen and easy to scroll past. To change an existing subscription, a primary admin goes to Settings, then Subscription Summary, and downgrades before January 19, 2027. Books Close only bills for clients your firm chooses to onboard, counted at the start of each billing month, so clients you never onboarded don't appear on the invoice. ### What's different from QuickBooks Online Accountant? Your clients, their data, and your access carry over. What changes is the console around them. Intuit Accountant Suite splits features into a free Core tier and a paid Accelerate tier, adds Books Close as a per-client add-on, and replaces the ProAdvisor Program with ProPartner Accountants. QBOA itself is discontinued December 31, 2026, so the classic console isn't an option after that date. ### Is QuickBooks Online Accountant being discontinued? Yes. December 31, 2026 is the date Intuit has published. It's replaced by Intuit Accountant Suite. Your clients, data, and access carry over. The interface, the tier structure, and the partner program are what change. ### When is QuickBooks Online Accountant going away? December 31, 2026. That's the published discontinuation date for the classic console. The related dates are January 19, 2027, when the free beta for Accelerate and Books Close ends, and January 20, 2027, when billing for those two begins. Intuit also suggests finishing your migration before January 15, 2027 so it doesn't collide with busy season. There's no published option to remain on classic QBOA past the December 2026 date. ### Do I have to move to Intuit Accountant Suite? Yes, eventually, though there's no version of this where you lose access to your clients. Every firm ends up on Intuit Accountant Suite after December 31, 2026, because the classic console is being discontinued. What you control is the tier and the timing. To be clear on scope: this applies to the accountant-side admin platform your firm uses. It does not apply to your individual clients' QuickBooks Online subscriptions, which are unaffected by this change. ### Is Intuit Accountant Suite free? The base tier, Core, is free with no announced expiration. It keeps your clients, data, and access as they are. Accelerate adds Client Insights and User groups and bills starting January 20, 2027. Books Close is a separate per-client add-on that also starts billing January 20, 2027. Both are free during the beta through January 19, 2027. ### What is Books Close and what will it cost? Books Close is Intuit's per-client close automation add-on. Starting January 20, 2027, it bills $8 per onboarded client per month for firms with 50 or fewer clients onboarded, and $6 per onboarded client per month above 50. A 40-client firm pays $320 a month, or $3,840 a year. A 60-client firm pays $360 a month, or $4,320 a year, since the lower rate applies to the whole count. The fee follows clients you actively onboard, not your total client list. ### Who at my firm can change our subscription? Only a primary admin. That's Intuit's rule for firm subscriptions, and it's the most common reason a firm misses a deadline it meant to hit. The 60-day billing notice also goes to primary admins, so if that mailbox isn't monitored, nobody at your firm sees the warning. Confirm who holds the role before January. ### What is Console Consolidation, and can I undo it? Console Consolidation merges multiple QBOA consoles into one for firms that accumulated separate logins through entities, offices, or mergers. Intuit describes consolidation as permanent; confirm before you merge. Firms with any plan to sell, split, or restructure should loop in a partner first. A single-console firm has nothing to consolidate. ### What is replacing the ProAdvisor Program? Intuit ProPartner Accountants. Intuit has said advancement ties to product usage; the tier structure and current terms are on Intuit's ProPartner program page. Existing ProAdvisor benefits carry forward for subscriptions set up before the ProPartner launch. --- Whatever your firm decides about Core, Accelerate, and Books Close, the question underneath stays the same: how much of your book of record do you want inside one vendor's stack, priced on that vendor's calendar? > Growthy is a standalone general ledger for firms that want to own their book of record. It categorizes routine transactions automatically, so your team reviews and approves instead of clicking through every line. [Get started with Growthy](https://growthy.com/signup/?utm_content=quickbooks-online-accountant-discontinued). ### [Moving Clients Off QuickBooks Desktop: A 2026 Migration Playbook for Bookkeepers and Firms](https://growthy.com/blog/moving-clients-off-quickbooks-desktop): QuickBooks Desktop is ending, and for a firm every client on it is a migration you will own. A portfolio playbook: which clients move first, which destination fits each one, and how to run the migration once as a repeatable process. A solo business owner on QuickBooks Desktop has one file, one deadline, and one decision to make. A bookkeeping firm has eight clients on Desktop. Or fifteen. Or forty. Each one runs a different version and sits on a different support clock. Each has its own reason for never switching. That's the real problem here. It isn't "how do I migrate a company file." It's "how do I run this migration eight, fifteen, or forty times without burning a quarter of billable hours." And it's how to do that without breaking something for a client who trusts your firm to handle it. This is a playbook for that second problem. It's not a walkthrough for one file. It's a decision framework for a portfolio: which clients move now, which can wait, and which destination fits which client. It also covers how to build one repeatable process, instead of solving the same problem forty separate times. Most of what's published about "QuickBooks Desktop discontinued" is written for the business owner staring at one file. That content answers a real question, just not this one. A firm needs something different. It needs a way to sort a whole client list by urgency and complexity. Then it needs to pick the right destination for each segment, and run the process the same way every time. That way, quality doesn't depend on which bookkeeper happens to draw the file. > **Is QuickBooks Desktop being discontinued, and what does it mean for a bookkeeping firm?** > > Not all at once, but yes for most versions. Intuit stopped selling new QuickBooks Desktop Pro Plus, Premier Plus, Mac Plus, and Enhanced Payroll subscriptions in September 2024. Existing subscribers can keep renewing. QuickBooks Desktop 2022 already lost support on May 31, 2025. Desktop 2023 already lost support too, on May 31, 2026. Desktop 2024 is the last non-Enterprise version Intuit will ever release. Its support ends September 30, 2027. QuickBooks Desktop Enterprise is the one edition Intuit still sells, with no end date announced. For a firm, this means any client still on 2022 or 2023 is already running unsupported software. Clients on 2024 have more runway, but it's still a migration you'll manage on someone else's schedule. ## Key Takeaways - **Desktop 2023 already lost support** - May 31, 2026 has passed, so any client still on it is running unsupported software now and should move first. - **Desktop 2024 is the last version that will ever exist** - support ends September 30, 2027, with no 2025, 2026, or 2027 edition coming. - **Enterprise didn't get the memo** - it's the one Desktop edition Intuit still sells and supports, with prices up about 10% since February 2026. - **QBO isn't automatically right for every client** - defaulting 20 clients onto the same plan can mean $33,600 a year in software spend your firm is implicitly recommending. - **Intuit's migration tool has real limits** - it skips budgets, memorized reports, and full payroll history, and caps out around a 750,000-target company file within a 60-day window. - **The real risk isn't the software** - it's running this migration forty times with no standard process, which is why a repeatable checklist beats any single tool choice. ## What's Actually Ending (and What Isn't) Intuit made three separate moves here. Clients and some bookkeepers mix them up. It's worth keeping them straight. First, in September 2024, Intuit stopped selling new subscriptions of QuickBooks Desktop Pro Plus, Premier Plus, Mac Plus, and Enhanced Payroll in the US. If a client already had one of these subscriptions, they could keep renewing it. This wasn't a shutdown. It was Intuit closing the front door to new buyers. The back door stayed open for people already inside. Intuit's own [stop-sell FAQ](https://www.firmofthefuture.com/product-update/faq-desktop-stopsell/) covers the details if a client wants it in writing. Renewing isn't the same as standing still on cost, either. Desktop renewal pricing has climbed alongside QBO pricing in recent years. A client who assumes "we can just keep paying for what we have" is often surprised by the actual invoice. That's a useful data point to bring into the conversation early. It removes the "why should we bother moving if we can just keep renewing" objection before it slows down your migration schedule. It also helps to say plainly why Intuit is doing this. The company has been moving its accounting product line toward a cloud, subscription-first model for years. QuickBooks Desktop is the last major piece still running on the old install-it-locally model. Slowing new sales and letting each version age out on a fixed clock is how a vendor sunsets a legacy product line. It does that without pulling the plug on existing customers overnight. None of that changes what a firm needs to do. It just explains why the deadlines exist instead of getting extended again. Second, each version has its own support sunset. They don't all land on the same day. Here's where each one stands: | Version | Support Ends | Status | | --- | --- | --- | | QuickBooks Desktop 2022 | May 31, 2025 | Already unsupported | | QuickBooks Desktop 2023 | May 31, 2026 | Already unsupported | | QuickBooks Desktop 2024 | September 30, 2027 | Last non-Enterprise version ever released | | QuickBooks Desktop Enterprise | No end date announced | Still sold and supported | "Support ends" doesn't mean the software stops opening. A client can still launch a Desktop file after its support date, enter transactions, and run reports. What actually stops: payroll tax tables freeze at whatever rates were current, bank feeds disconnect, and payment processing through QuickBooks (cards, ACH) stops working. Security patches stop shipping too, and Intuit tech support ends. For a client who runs payroll or takes card payments through QuickBooks, that's enough to force a move. The file technically still opens, but that's not enough. For a client who only uses Desktop to enter journal entries and print a P&L, it's a slower burn. That distinction matters for how you sequence a firm-wide plan. Two clients can both be on Desktop 2023. Both are already past that May 2026 support date. But they still need completely different urgency. One runs payroll and card payments through QuickBooks. That client needs to move now, not on some future deadline, to stop the scramble that's already started. The other only uses it for internal reporting. That client could, in theory, limp along unsupported a while longer. Even so, that's not a position to leave a client in without a documented conversation about the risk. Third, and this is the detail that surprises a lot of firm owners: 2024 is it. There will be no QuickBooks Desktop 2025, 2026, or 2027 (outside Enterprise). Intuit has stopped the annual release cycle for the standard product line entirely. Any client on 2024 today is running the final version that will ever exist for their edition. The one exception across all of this is Enterprise. Intuit kept selling and supporting it with no announced end date. That makes it the one legitimate "stay put" option for clients with real reasons to avoid a migration. Enterprise isn't cheap, though, and it got more expensive: prices rose about 10% in February 2026. A 1-user Silver plan runs around $1,873 a year. Larger White or Gold tiers run up to roughly $6,598 a year. The Gold and Platinum tiers also add per-employee monthly fees on top. For a client with heavy inventory or job-costing needs, that cost can still be the cheaper option next to a messy migration. For a simple service business, it's a hard number to justify. Losing support isn't only a security or payroll story either. Add-on integrations, expense-management tools, point-of-sale systems, and third-party payroll processors gradually stop maintaining compatibility with an unsupported Desktop version too. That failure is slower and quieter than a bank feed cutting off overnight. But it adds up to the same outcome: software fewer other tools want to talk to with each year that passes. For a firm, that shows up as a steady trickle of small breakages. A receipt-capture app stops syncing. A payroll integration throws errors nobody investigates until it's been broken for weeks. If your firm also manages clients inside QuickBooks Online Accountant, that's a related but separate shift worth reading on its own: [what's changing with QuickBooks Online Accountant](https://growthy.com/blog/quickbooks-online-accountant-discontinued). ## Why "Just Move Everyone to QBO" Is the Wrong Default for a Firm Intuit built one very good on-ramp: the Desktop-to-QBO export tool sits right inside the software, a few clicks from the Company menu. That convenience creates a default path. Convenient isn't the same as correct for every client on your book. Here's the thing worth slowing down for: a forced migration is a rare, natural checkpoint. Most of these clients haven't reevaluated their accounting stack in years, maybe ever. They're on Desktop because that's what they started with. Or what a prior bookkeeper set up. Or what came bundled with an old computer purchase. The migration deadline gives you a legitimate reason to ask "does this client actually belong here." That beats just moving them to wherever the export button points. Some clients genuinely fit QBO well: straightforward service businesses, single entity, a handful of bank accounts, nothing exotic in the chart of accounts. Others don't. A client with real inventory complexity might be better on Enterprise or a specialist stack built for their industry. A client who's growing fast and outgrowing rules-based categorization might fit better with an AI-native general ledger. That's often a better fit than another rules engine with a new interface. Weighing the full landscape of options, not just QBO versus Desktop? Our [SaaS accounting software comparison](https://growthy.com/blog/saas-accounting-software-comparison) breaks down the destinations by category. The decision framework that actually holds up: match the destination to the client's complexity, growth trajectory, and how your firm wants to staff the work. Don't match it to whichever button Intuit put in front of the client first. For a firm managing many clients at once, that framework matters more than it does for a single business owner. You're making this call dozens of times, and a wrong default compounds across your whole book. Our guide to [choosing bookkeeping software across multiple clients](https://growthy.com/blog/best-bookkeeping-software-multi-client-firms) walks through that framework in more depth. Run the cost math before you default anyone anywhere. QBO Plus at $140 a month ([Intuit pricing](https://quickbooks.intuit.com/pricing/), as of September 2026) is $1,680 a year, per client. Multiply that by twenty clients defaulted onto Plus because it's the "safe" choice. You're looking at $33,600 a year in client software spend your firm is implicitly recommending. That's on top of the migration hours themselves. Some of those clients need Plus. Others would do fine on Simple Start at $38 a month, or Essentials at $85. A few might be better served long-term by a tool that isn't billed by the seat and feature tier at all. The point isn't that QBO is overpriced. It's that "just put everyone on Plus" is an expensive default to get wrong twenty times over. Think in archetypes instead of one blanket rule. A solo bookkeeper at their client ceiling, clicking through the same categorization work every morning, has a different problem. A five-partner CPA firm trying to scale advisory services without hiring more bookkeeping staff has a different one too. A brand-new business owner setting up their first set of books has a different problem than either of them. The migration deadline is the same for all three. The right destination usually isn't. How you bring this up with a client matters as much as which tool you pick. Framing it as "Intuit is forcing us to move you" puts the client on the defensive. It makes every option feel like a downgrade. Framing it as "your support window is closing, and it's a good time to check whether your current setup still fits your business" opens a real conversation instead. Most clients don't have strong opinions about accounting software. They have opinions about surprises, unexpected costs, and being told what to do without being asked. Bring two options, not one. Explain the tradeoff in plain terms. Let the client make the call with you, not for them. ## Triage Your Book: Which Clients Go Where Before you touch a single company file, sort your book. Not every client needs the same destination. Sorting first saves you from migrating a client twice. Sorting doesn't require a deep audit of every file up front. A few quick signals tell you most of what you need: does the client's file use the inventory module at all, and how heavily? How many months since the last full reconciliation? Is the client on one entity or several? Is the business under a year old, or does it have years of transaction history baked into ingrained habits? Ten minutes per client answering those questions is usually enough to place them in one of these buckets. | Client Profile | Recommended Path | Why | | --- | --- | --- | | Simple service business, one entity, no inventory | QuickBooks Online or an AI-native GL | Straightforward books don't need Desktop-level complexity | | Retail, job-costing, or light manufacturing with real inventory | QuickBooks Enterprise or a specialist industry stack | Inventory costing and job tracking often outgrow a standard ledger | | Messy books, way behind on reconciliation | Cleanup first, before any tool decision | Migrating bad data just moves the mess into a new system | | New client, under 12 months old | An AI-native GL from day one | No QBO or Xero habits to unwind, no second migration in year two | | Multi-entity, needs consolidated reporting | QuickBooks Advanced or Xero | Built for cross-entity structure that entry-level plans can't handle | | High-transaction-volume client who wants faster closes | An AI-native GL as the book of record | A modern architecture supports faster close and a cleaner audit trail | | Nonprofit or fund/grant accounting | Sage Intacct or a nonprofit-specific tool, not a general SMB plan | Fund tracking and grant reporting need features standard QBO or Xero plans don't cover well | | Client the firm expects to offboard soon | Don't migrate yet; help them close out on their current version | A full migration isn't worth the hours for a relationship that's ending anyway | Use this as a starting sort, not a final answer for every client. A retail client with light inventory might still fit QBO Plus fine. A "simple" service business with three partners and messy draws might need cleanup before anything else. The point of the table is to stop treating "move everyone to QBO" as the default. Start asking the question client by client instead, with a short list of real options, not just one. A practical way to spot the "messy books" row without opening every file: pull a quick trial balance. Scan for negative accounts receivable or payable. Look for credit card accounts that haven't been reconciled in six months or more. Check for an equity section that doesn't roll forward the way it should year over year. Any one of those is a flag. The client needs a cleanup engagement before a migration date gets scheduled, not after. Trying to migrate a file with those problems just carries them into the new system with a fresh coat of paint on top. Client profiles shift, too. A simple service business today might add real inventory next year. A client who looked like an AI-native GL fit at signup might grow into job-costing complexity that argues for Enterprise later. Treat this table as something to revisit at each annual engagement renewal. Don't treat it as a one-time sort you run once during the migration push and never touch again. Destination pricing (Intuit's published 2026 SMB pricing, hedged because it changes): QBO runs $38 a month for Simple Start, $85 for Essentials, $140 for Plus, and $340 for Advanced as of September 2026. Xero runs roughly $29 to $80 a month depending on plan. FreshBooks runs about $22 to $68. Wave is free. Sage pricing varies by product line. None of these numbers should be the only factor in the decision. But they matter when you're pricing the client conversation. ## What a Clean Per-Client Migration Involves Once you know where a client is headed, the migration itself has a repeatable shape. Firms that treat each one as a one-off waste hours reinventing steps that should already be standard. **Start with cleanup, before you export anything.** Duplicate vendors, uncategorized transactions, and unreconciled accounts don't get better in a new system. They just move. Clean the file first. Reconcile every bank and credit card account through the most recent statement. Resolve undeposited funds, and clear out any vendor or customer duplicates you can find. Check the aging reports too. Old, uncollected receivables and payables that should have been written off years ago will follow the client into the new system. They'll distort the first set of reports there too. A clean source file is the single biggest factor in whether a migration goes smoothly. It's also the step that's easiest to shortcut under deadline pressure, and the hardest to fix after the fact. **Know the constraints before you commit to a date.** Intuit's [built-in migration path](https://quickbooks.intuit.com/learn-support/en-us/help-article/import-export-data-files/move-quickbooks-desktop-file-quickbooks-online/L6af3Z0Fb_US_en_US) runs from the Company menu: Export Company File to QuickBooks Online. Two constraints matter for planning. First, the company file's Total Target must be under 750,000 (press Ctrl+1 in Desktop to check). A file over that limit either has data problems on import, particularly with inventory, or can't convert at all. Second, you only have 60 days from the date you create the QBO account to complete the import. Miss that window and you're starting over. **Understand what the tool actually moves.** It transfers the chart of accounts, customer and vendor lists, products and services, and up to two years of transaction history. It does not transfer budgets, memorized reports, some custom fields, journal-entry attachments, or complete payroll history. Inventory valuation methods can also shift during the move. None of this is a reason to avoid the tool. It's a reason to tell the client, in writing, exactly what won't carry over before they notice something's missing three weeks later. Build a short migration letter template once. List the items that don't transfer, and send it to every client before their cutover date. That single document heads off most of the "where did my old reports go" calls. Document the chart-of-accounts mapping as you go, even when the export handles it automatically. Standardizing account structures across clients during this move is worth doing (see the mistakes section below). If you do, write down old account name to new account name for each client. Six months from now, a partner might ask why a number looks different than it used to. That mapping is the fastest way to answer without reopening the old file. **Validate before you call it done.** After the import, don't just check that the software opened. Pull a trial balance in both systems and compare them. Check accounts receivable and accounts payable totals against the old file. Confirm every bank and credit card balance matches to the penny. Check that 1099 vendor flags carried over correctly and that sales tax settings match what the client actually charges. Both are easy to miss on import day and expensive to discover at year-end. This step catches the errors that Intuit's own migration disclaimers warn about. It's the difference between a migration that holds up and one that generates a cleanup project six months later. **Reconnect everything that lived on top of the old file.** Bank feeds, payroll, and any connected apps (payment processors, expense tools, point-of-sale) need to be reestablished in the new system. Payroll re-setup in particular can take several business days if the client is moving payroll providers as part of this. Start that conversation early. Don't assume it happens automatically at cutover. This is the step firms forget most often. The file itself looks fine, and nobody checks whether the feeds are actually pulling data again. A bank transaction from two weeks ago can sit unnoticed for weeks. **Consider a parallel run for anything complex.** For a client with real inventory, multi-entity structure, or payroll complexity, running both systems side by side for one full close cycle is worth the extra week. It catches discrepancies before the client's next tax return or lender report depends on the new numbers being right. **Check in again after the first full close in the new system.** The real test isn't the day of import, it's the first month-end close afterward. Schedule a specific follow-up, thirty days out. Confirm the close went cleanly, and confirm nothing that passed initial validation quietly broke once a full month of real transactions ran through the new system. Decide how you're billing this work before you start, too. Some firms fold migration into existing monthly fees as a value-add for long-term clients. Others price it as a fixed-fee project, separate from ongoing bookkeeping, scaled by file complexity instead of by the hour. A fixed quote is easier for a client to say yes to than an open-ended hourly estimate for work they don't fully understand. It also protects your firm's margin if a "simple" file turns out to need more cleanup than expected. For a firm, the value here isn't any one of these steps. It's turning them into a checklist your whole team runs the same way every time. The alternative is a senior bookkeeper solving it fresh for each client while everyone else waits and asks questions. A written, repeatable migration checklist is worth building once and running forty times. For more on the broader automation side of running QuickBooks workflows day to day, see our [QuickBooks automation hub](/topics/quickbooks-automation). ## The Migration Mistakes That Bite Firms Specifically Some mistakes matter more at portfolio scale than they do for a single business owner migrating one file. These are the ones that show up again and again once a firm is running this across a real book of clients. **Dirty data, multiplied.** One messy file is a cleanup project. Fifteen messy files, migrated on the same rushed timeline, is fifteen cleanup projects your firm didn't budget hours for. Say a firm schedules eight clients for the same migration week because their support dates all fall in the same window. Three of them turn out to have six months of unreconciled bank accounts. The whole batch slips, and the clean five clients end up waiting behind the messy three. Sort your book by data quality before you commit to dates. Push the messiest files to the back of the line, or handle cleanup as its own billed engagement first. **Chart of accounts drift across files.** Different clients, especially ones set up years apart or by different bookkeepers, end up with inconsistent chart of accounts structures. One client might track "Office Supplies" and "Software Subscriptions" separately; another lumps everything into "Miscellaneous Expense." Migrating each one without a standard mapping means your reporting and staff training stay fragmented in the new system too. Any bookkeeper covering for a sick colleague has to relearn each client's quirks from scratch. Decide on a standard COA template before you start migrating. Map each client's old accounts to it during the move, not after. **Payroll history that quietly disappears.** Complete payroll history doesn't transfer with Intuit's export tool. If your firm handles payroll for clients, export payroll reports separately and archive them before the cutover. Discovering this gap after year-end is a much worse conversation than catching it up front and having the archive ready. That's especially true when a client needs prior-year payroll detail for a loan application, a workers' comp audit, or a bank's due diligence request. **Cutover timing that ignores the client's calendar.** Migrating a client mid-quarter, right before a loan renewal, or during their busiest sales season creates unnecessary risk. A retail client shouldn't get migrated the week before their holiday season starts. A client refinancing a loan shouldn't get migrated the month their lender is reviewing financials. Batch your migrations around each client's actual calendar, not just your firm's internal capacity to schedule the work. **Staff retraining treated as one-and-done.** If your team has run QuickBooks Desktop for years, moving the whole book to a new system means retraining everyone, not just the person handling one client's file. It might mean several systems, not one, if you're using the triage table above. A junior bookkeeper who learns the new system on client twelve has absorbed eleven clients' worth of avoidable mistakes. Those mistakes come from struggling through clients one through eleven without guidance. Build the training into your rollout plan instead of discovering the gaps client by client. **Missing the 60-day window on a batch.** This one is specific to firms managing volume. If you create QBO accounts for several clients at once to get ahead of a deadline, watch the clock. Cleanup or scheduling delays can push the actual import past 60 days. If that happens, you're starting over on all of them. That means re-exporting the Desktop file and redoing any prep work already done. Don't create the QBO account until you're genuinely ready to import within the window. Track each client's 60-day clock separately once you do. None of these mistakes are exotic. They're the ordinary failure modes of running the same process many times without writing it down first. Naming them up front, before the first client gets scheduled, is cheaper than discovering each one live on somebody's actual books. ## Where Growthy Fits (and Where It Doesn't) Here's where Growthy fits into this playbook, and where it honestly doesn't. Growthy works in two modes. A migrating firm can use either one depending on the client. In the first mode, Growthy sits on top of a client's new QBO books as a workflow layer. There's no second migration. You connect the client's new QuickBooks Online account, import bank statements, or upload a CSV. Growthy picks up the routine categorization work from there. Your team reviews and approves instead of clicking through every transaction by hand. This is the fit for clients who just landed on QBO through the Desktop migration and don't need to move again. It's also the lower-friction starting point for a firm that wants to pilot the tool on a handful of already-migrated clients. That pilot helps you decide whether standalone Mode 2 makes sense for anyone else on the book. In the second mode, Growthy is the standalone book of record instead of QBO or Xero. This fits differently: a new client with no existing Desktop habits to unwind, or a firm deliberately building a modern stack. That firm doesn't want to migrate into another rules-based ledger it'll want to leave again in a few years. If a client is starting fresh anyway, it's worth asking whether QBO or Xero is really the destination, or just the default. We wrote more about that decision in [why to start on an AI-native GL instead of QuickBooks](https://growthy.com/blog/skip-quickbooks-start-on-ai-native-gl). The honest number: Growthy is about 85% accurate on first import. You review the rest. That's not a claim of finished work. It's a starting point. The transactions it's least sure about get flagged for your team instead of guessed at. In practice that looks like a triage list, not a blank inbox. Out of, say, 247 transactions in a month, about 37 need a human look. The rest are already sorted and waiting for approval. Sticking with one system still pays off, instead of migrating again in two years. The categories that trip up every categorization tool, not just Growthy, are worth naming plainly. Net-versus-gross deposits: a Stripe or PayPal payout posts as one lump sum. The fee needs to land in the right account instead of getting buried in revenue. Transfers: loans, owner draws, and account-to-account transfers all look similar on a bank feed. A wrong guess here misstates the balance sheet even when the P&L looks fine. No-description transactions: an ACH line that just reads a reference number with no vendor name attached. Growthy's approach on all three is the same: flag it for a human instead of guessing wrong with confidence. That's a deliberate tradeoff, not a limitation we're hiding. For firm work specifically, the architecture matters as much as the accuracy number. A tool that's built to be the book of record, instead of a categorization layer sitting on top of one, is a different kind of system. It applies consistent categorization logic the same way every time, and it keeps a clear trail of what changed and when. That matters for anything that eventually gets audited, whether that's a lender review, a tax return, or a client asking "why does this number look different than last month." The double-work problem is real, but it's specific. A tool that sits on top of QBO or Xero and keeps its work in a separate system, or in a spreadsheet, is doing double work by design. A workflow layer that syncs its categorization directly into the client's QBO books, the way Growthy's first mode does, doesn't have that problem. There's no second system to keep aligned. A tool built as the standalone book of record from the start doesn't have that second system either. Where Growthy isn't the fit: clients with heavy manufacturing operations, complex job-costing, or serious inventory valuation needs. Those clients are better served by QuickBooks Enterprise or an industry-specific stack built for that complexity. We're not the right tool for every client on your book. Pretending otherwise would just create a different migration problem down the line. If you're comparing Growthy against fully-managed bookkeeping services like Bench or Pilot, instead of against QuickBooks itself, that's a different comparison. It's worth reading separately: [AI bookkeeping versus Bench and Pilot](https://growthy.com/blog/ai-bookkeeping-vs-bench-pilot). There's a firm-level reason this matters beyond any single client's file, too. A firm that standardizes on one modern system gets easier to staff and easier to hand off between bookkeepers. That beats forty different one-off tool choices made client by client over the years. A new hire learns one process instead of relearning quirks per client. And a client's books don't live in a system only one person on the team actually understands. ## Your Next 12 Months: A Firm Migration Timeline Given where the deadlines actually stand right now, the sequence for a firm looks like this over the rest of 2026 and into 2027. **Now (mid-2026): audit the book, and move the overdue clients first.** List every client on QuickBooks Desktop, which version they're running, and what they actually use it for (payroll, card payments, bank feeds, or just data entry). This single list tells you which clients are on a real clock and which have more room. Desktop 2023's May 31, 2026 support date has already passed. Any client still on that version is running unsupported software right now. Put those clients at the front of the line, not the back. **Second half of 2026: triage, clean up, pilot, and migrate the overdue clients.** Sort the rest of your book against the table above. This is a planning exercise, not a migration, and it's the step that prevents the "move everyone to QBO" default from taking over by inertia. Flag the messy files that need cleanup as their own line item, separate from the migration itself. Pilot the full process, cleanup through validation, on one or two of your simplest clients first. Use that pilot to fix the steps that don't work in practice before you run them under deadline pressure on forty files. Then run the overdue Desktop 2023 migrations through that same checklist. They shouldn't wait for a slower quarter. **2027: work through Desktop 2024 on a calendar spread.** Desktop 2024 support ends September 30, 2027. Spread those migrations across the year instead of cramming them into the weeks right before the deadline. Build the schedule around each client's fiscal calendar, not just your firm's capacity. **Ongoing: train staff once, on the standard path.** Once your checklist and destination framework are set, train your whole team on it together. Don't let each bookkeeper improvise their own process client by client. This is the step that turns a one-time migration project into a repeatable skill your firm keeps. That skill stays useful the next time a vendor sunsets a product your book depends on. If your firm is managing this across a real book of QBO clients once the migrations land, see how Growthy fits firms specifically at [Growthy for bookkeepers](https://growthy.com/for-bookkeepers). ## Frequently Asked Questions ### Is QuickBooks Desktop going away in 2026? Not entirely. Pro Plus, Premier Plus, Mac Plus, and Enhanced Payroll stopped taking new subscribers in September 2024. Desktop 2023 already lost support, on May 31, 2026. Existing renewals continue for now, and Desktop 2024 stays supported through September 2027. Enterprise keeps going with no announced end date. For most firms, 2026 was the year Desktop 2023 clients needed a plan. Desktop itself didn't disappear entirely, but that plan is now overdue for anyone who hasn't moved yet. The version number determines a client's actual deadline. The first step for any firm is confirming which version each client is actually running, instead of assuming they're all in the same boat. ### When does QuickBooks Desktop support end? It depends on the version. Desktop 2022 already lost support on May 31, 2025. Desktop 2023 already lost support too, on May 31, 2026. Desktop 2024, the last version Intuit will ever release outside Enterprise, loses support September 30, 2027. Enterprise has no announced end date. ### Will QuickBooks Desktop stop working after support ends? The software still opens. A client can still enter transactions and run reports locally after the support date passes. What actually stops: payroll tax tables freeze, bank feeds disconnect, payment processing through QuickBooks stops working, security patches stop shipping, and Intuit's tech support ends. For most active businesses, that combination is enough to force a move even though the file technically still opens. Third-party add-ons and integrations also tend to drop compatibility with an unsupported version over time. That's a slower failure than a bank feed cutting off. But it adds up the same way. ### Should a bookkeeping firm move every client to QuickBooks Online? No. QBO is the destination Intuit's built-in migration tool defaults to. That makes it the easiest path, not automatically the right one for every client. Some clients fit QBO well. Others are better served by Xero, an AI-native GL, or Enterprise if inventory and job-costing get complex. Treat the forced migration as a chance to match each client to the right tool instead of the default one. Run the cost math per client before assuming the higher-tier plan is the safe choice. ### What's the best QuickBooks Desktop alternative for a firm managing multiple clients? There isn't a single answer, because a portfolio of clients rarely fits one tool. QBO and Xero work well for straightforward service businesses. Enterprise or a specialist industry stack fits inventory-heavy or job-costing clients. An AI-native GL fits new clients starting fresh. It also fits clients where the firm wants a modern book of record, instead of another layer sitting on top of an old one. Ask what the client will actually do with the software day to day before picking a destination. A tool chosen for its feature list instead of the client's actual workflow tends to become another migration project in a couple of years. ### How long does it take to migrate a whole book of clients? It depends heavily on client count and data cleanliness, but batching helps a lot. One clean file might migrate in an afternoon. A firm with twenty clients, some clean and some messy, is realistically looking at a few months. That's the timeline if each one is handled one-off with no standard process. A repeatable checklist cuts that time significantly, because you stop reinventing the steps for every single client. Piloting the process on one or two clients before batching the rest also shortens the total timeline. It catches process problems before they repeat across the whole book. ### Can we keep some clients on Desktop (or Enterprise)? Yes. Enterprise stays supported with no announced end date. Clients with heavy inventory, manufacturing, or job-costing needs can reasonably stay there. Clients on 2023 or 2024 can also keep running past their support date, since the software still opens; it just becomes unsupported. Whether that's acceptable depends on the client's reliance on payroll, bank feeds, or payment processing through QuickBooks. It also depends on their tolerance for running unpatched software. Keep in mind that "unsupported" isn't a fixed risk level. Fewer workarounds exist the longer a client stays on an unsupported version. And Intuit's support team won't help troubleshoot problems on it. Build that into the conversation with any client who wants to stay put. Don't treat it as a one-time decision. ### Does Intuit's free migration tool transfer everything? No. It moves the chart of accounts, customer and vendor lists, products and services, and up to two years of transaction history. It does not move budgets, memorized reports, some custom fields, journal-entry attachments, or complete payroll history. Inventory valuation methods can also change during the move. That's worth checking closely on any client carrying inventory. Two other constraints matter for planning. The company file has to stay under a 750,000 Total Target to convert cleanly. And the import has to happen within 60 days of creating the QuickBooks Online account. ### What happens to payroll history during migration? Complete payroll history doesn't come across with Intuit's export tool. Firms that handle payroll for clients typically need to export payroll reports separately before migrating. Keep them as a standalone reference. QuickBooks Online won't display the client's full payroll history from before the cutover. ### Do we need a CPA to manage client migrations? Not for most straightforward migrations. A bookkeeper or firm can run the process directly: cleanup, export, validate, reconnect. Where a CPA tends to get pulled in is compliance-sensitive cleanup, multi-year reconciliation gaps, or clients who specifically want a fully managed migration. That means end to end, instead of run by their bookkeeping team. That's a client-preference question as much as a technical one; plenty of straightforward files never need CPA involvement at all. [SDO CPA's walkthrough for a single business's managed migration](https://www.sdocpa.com/quickbooks-desktop-discontinued/) is a useful reference if a client asks for that kind of service instead of a firm-run one. --- Once your clients land on their new destination, whether that's QBO or a standalone general ledger, the daily categorization work doesn't disappear. That's where a workflow layer earns its keep. Growthy is AI bookkeeping built for firms managing a book of clients. It suggests categories for the routine work so your team reviews and approves instead of clicking through every transaction. [Get Started with Growthy](/signup?utm_content=moving-clients-off-quickbooks-desktop). ### [ChatGPT Prompts for Bookkeepers: The Working Set](https://growthy.com/blog/chatgpt-prompts-for-bookkeepers): 30 ChatGPT prompts for bookkeepers: client emails, categorization checks, month-end close, and cleanup triage. Placeholders and guardrails included. Most "ChatGPT prompts for bookkeepers" lists are five generic prompts nobody has run on live books. This is the bookkeeping cut of the prompt library we use inside an operating CPA firm: 30 prompts, grouped by the work you actually do, each with a guardrail note. One thing up front. These prompts draft, explain, and build checklists. They don't do the books. ChatGPT can't see your bank feed, can't match a deposit to 14 invoices, and won't remember the correction you made yesterday. Use it for the words around the work, and keep the work itself in your tools. And one rule that never bends: nothing client-identifying goes into the chat. More on that below. > **What are ChatGPT prompts for bookkeepers?** > > ChatGPT prompts for bookkeepers are reusable instructions that turn the chat window into a drafting and explaining tool for bookkeeping work. Think client emails, categorization decision checks, month-end close checklists, and cleanup triage plans. The prompts use bracket placeholders like [CLIENT NAME] and [LINE ITEM] so nothing client-identifying enters the chat. ChatGPT is not a categorizer, a ledger, or a reconciliation tool. It drafts the email, builds the checklist, or explains the concept, and you review everything before it touches a client or a book. Each prompt saves minutes, not hours, but the minutes compound across 15 to 25 client books every month. ## Key Takeaways - **30 prompts, 4 workflow groups.** Client communication, categorization sanity checks, month-end close, and cleanup triage. No tax-prep prompts here; this is the bookkeeping set. - **Placeholders are the rule.** [CLIENT NAME], [LINE ITEM], [AMOUNT]. Nothing real goes in until you're back in your own email client or ledger. - **Nothing client-identifying enters the chat.** No name next to a number, no account numbers, no statement uploads, on any plan tier. - **Prompts draft and explain. They don't do the books.** No bank feed access, no deposit matching, no memory of your corrections. - **Every output is a first draft.** You review and approve before anything reaches a client. ## How to use these ChatGPT prompts for bookkeepers Each prompt has three parts: a short title, the prompt itself in a blockquote you can copy, and a one-line guardrail note. Swap the bracketed placeholders after the prompt runs, in your own tools, never in the chat. The prompts come from the library we run at an operating CPA firm. I cut the tax-prep groups (K-1 codes, IRS notices, depreciation) because this is the bookkeeper's set. If you want the deeper story on chat tools in bookkeeping workflows, we've written an honest walkthrough of [how to use Claude for bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping) that covers the same ground from the tool side. ## Group 1: Client communication (8 prompts) **1. Missing-Document Request** > Draft a friendly email to [CLIENT NAME OR CODE] requesting their [DOCUMENT TYPE] by [DATE]. Under 100 words, no guilt-tripping. > *Use a placeholder or internal code, not the real name, until you paste it into your own email client.* **2. Uncategorized-Transaction Question Batch** > Turn this list of [N] transaction descriptions [descriptions only, no amounts or names] into one short email of questions for the client, grouped so they can answer everything in five minutes. > *Descriptions only. Strip amounts and anything identifying before pasting.* **3. Plain-English P&L Explainer** > A [LINE ITEM] rose [PERCENT]% this month for a [BUSINESS TYPE]. Given [REASON CATEGORY], explain the likely drivers in 3 sentences a non-finance owner would understand. Possibilities, not a diagnosis. > *Feed the reason category, not the client's actual books. Confirm the real cause in the ledger before it goes out.* **4. Fee Conversation Opener** > Write a direct, non-apologetic email explaining a fee change from $[OLD FEE] to $[NEW FEE] for [SERVICE]. > *Keep dollar figures as placeholders until final review.* **5. Month-End Delivery Note** > Draft a short month-end delivery email for a [BUSINESS TYPE] client: books are closed, two things worth their attention, one question I need answered. Under 120 words. > *Template only. The two things and the question come from your review, not ChatGPT's.* **6. Re-Engagement Check-In** > Write a check-in email for a client I haven't heard from since [TIMEFRAME], naming a specific reason for the outreach (an upcoming close, a document gap, a season change) and one clear ask. > *Generic timeframe and reason category. No account details.* **7. Scope Decline Email** > Draft a polite email declining [SERVICE TYPE] work for an existing client, stating the service boundary and offering a referral category, with transition language for anything in progress. > *Keep the reason factual. Don't name a referral unless it's someone you've already vetted.* **8. New-Client Onboarding Welcome** > Write an onboarding welcome email for a new monthly bookkeeping client: what I need by when [DOCUMENT CATEGORIES], how we communicate, and what day their books close each month. > *Template. Swap in your real process before sending.* ## Group 2: Categorization sanity checks (7 prompts) ChatGPT can't categorize your feed. It can pressure-test your reasoning when a transaction is genuinely ambiguous. **9. Category Decision Tree** > Build a decision tree for categorizing [EXPENSE TYPE] for a [BUSINESS TYPE]: the questions to ask, in order, before picking an account. > *Process reasoning only. Your chart of accounts makes the final call.* **10. Net-vs-Gross Fee Explainer** > Explain how to book a [PROCESSOR] payout that arrives net of fees: what posts to revenue, what posts to fees, and what goes wrong when it's posted gross. General mechanics, not a specific client. > *Mechanics check, not a booking instruction. Verify against how the processor actually reports.* **11. Transfer-vs-Income Flag List** > List the signs that a deposit is a transfer, an owner contribution, or a loan rather than income, and the follow-up question to ask the client for each. > *Loans, draws, and transfers all look alike in a feed. This builds your question list, not your answer.* **12. Memo-Line Decode Checklist** > Give me a checklist for identifying a bank transaction whose memo only says [GENERIC MEMO PATTERN, like ACH PAYMENT plus a number]: what to check, in order, before I ask the client. > *Pattern only. Never paste the real memo line with real reference numbers.* **13. Chart-of-Accounts Fit Check** > For a [BUSINESS TYPE], list the accounts a standard chart of accounts usually misses and the transactions that end up misfiled because of it. > *General patterns. Compare against the client's actual COA yourself.* **14. 1099-Vendor Flag Question Bank** > Build the questions I should ask about a new vendor to decide whether to track them for 1099 purposes. Process only, no dollar thresholds. > *Thresholds change and this isn't the place to get them. Flag the vendor, and let the client's tax preparer own the filing rules.* **15. Personal-vs-Business Boundary List** > List common transactions that look like business expenses but are usually personal for a [BUSINESS TYPE] owner, and a neutral way to raise each with the client. > *The phrasing help is the point. Nobody enjoys the 'was this business?' conversation.* ## Group 3: Month-end close checklists (8 prompts) **16. Close Checklist by Client Type** > Build a month-end close checklist for a [INDUSTRY TYPE] business with [NUMBER] accounts and [PAYROLL/INVENTORY/NEITHER]. Order it by what breaks first. > *Template. Adapt per client without naming them in the chat.* **17. Reconciliation Checklist Generator** > Build a month-end bank reconciliation checklist for a [ENTITY TYPE] with [NUMBER] accounts, including the checks for items that cleared in the wrong month. > *Checklist only. Run the actual reconciliation in your software.* **18. Trial-Balance Red-Flag Scan** > List the 8 most common trial balance red flags to scan for before closing a [ENTITY TYPE]'s books, why each matters, and what evidence to pull for each. > *General checklist. Never upload an actual trial balance.* **19. Journal-Entry Clarity Rewrite** > Rewrite this journal entry description for clarity: "[VAGUE DESCRIPTION, vendor and employee names and amounts replaced with placeholders]." Make it specific enough for a reviewer to follow cold. > *Strip names and figures first. Never the real JE text.* **20. P&L Variance Question Bank** > A [LINE ITEM] moved [PERCENT]% month over month. Give me the 5 questions to ask before flagging it as an error. > *Percentage only, never dollar figures tied to a real client.* **21. Flux Analysis Question Bank** > Generate 6 flux-analysis questions for a [INDUSTRY TYPE] client whose gross margin moved [PERCENT] points this quarter. > *Percentage and industry only.* **22. Accrual Reversal Checklist** > Build a checklist of accrual entries that typically need reversing in the first week of a new month for a [ENTITY TYPE], with columns for timing, source workpaper, and your own sign-off. > *General accounting checklist. Your workpapers hold the real entries.* **23. Client Deliverable QC Pass** > Review this paragraph for tone, typos, and clarity before it goes to a client: "[PARAGRAPH with names and figures swapped for placeholders]." Flag anything that reads hedgy. > *Anonymize first, always. Never the real deliverable text.* ## Group 4: Cleanup triage (7 prompts) **24. Cleanup Scope Questions** > I'm estimating a cleanup for a [BUSINESS TYPE] with [N] months of neglected books. Build the list of questions to answer before I estimate hours. > *Scoping discipline. The estimate itself comes from your rates and the actual mess.* **25. Backlog Triage Order** > Give me a triage order for clearing [N] months of uncategorized transactions: what to batch first, what to hold for client questions, what can wait until the end. > *Sequencing help. The judgment calls stay yours.* **26. COA Migration Mistake List** > List common chart-of-accounts mapping mistakes when moving a client's books from [SOFTWARE A] to [SOFTWARE B]. > *Software names only. No actual chart of accounts.* **27. Duplicate-Transaction Hunt** > List the places duplicate transactions hide when a client connected the same bank account through two different feeds, and the order to check them. > *Checklist. The dedupe itself happens in your ledger.* **28. Clearing-Account Investigation** > Build a checklist for investigating a clearing account that never returns to zero, and what each leftover balance pattern usually means. > *Clearing accounts that never hit zero are the tell. This builds your investigation path.* **29. Prior-Bookkeeper Handoff Questions** > I'm taking over books from another bookkeeper. Build the handoff question list: access, open items, unreconciled periods, and undocumented habits to ask about. > *Question bank. Keep the prior bookkeeper's name out of the chat.* **30. Cleanup Pricing Conversation** > Draft a direct email explaining why a cleanup engagement costs more than monthly bookkeeping, without disparaging whoever did the books before. > *Tone help for an awkward email. Figures stay placeholders.* ## What prompts can't fix A few prompts we ran and killed, so you don't have to learn the same way. **"Generate the journal entries for this transaction."** It invented account names that didn't match the chart of accounts, twice in one week. Cheap to catch, annoying to keep catching. Use it to explain what an entry should look like conceptually. Never to generate the actual entry. **"Summarize this document" with a real document attached.** I uploaded a full tax return once, before I'd thought through what that meant. The summary was fine. The problem: a client's name, numbers, and history sitting on a vendor's servers the moment I hit enter. Killed it the same day. If a prompt only works by uploading the real thing, don't run it. **Anything that ends with a number you'd repeat to a client.** Cash position, what they owe, what something costs. ChatGPT produces confident numbers that are wrong often enough to matter. Numbers come from the ledger. And the structural limits no prompt gets around: ChatGPT can't see your bank feed. It can't match a $3,847.92 deposit back to the 14 invoices inside it. It starts every chat from zero, so the correction you made yesterday is gone today. It's a drafting tool with no memory of your clients and no access to your books. That's not a flaw you can prompt away. It's the design. ## Where Growthy picks up The gap in every one of these ChatGPT prompts for bookkeepers is the books themselves. That's what we build. Growthy suggests a category for your clients' transactions with a confidence score. It's 85% accurate on first import, you review the rest, and it asks when it's uncertain instead of guessing. ChatGPT drafts your client emails. Growthy does the clicking that ate your afternoon. [Get started with Growthy](https://growthy.com/signup/?utm_content=chatgpt-prompts-for-bookkeepers) and bring one messy client book. ## Guardrails: what not to put into ChatGPT Every prompt above works because of one rule that doesn't bend: nothing that identifies a client goes into the chat window. No name next to a number. No account numbers. No uploaded statements, invoices, or exports with real data in them. Whether the vendor trains on your inputs depends on your account settings and plan, and that policy can change. Verify it yourself before relying on it. But no setting changes your confidentiality obligations to your client. And no plan tier makes a consumer chat tool part of your engagement terms. The rule of thumb: if it has a name and a number next to it, it doesn't go in the box. Everything in this list works by typing a category, a pattern, or an anonymized placeholder. This is operator experience, not legal advice. ## FAQ ### Can ChatGPT do my bookkeeping? No. It miscategorizes often enough that you'd end up reviewing everything anyway, and it has no connection to your ledger, so nothing it says posts anywhere. It's genuinely useful for drafting emails, building checklists, and explaining concepts. Use it for words, not books. ### Is it safe to paste transactions into ChatGPT? Descriptions and patterns, yes, if you strip anything identifying: names, account numbers, and real reference numbers. A name next to a number is the line. Uploading statements or exports crosses it, on any plan. ### What's the best prompt to start with? The journal-entry clarity rewrite (#19). It's low risk, takes ten seconds, and fixes a real problem: entries nobody can follow six months later. The close checklist builder (#16) is the best second step. ### Should I use ChatGPT or Claude for bookkeeping prompts? Both handle this list fine; the differences show up in tone and how they handle long checklists. We've compared them head-to-head for this exact work in [Claude vs ChatGPT for bookkeeping](https://growthy.com/blog/claude-vs-chatgpt-for-bookkeeping) and, for firm-side work, [ChatGPT vs Claude for accounting](https://growthy.com/blog/chatgpt-vs-claude-for-accounting). --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* Related: [whether ChatGPT's Finances tab works for client books](/blog/chatgpt-personal-finance-bookkeeping) ### [How to Connect QuickBooks Online to ChatGPT and Claude: The Complete MCP Setup Guide](https://growthy.com/blog/connect-quickbooks-online-to-chatgpt): Connect QuickBooks Online to ChatGPT or Claude four ways. What each path can read, what it can write, and why the official app is no longer read-only. "Connect QuickBooks Online to ChatGPT" sounds like one thing. It's actually four different things wearing the same name, and only some of them let the AI change anything in your books. Some people want to ask ChatGPT a question about their cash flow. Some want Claude to read a client's P&L and flag what looks off. Some want the AI to actually fix a miscategorized transaction, post a journal entry, or match a deposit. Those are very different jobs, and they need very different setups. Pick the wrong one and you either can't do what you came to do, or you hand a chatbot delete access to your live financials. This guide walks through all four paths, in plain terms, with a full step-by-step for the one most people mean when they say "connect it properly": the official QuickBooks Online MCP server, the developer route that gives an AI real read-and-write access. We'll cover the developer account, the sandbox, getting production approved, the realm ID and refresh token, and how to do the whole thing without leaving your books wide open. Then we'll be honest about the part most tutorials skip: getting the AI connected is the easy 20%. Getting it to do the books correctly is the hard 80%. One thing changed in 2026 that most guides on this topic still get wrong. The official QuickBooks app inside ChatGPT used to be a pure read-only window. It isn't anymore. Intuit added a set of named actions on top of the reporting, so the app can now carry out a few specific jobs rather than only describing them. The boundary is still real, and it's still narrow, but it is not "the AI can't touch anything." It's different for every path on this page, so we state it path by path. That's the only way it's true. > **How do you connect QuickBooks Online to ChatGPT or Claude?** > > There are four ways, and each one has a different access boundary. The official QuickBooks app inside ChatGPT (live since late 2025 for logged-in US Free, Plus, and Pro accounts, web and mobile) reads your books for profitability, cash-flow, and benchmark questions and generates reports like a profit and loss. It is no longer purely read-only: Intuit added sales invoicing (quote-to-cash), deeper payroll query tools, and QuickBooks Capital peer loan benchmarking. Those named workflows are the whole write surface. It is not general ledger editing. The official Intuit QuickBooks Online MCP server is an open-source local program with 144 tools that gives an AI assistant full read-and-write access over the Model Context Protocol, but it needs a developer account, OAuth 2.0 credentials, and a local subprocess, so it's built for developers. Hosted MCP connectors skip that setup by running in the cloud; the free Meridian by Pilot QuickBooks Connector, launched 11 August 2026, is one, and it lets you choose which entity to connect and set read-only or read-write access per company. Purpose-built platforms connect once by OAuth and add accounting logic on top. Every route that writes past the official app's named workflows needs an OAuth connection to that company. Intuit issues no per-user API keys. ## Key Takeaways - **Four paths, not one.** The ChatGPT QuickBooks app (insights, plus a short list of named write actions), the official Intuit MCP server (full read-write, developer setup), hosted MCP connectors (read-write, third-party trust, and in Meridian's case an access level you set per company), and purpose-built accounting platforms. Match the path to whether you need the AI to*read* or to*change* your books. - **The official app is not read-only anymore.** It still answers questions and pulls reports, and Intuit has added sales invoicing (quote-to-cash), deeper payroll query tools, and QuickBooks Capital peer loan benchmarking. Those named workflows are the entire write surface. None of it lets the app edit your general ledger, recategorize a transaction, or post a journal entry. - **Access level is a per-path question, and sometimes a per-company one.** The free Meridian by Pilot connector, launched 11 August 2026, asks you to pick the entity and then choose read-only or read-write for that company. For a firm with a client roster, that per-company setting is the control that matters, and it's only as good as whoever set it last. - **A local MCP server can't reach web ChatGPT.** ChatGPT and Claude in a browser can't talk to a program running on your laptop. Local servers work with Claude Desktop, Cursor, and similar apps. For web AI you need a hosted server. - **The write route always needs a developer account.** You register an app on the Intuit Developer Portal, complete a one-time OAuth handshake, and store a client ID, client secret, refresh token, and realm ID. Intuit does not hand out simple API keys. - **Production is harder than sandbox.** Sandbox accepts a`localhost` callback. Production rejects it and requires a public HTTPS URL, usually solved with an ngrok tunnel for the one-time handshake. - **Security is on you.** The official server ships 144 tools, including ones that delete invoices, customers, and journal entries. Start read-only, sandbox first, and never commit your credentials. - **Connecting is the easy part.** A general AI with raw write access will still miscategorize a Stripe deposit and misread a transfer. It has no memory of your corrections and no audit trail. The connection is a pipe, not a bookkeeper. ## The four ways to connect QuickBooks Online to an AI Before you install anything, get clear on which of these four you actually need. The fastest way to waste an afternoon is to set up a full developer integration when the free app in ChatGPT already answers your question, or to expect the free app to fix a transaction it was never built to touch. Here's the whole landscape in one table. Read the "writes and adjusts" and "accounting judgment" columns first, because that's where the real difference lives. Path Developer account? Reads your books? Writes and adjusts? Multiple companies? Accounting judgment? Best for **QuickBooks app in ChatGPT** (official) No Yes, insights and reports Named workflows only: sales invoicing, payroll queries, Capital benchmarking One at a time No Owners who want to *ask questions* about their numbers, plus a few specific jobs **Intuit MCP server** (official, local) Yes Yes Yes, all 144 tools One company per config No Developers and technical bookkeepers who want full control **Hosted MCP connector** (third-party, e.g. Meridian by Pilot) No Yes Yes, and Meridian sets the level per company Sometimes; Meridian connects one entity at a time No Non-developers who want write access without the setup **Purpose-built platform** (e.g. Growthy) No Yes Categorize + triage today; write-back and chat adjustments in testing Yes, many clients Yes Bookkeepers and accountants doing the work every day Two honest notes on that table. First, "accounting judgment" is a real column, not marketing. A raw connection, official or hosted, gives the AI a set of buttons: create an invoice, categorize a transaction, post a journal entry. It does not give the AI any sense of whether the categorization is *right*. That judgment is the entire job of bookkeeping, and none of the raw connections carry it. Second, the free ChatGPT app is genuinely useful and genuinely bounded. It reads, and it now acts inside a short list of named workflows: sales invoicing, deeper payroll queries, and QuickBooks Capital peer loan benchmarking. That is the whole write surface. If your question is "how did my margins move this quarter," it's the fastest answer on the list. If your task is "fix the 14 transactions I categorized wrong," it still can't help, because recategorizing a transaction isn't one of those named workflows, and you're back to one of the ledger-write routes. Third, "read-only" is not a property of AI plus QuickBooks in general. It's a property of each path, and one of them moved in 2026. That's why every section below restates the boundary for the path it's describing. Read one line here and carry it to a different path and you'll be wrong. The rest of this guide focuses on the write routes, because that's the setup people find confusing, and it's the one with real security stakes. ## Do you even need a write connection? A quick gut check Before you spend the hour, it's worth ruling yourself in or out. Most people who search for this need less than they think. Answer three questions: 1. **Do you need the AI to change records, or just read them?** If you only want answers, reports, and trends, you don't need any of the developer setup. The free ChatGPT app, or a local connection with the write flags off, covers you and you can stop after the sandbox step. Watch the middle case: if what you want is one of the app's named workflows, like raising a sales invoice or asking a payroll question, the app may already do it, and you can stop before you start. 2. **Is this your own company, or a client's?** Your own books are your risk to take. A client's books carry confidentiality obligations and a much higher bar for getting it wrong. If it's client work, weigh a purpose-built accounting tool against a raw connection before you build anything. 3. **How many companies?** The official server connects to one company per configuration. One company is fine. A roster of twenty means twenty configurations to build and maintain, which is the point where the developer route stops scaling and a platform starts making sense. If your honest answers are read-only, your own company, and one entity, the setup ahead is a fun weekend project. If they're write access, client books, and many companies, keep reading, but know that the walkthrough is the start of a maintenance job, not the end of a setup. ## What the Model Context Protocol is, and why QuickBooks uses it The three "connect and write" paths all run on the same underlying standard: the Model Context Protocol, or MCP. MCP is an open standard introduced by Anthropic. It gives AI assistants a common way to reach outside tools and data. Instead of every app inventing its own plugin format, a service publishes an "MCP server" that exposes its features as callable tools. Any MCP-compatible client, Claude Desktop, Cursor, and a growing list of others, can then use those tools. Think of it as a universal adapter between an AI and the software you already run. For QuickBooks, this matters because the alternative is ugly. Without a connection, using AI on your books means exporting a report, pasting it into a chat, reading the answer, and then typing the changes back into QuickBooks by hand. MCP removes the copy-paste. The AI reads real-time data and, if you allow it, acts on it directly. Intuit published an official QuickBooks Online MCP server as an open-source preview in 2025. The numbers are worth knowing before you commit, because they tell you both how capable and how sharp this thing is: - **144 tools.** Full create, read, update, delete, and search across the QuickBooks API. - **29 entity types.** Invoices, bills, customers, vendors, journal entries, deposits, transfers, and more, each with its own set of tools. - **11 financial reports.** Balance Sheet, Profit and Loss, Cash Flow, Trial Balance, and others. - **OAuth 2.0 authentication.** Token-based, the same security model banks use for third-party access. That's broad coverage. It's worth seeing what it actually spans before you decide how much of it to switch on. On the read side, the 29 entity types cover the whole ledger: customers and vendors, invoices and bills, payments and deposits, journal entries, transfers, items, accounts, classes, and more. Each entity has a matching set of tools, so `search_invoices`, `get_invoice`, `create_invoice`, `update_invoice`, and `delete_invoice` all exist as separate callable tools. The 11 reports include the ones you'd reach for first: Profit and Loss, Balance Sheet, Cash Flow, Trial Balance, plus aged receivables and payables. That read layer alone, with writes switched off, is already a capable analyst for your books. The write side is where the count of 144 stops being a bragging point and starts being a warning. Among those tools are `delete_invoice`, `delete_journal_entry`, and `delete_customer`. This is not a read-only reporting layer. It's the full keyboard of your accounting system, handed to a model that will press keys when asked. We'll come back to that in the security section, because it changes how you should set it up. One more expectation to set now. The official server is a *local* program. It runs on your machine as a subprocess and talks to your MCP client over your computer, not over the web. That single fact decides whether you can use it with the app you have, and it's the most common thing people get wrong. More on that after the walkthrough. ### The 144 tools, grouped by area To make the abstract concrete, here's roughly how the tools break down. You won't use all of them, but seeing the shape tells you what's possible and what to switch off. Area Example entities What the tools do **Sales** Invoices, estimates, sales receipts, credit memos, payments Create and send invoices, record customer payments, issue credits **Purchases** Bills, vendors, bill payments, purchase orders, vendor credits Enter and pay bills, track vendors, manage purchase orders **Banking** Deposits, transfers, purchases Record deposits, move money between accounts, log expenses **Accounting** Journal entries, accounts, classes, departments Post adjusting entries, manage the chart of accounts, track by class **Lists** Customers, items, terms, payment methods, tax codes Maintain the reference data the rest of the books point to **Reports** P&L, Balance Sheet, Cash Flow, Trial Balance, aged AR and AP Pull the 11 financial reports, with period comparison Every area has read tools and write tools. The read tools (`get_*`, `search_*`, and the reports) are the safe majority. The write tools (`create_*`, `update_*`, `delete_*`) are the ones that carry risk, and the ones the disable flags switch off in bulk. When you start read-only, you keep this entire reference and reporting surface and give up only the ability to change anything, which is exactly the trade you want on day one. ## Before you build anything: what the ChatGPT QuickBooks app already does If you use ChatGPT, you may not need to build anything at all. In November 2025, Intuit and OpenAI announced a partnership, reportedly worth more than $100 million, that put Intuit's apps directly inside ChatGPT. The QuickBooks app is live for all logged-in ChatGPT Free, Plus, and Pro accounts in the US, on web and mobile. Here's what it does. You connect your QuickBooks account once inside ChatGPT, and then you can ask about your business in plain language. It reads your data to analyze profitability, cash flow, and benchmark comparisons against similar businesses by industry and region. It can generate key reports like profit-and-loss and cash-flow statements. For an owner who wants to understand their numbers without opening QuickBooks, it's the shortest path there is, and it costs nothing beyond a ChatGPT account. Here's what changed, and it's the part most guides still get wrong. The app used to be a pure read-only window onto your books. That's no longer true. Intuit added actionable features to the QuickBooks experience in ChatGPT and Claude: - **Sales invoicing.** A quote-to-cash workflow, so raising and sending an invoice is something the app can carry out, not just explain. - **Deeper payroll query tools.** More than a payroll number read back to you. A set of payroll-specific tools you can question directly. - **QuickBooks Capital peer loan benchmarking.** Your borrowing picture, compared against peers. So "the ChatGPT QuickBooks app is read-only" is false as a blanket statement. What's true is narrower and more useful to know: the write surface is scoped to those named workflows. It is not general ledger editing. Carry that distinction with you through the rest of this page. A path can write and still be nowhere near your ledger, and this is the path where that's true. Here's what it still doesn't do, and this is the boundary that decides whether it fits bookkeeping work. It won't recategorize a transaction, post an adjusting entry, match a deposit to invoices, or clean up a messy month. Those all live in the ledger, and the ledger isn't in the app's action list. Ask it to fix a miscoded expense and you'll get an explanation of what to do, not the fix itself. Two more limits are worth stating plainly, because between them they decide whether this path fits a firm rather than an owner: - **It doesn't fire on triggers, and it doesn't watch the books.** It answers when asked. Nothing runs overnight. A transaction that lands wrong tonight stays wrong until someone opens ChatGPT and asks about it. This is a question-and-answer surface, not a monitor. - **It's US-only, and one company at a time.** It's live for logged-in ChatGPT Free, Plus, and Pro accounts in the US, on web and mobile, and it's included with those accounts. Availability outside the US isn't something we can state here. Here's the fit in one picture. A solo bookkeeper gets a text on a Tuesday afternoon: why does cash look tight this month? Instead of pulling three reports by hand, she opens ChatGPT and asks, and gets a cash-flow read straight off the connected file. That's this path's whole job. A fast answer on demand, no setup past the first authorization, and now a short list of jobs it can carry out rather than describe. It isn't a system watching the books. It's a question, answered. If you want the day-to-day version of that workflow rather than the one-off, our walkthrough of [using ChatGPT for bookkeeping](/blog/chatgpt-for-bookkeeping) covers what holds up and what doesn't. So the honest test is simple: > **Should you use the ChatGPT app or build an MCP connection?** > > Use the free QuickBooks app in ChatGPT if your goal is to *understand* your numbers (reports, trends, cash-flow questions, quick benchmarks) or to run one of its named write workflows, like raising a sales invoice. Build (or adopt) an MCP connection if your goal is to *change the ledger*: categorization, adjustments, journal entries, month-end cleanup. The app answers questions and does a short list of jobs. The MCP route does ledger work. For the rest of this guide, assume you're in the second camp. You want the AI working in the ledger, not describing it or raising an invoice. That means the official MCP server, so let's build it. ## The full walkthrough: connect QuickBooks Online to Claude with the official MCP server This is the detailed path. We'll use Claude Desktop as the example client because it's the most common local MCP client, but the same server works with Cursor and other MCP-compatible desktop apps. Budget an hour for your first run. Most of that hour is the developer account and the OAuth handshake, both of which are one-time. We'll go sandbox first, then production, because that's both the safe order and the order the tooling wants. ### What you'll need before you start - **Node.js and npm** installed on your machine. The server is a TypeScript project you build locally. - **Git**, to clone the repository. - **A local MCP client**, such as Claude Desktop or Cursor. Remember: this server is local, so a web-only AI won't reach it. - **A QuickBooks Online company** for production, or nothing extra for sandbox (the developer portal gives you a free sandbox company). - **About an hour**, mostly for the one-time account and OAuth steps. ### Step 1: Create a developer account and register an app Everything starts at the [Intuit Developer Portal](https://developer.intuit.com/). This is non-negotiable. Even if you only want to read your own company's data, Intuit does not offer per-user API keys. There is no shortcut around creating an app. 1. Go to the Intuit Developer Portal and create a new app. 2. Open the app, then in the left sidebar go to**Settings**, then**Redirect URIs**, and add`http://localhost:8000/callback`. 3. Open the app's**Keys & Credentials** page and copy your**Client ID** and**Client Secret** from the Development keys. Keep that Client ID and Client Secret somewhere safe for a few minutes. They're the first two of the four values you'll need. Treat the secret like a password, because it is one. ### Step 2: Install and build the server Clone the repository and build it. In your terminal: ```bash # Clone the repository git clone https://github.com/intuit/quickbooks-online-mcp-server.git cd quickbooks-online-mcp-server # Install dependencies npm install # Build the project npm run build ``` That compiles the TypeScript into a runnable server under `dist/`. You'll point your MCP client at that compiled file later. ### Step 3: Configure your credentials and run the sandbox handshake The server reads its credentials from a `.env` file in the project root. Copy the template and fill in your values: ```bash cp .env.example .env ``` Your `.env` will look like this: ``` QUICKBOOKS_CLIENT_ID=your_client_id QUICKBOOKS_CLIENT_SECRET=your_client_secret QUICKBOOKS_ENVIRONMENT=sandbox QUICKBOOKS_REFRESH_TOKEN=your_refresh_token QUICKBOOKS_REALM_ID=your_realm_id ``` You already have the Client ID and Client Secret from Step 1. Set `QUICKBOOKS_ENVIRONMENT=sandbox`. You'll fill in the refresh token and realm ID from the handshake you're about to run. In the developer portal, create or select a sandbox company under the **Sandbox** menu. Sandbox is a fake company with fake data. It exists so you can break things safely, and you should use it for your entire first run. Now complete the OAuth handshake: ```bash npm run auth ``` Your browser opens, you sign in to the sandbox company, and you approve the connection. The server captures the tokens and saves them to your `.env`. This is where the refresh token and realm ID come from. You don't type them by hand; the handshake writes them for you. The sandbox works with a `localhost` redirect URI, which is why it's easy. Production is where the friction starts. ### A quick sandbox testing playbook Before you touch a real company, spend twenty minutes proving the workflow in sandbox. It's the cheapest insurance you'll ever buy on a financial integration. Run these three checks in order: 1. **Prove the read path.** Ask the AI to pull company info and a Profit and Loss. If numbers come back, the connection, tokens, and realm ID are all correct. If they don't, the problem is setup, not your prompts, and you fix it here where nothing is real. 2. **Prove a single safe write.** With write tools on in sandbox only, ask it to create one test invoice for a fake customer, then read it back. This confirms the write path works and shows you exactly how the model phrases a change before you ever approve one on a real company. 3. **Prove your guardrails.** Turn the disable-delete flag on, then ask the AI to delete that test invoice. It should report that it can't, because the tool no longer exists. That's you confirming the safety switch actually works, not just trusting that it does. Only after all three pass should you point the same workflow at a production company. And when you do, flip the write flags back off first. Production earns trust one loosened flag at a time. ### Step 4: Get production approved (the redirect URI problem, and the two fixes) When you're ready to connect a real company, you switch to production keys and set `QUICKBOOKS_ENVIRONMENT=production`. Here's the wall almost everyone hits, in a table: Mode When to use Redirect URI accepted Setup difficulty **Sandbox** Development, testing, demos `http://localhost:8000/callback` works Easy **Production** Real company data Localhost is rejected; must be a public HTTPS URL Harder The Intuit Developer Portal rejects `http://localhost` redirect URIs in production mode. Every developer who tries this hits it. The reason is that the one-time authorization handshake has to send you back to a real, public, HTTPS callback address, and localhost isn't public. There are two known ways around it. **Fix 1: an ngrok tunnel (most common).** ngrok gives your local machine a temporary public HTTPS address. Run it against the port your callback listens on: ```bash ngrok http 8000 ``` ngrok prints a public URL like `https://<id>.ngrok-free.app`. In your Intuit app, go to **Settings**, then **Redirect URIs**, and add `https://<id>.ngrok-free.app/callback`. Use that URL for the one-time production OAuth handshake. Once you've captured the refresh token, you can revert to localhost, because you won't need the public URL for daily use. **Fix 2: a small public callback handler.** If you can't use ngrok, deploy a tiny public callback handler, for example a serverless function or a small VPS endpoint, that captures the authorization code and hands it back to your local setup. This is more involved and only worth it if a tunnel isn't an option. The important thing to understand about production: this public-URL dance is a *one-time* cost. After the handshake completes, the refresh token in your `.env` is what keeps you connected. You no longer need the public redirect URL for day-to-day use. That's why the setup feels harder than it looks in the end. You climb a wall once, then it's gone. ### Step 5: Understand your realm ID and refresh token Two of your four credentials are worth understanding, not just pasting, because they're the ones that confuse people and the ones that carry the real access. **The realm ID** is your QuickBooks company ID. Every QuickBooks Online company has one. When you complete the OAuth handshake against a specific company, the realm ID that gets written to your `.env` is that company's ID. If you manage several companies, each has its own realm ID, and the server connects to one company per configuration. This is the single-company limit worth planning around if you're a bookkeeper with a roster of clients. **The refresh token** is the credential that matters most. After the handshake, it's the key that keeps the server connected without sending you back to the browser every time. It auto-rotates: each time the server refreshes access, it receives a new refresh token and rewrites your `.env` with it. That rotation is a security feature, but it has a practical consequence. The process needs permission to write to that `.env` file, and if you copy the token somewhere else, your copy goes stale the next time it rotates. Let the server manage it. Don't hard-code it into three places. Once you have all four values, your `.env` for a real company looks like this: ``` QUICKBOOKS_CLIENT_ID=your_client_id QUICKBOOKS_CLIENT_SECRET=your_client_secret QUICKBOOKS_REFRESH_TOKEN=your_refresh_token QUICKBOOKS_REALM_ID=your_realm_id QUICKBOOKS_ENVIRONMENT=production ``` ### Step 6: Wire the server into your MCP client Now connect the built server to your AI client. In Claude Desktop, this means editing the MCP servers section of your config file. The pattern looks like this: ```json { "mcpServers": { "quickbooks": { "command": "node", "args": ["path/to/quickbooks-online-mcp-server/dist/index.js"], "env": { "QUICKBOOKS_CLIENT_ID": "your_client_id", "QUICKBOOKS_CLIENT_SECRET": "your_client_secret", "QUICKBOOKS_REFRESH_TOKEN": "your_refresh_token", "QUICKBOOKS_REALM_ID": "your_realm_id", "QUICKBOOKS_ENVIRONMENT": "sandbox", "QUICKBOOKS_DISABLE_WRITE": "false", "QUICKBOOKS_DISABLE_UPDATE": "false", "QUICKBOOKS_DISABLE_DELETE": "false" } } } } ``` Notice the last three lines. `QUICKBOOKS_DISABLE_WRITE`, `QUICKBOOKS_DISABLE_UPDATE`, and `QUICKBOOKS_DISABLE_DELETE` let you switch off whole categories of tools. Set them to `true` and the matching tools never register, so the AI simply cannot see them. For your first real connection, the safe move is to set all three to `true` and start read-only. You can loosen them later, one at a time, once you trust what the model does. We'll say more on this in the next section. Restart your MCP client after editing the config so it picks up the new server. ### Step 7: Verify it works Start with the safest possible prompt, something that reads and changes nothing: > Using the QuickBooks tools, get my company info and show me this year's profit and loss. If the server is wired correctly, the AI calls `get_company_info` and `get_profit_and_loss` and reports back real numbers. That's your green light. Only after a clean read should you consider enabling any write tools, and even then, sandbox first. ### Common pitfalls Two problems account for most first-run failures: - **The ****`.env`**** is loaded from the wrong directory.** The server resolves`.env` relative to its compiled module, not your shell's current folder. When you launch it through Claude Desktop, this bites people. Make sure you're on the current`main` branch and that the file sits where the server expects it. - **Redirect URI mismatch.** The URI you register in the Intuit portal must match the one the server uses*exactly*: protocol, host, port, and path.`http://localhost:8000/callback` is not the same as`http://localhost:8000/callback/` or a different port. One character off and the handshake fails. ## Troubleshooting: common errors and what they mean When a connection misbehaves, the error usually points straight at the cause. The common ones: - **`401 Unauthorized`**** or**`invalid_grant`**.** Your token is bad or expired. Re-run the OAuth handshake to get a fresh one. If it keeps happening, check that the Client ID and Secret in`.env` match the app you authorized against: sandbox keys for sandbox, production keys for production. - **Empty results when data clearly exists.** Almost always a wrong environment or wrong realm ID. A sandbox connection reads the sandbox company, which is empty of your real data. Confirm`QUICKBOOKS_ENVIRONMENT` and that the realm ID belongs to the company you mean. - **`redirect_uri mismatch`**** during the handshake.** The URI in your Intuit app doesn't match the one the server used, exactly. Recheck protocol, host, port, and path. In production, confirm the ngrok URL is the one registered and that ngrok is still running. - **The server starts but the AI sees no QuickBooks tools.** Usually the client config: a wrong path to`dist/index.js`, or the client wasn't restarted after you edited the config. Fix the path, restart the client. - **It worked yesterday, broken today.** Suspect the refresh token. If the`.env` couldn't be written on the last rotation, the saved token is stale. Check the file's permissions and location, then re-authorize if needed. Change one thing at a time when you debug. Flip a single variable, test, and see if it moved. Changing three things at once just hides which one mattered. ## What you can actually do once it's connected Once the server is wired in and reading cleanly, the natural question is what to ask it. The connection is most useful for three kinds of work, and it's worth being deliberate about which kind you're doing, because the risk climbs sharply from the first to the third. **Read and explain.** This is the safest and, for most people, the most valuable use. You keep every write flag off and treat the AI as an analyst who can see your live books. > Compare this quarter's operating expenses to last quarter and tell me the three categories that moved most, with the dollar and percent change for each. > Look at my accounts receivable aging and list every customer more than 60 days past due, sorted by amount. > Walk through my Profit and Loss for the year and point out anything that looks unusual for a business my size. Nothing here changes a record. The AI reads, you learn, and the worst case is a wrong answer you catch, not a wrong entry you have to reverse. **Draft and prepare.** A step up in usefulness, still no write access. The AI reads your books and produces something you act on elsewhere. > Based on my unpaid invoices, draft a short, friendly payment-reminder email for each customer over 30 days late. Use a placeholder for the name. > Read my expense categories and build me a checklist of the accounts I should double-check before I close the month. The output is a draft. You review it, then you do the actual work in your own tools. This keeps the AI's judgment out of your ledger while still saving you the blank-page time. **Change the books.** The powerful, risky one. Write tools on, the AI creating or editing records directly. This is where everything from the security section applies at once. Do it in sandbox first, keep delete off, enable one capability at a time, and approve every change. > Here are five transactions and the category each should go to. Create the categorization for each, show me what you're about to do, and wait for my confirmation before posting. Notice the shape of that last prompt. It asks the model to *propose and wait*, not to act. That pattern, propose then confirm, is the single most important habit for write-enabled prompts. The AI is fast. Your review is what keeps fast from turning into wrong. ## Connecting to ChatGPT specifically, and the local-vs-hosted wall Everything above assumes a local MCP client like Claude Desktop. If you want to connect QuickBooks Online to ChatGPT instead, or to Claude in a browser, there's a hard limit you need to know before you spend the hour. A web-based AI cannot reach a program running on your laptop. ChatGPT on the web and Claude on the web run in the cloud. The official Intuit server runs as a subprocess on your machine. There is no path between them. So the local server works with desktop MCP clients and does not work with web ChatGPT, full stop. That leaves two options if ChatGPT is where you want to work. **Option A: the free QuickBooks app in ChatGPT.** Covered above. Insights and reports, plus the named write workflows (sales invoicing, deeper payroll queries, Capital benchmarking), with zero setup and no ability to edit the ledger. **Option B: a hosted MCP connector.** A hosted connector runs the same kind of MCP interface, but in the cloud at a public URL. You paste that URL into your AI client once, sign in with OAuth, and you're connected. No developer account, no local subprocess, no ngrok. Several providers offer this for QuickBooks, including general integration platforms, dedicated hosts, and the free Meridian by Pilot connector covered in its own section below. They work with web clients precisely because they live in the cloud too. Hosted options come in a few flavors. General integration platforms connect AI to hundreds of apps, QuickBooks among them, and are handy if you already use one for other automations. Dedicated QuickBooks connectors focus on this one job and tend to be the quickest to stand up, and the newer ones let you set the access level per company rather than once for the whole connection. Either way, the trade is the same: you save the setup, and in exchange your books' write access now runs through someone else's servers. Read their data-handling terms the way you'd read a bank's, because for this purpose that's what they are. Hosted servers solve the reach problem, but they add two costs you should weigh honestly: - **You hand a third party write access to your live books.** With the local official server, your credentials sit on your machine. With a hosted server, that trust extends to whoever runs the host. For your own bookkeeping that may be fine. For client books, it's a data-handling decision you should make on purpose, not by default. - **They're still generic.** A hosted server is the same set of raw buttons as the local one. It's faster to connect. It's no smarter about your books. Everything in the next section still applies. ## The Meridian connector: free, and access set per company There's a newer hosted option that deserves its own section, because its access model is different from everything above it. Meridian by Pilot launched a free QuickBooks Connector on 11 August 2026, at [qbo-connector.meridian.pilot.com](https://qbo-connector.meridian.pilot.com). It's an MCP connector, so it sits in the hosted row of the table at the top of this guide, and it lets AI tools act inside QuickBooks Online. The tools named for it are Claude, Cowork, Codex, and ChatGPT. ### What it can do The work it's built for is the work bookkeepers actually ask for out loud: - **Run reports.** The same reporting you'd otherwise pull by hand, asked for in a sentence. - **Find a missing transaction.** The where-did-this-deposit-go search that eats twenty minutes of an afternoon. - **Enter a batch of invoices.** Not one invoice at a time through a form. A batch. That third one is the tell. This is a path that does work, not one that describes work. Which is exactly why the access question matters more here than anywhere else on this page. ### How the connection gets set up Three steps, and it's the third one to slow down on: 1. **Sign in to QuickBooks Online.** A normal OAuth sign-in. No developer account, no client secret, no tunnel. 2. **Choose which entity to connect.** You pick the company. It isn't "all your books" by default. 3. **Set the access level for that company: read-only or read-write.** That third step is what the rest of this guide has been building toward. Every other path here gives you one access decision for the whole connection. This one gives you an access decision per company. ### Why per-company access matters for a client roster If you keep books for one company, this is a checkbox. If you keep books for fifteen, it's the whole control story. Picture a firm with twenty client files. Ten are long-standing, the books are clean, and the firm knows how those transactions behave. Ten are newer, and nobody has built that confidence yet. With a per-company access level, the firm can open the ten clean files for read-write so the connector can enter a batch of invoices or chase down a missing transaction directly, and leave the other ten read-only until the firm decides otherwise. The first decision doesn't force the second. Compare that with the official Intuit MCP server, where the unit of configuration is a whole `.env` file and a realm ID per company, and with the app in ChatGPT, where the write surface is whatever Intuit shipped and there's no dial at all. Three paths, three different shapes of control. If you run a roster, that shape is worth more than a feature list. ### The honest limits Three things this section is deliberately not saying. - **This isn't a security claim.** We can describe the controls the connector offers, because those are the product. We can't tell you how it stores or handles what passes through it, and we're not going to state a posture we haven't verified. Read the provider's own terms the way you'd read a bank's, which is the same advice this guide gives for every hosted route. - **This isn't a recommendation for client books.** Whether any AI path belongs anywhere near a client's file is an engagement decision, not a product feature. Confidentiality obligations, your firm's data-handling rules, and what you've told clients about who touches their books all sit above any toggle. Our notes on[multi-client AI bookkeeping](/blog/multi-client-ai-bookkeeping) cover the questions worth answering first. - **A toggle is only as good as whoever set it.** Per-company access solves the "one setting for everything" problem and creates a smaller one: now there are fifteen settings, and someone has to know at any moment which companies are open for writes. Write that list down somewhere that isn't your memory. ### The review job doesn't go away Whichever path you pick, check what changed before you trust it. The official app scopes its writes to named workflows, but a named workflow is still a workflow you should glance at rather than sign off on blind. A per-company toggle is only as accurate as the last time someone looked at it. A self-built connection has no review step at all beyond whatever the person who built it decided to add. And the review job scales with the roster, which is where the real wall shows up. One bookkeeper checking one company's access level is a five-minute task. The same bookkeeper checking fifteen companies, across three different connection paths, on top of the actual close, is the point where "we'll just check it" stops being a plan. That's the ceiling described in [how many clients one bookkeeper can handle](/blog/how-many-clients-can-one-bookkeeper-handle), showing up in a new place. ## Claude, ChatGPT, or Cursor: which AI client for QuickBooks The MCP server is the same regardless of which AI you point at it, but the client you choose changes what's possible. Here's the short version. **Claude Desktop** is the most common home for the local official server. It's a desktop app, so it can reach a program running on your machine, and it speaks MCP natively. If you're following the walkthrough above, this is the default choice, and the one most setup guides assume. **Cursor** and other developer-focused desktop tools also support MCP and work with the same local server. If you already live in Cursor, you can add the QuickBooks server there and skip a second app. **ChatGPT and Claude on the web** cannot reach a local server, as covered earlier. For web ChatGPT specifically, your realistic options are the free official QuickBooks app (insights and reports, plus its named write workflows) or a hosted MCP connector for ledger-level write access. There is no way to make web ChatGPT talk to the local Intuit server on your laptop. **Claude Cowork and Codex** show up in the hosted-connector story rather than the local one. The Meridian connector names them alongside Claude and ChatGPT, which is worth knowing if your team already works in one of them. The practical takeaway: if you want full read-and-write control over the ledger and you're comfortable with a desktop app, use Claude Desktop with the local official server. If you're set on working inside web ChatGPT, you're choosing between the official app's insights-plus-named-workflows surface and trusting a hosted third party with ledger write access. The client isn't a detail. It decides which of the four paths is even available to you. ## Doing it securely: the part most guides skip There's one word worth underlining before you build any of this: securely. This is where a "cool AI setup" quietly becomes a liability. You are about to give a language model a login to your financial records. Here's how to do that without regretting it. **Start read-only, always.** The server ships 144 tools, and some of them delete things: invoices, journal entries, customers, deposits. A model that misreads a prompt and calls `delete_invoice` on a live company has done real damage that someone has to unwind. Use the `QUICKBOOKS_DISABLE_WRITE`, `QUICKBOOKS_DISABLE_UPDATE`, and `QUICKBOOKS_DISABLE_DELETE` flags. Set all three to `true` on day one. The AI can read everything and change nothing. Loosen one flag at a time, only after you've watched it behave. **Know which access level each company is on.** The disable flags above are set per configuration. A hosted connector may set access per company instead, the way the Meridian connector does. Either way, the setting only helps if someone can answer "which of my companies can an AI write to right now" without guessing. Keep that list somewhere durable, review it on a schedule, and treat a company moving from read-only to read-write as a decision with a date on it, not a checkbox someone ticked in a hurry. **Don't assume a path's boundary is still where you left it.** The official app was read-only, then it wasn't. A boundary that moves is a boundary you have to re-check, especially before you tell a client what an integration can and can't do. Check the current capability list before you make a promise on it. **Sandbox before production, every time.** Test every new prompt or workflow against the sandbox company first. Sandbox data is fake, so a wrong move costs nothing. Only graduate a workflow to production after it's been clean in sandbox. This one habit prevents most disasters. **Treat your credentials like bank keys, because they are.** The Client Secret and refresh token together are full access to your financials. Three rules follow. Never commit your `.env` to git; the repository already gitignores it, and you should confirm that stays true. Never paste credentials into a chat window, including the AI you're setting up. And on a shared machine, remember that the env block in your MCP client's config file is plain text on disk. Anyone who can read that file can read your tokens. A secret manager is worth it if more than one person uses the computer. **Keep a human in the loop for writes.** The point of read-only-first is that *you* stay the one who approves changes. Even once you enable write tools, don't let the model post entries unattended. Have it propose, you approve. An AI that categorizes 200 transactions in a burst is fast. An AI that categorizes 200 transactions *wrong* in a burst is a cleanup project. **Mind the client-data line.** If you're a bookkeeper or accountant, these aren't your books; they're your client's. Putting client financials through a general-purpose AI raises confidentiality and engagement questions that a hobbyist connecting their own company never faces. Know your data-handling obligations before you connect a client's realm, and never put a client's name next to a real number in a raw chat window. This isn't legal advice; it's a flag to check your own rules. **Understand the audit-trail gap.** When the official server posts a change, QuickBooks records that a change happened. What it doesn't record is *why*, or that an AI made the call, or what the model was reasoning from. For personal books, fine. For anything that might get reviewed, examined, or audited, a raw MCP connection leaves you explaining changes you didn't personally make and can't fully reconstruct. That gap is small until the day it isn't. **Think in terms of blast radius.** Before you enable any write tool, ask what the worst single action could do. Read-only has a blast radius of zero: a bad answer, nothing changed. Create and update can post wrong records that take time to find and fix. Delete can remove records that other records depend on, and QuickBooks doesn't always make that easy to undo. Match the access to the blast radius you can live with. For most people, most of the time, that means delete stays off permanently, and write stays off until a specific task needs it. None of this is meant to scare you off. It's meant to make the setup boring, which is exactly what you want a financial integration to be. Read-only, sandbox-first, credentials locked down, human approving writes. Do that and the security story is genuinely fine. ## What this actually costs: time, money, and upkeep The official server is free and open-source, so it's easy to assume the whole thing is free. The software is. The setup and the upkeep are not. **Time.** Your first connection runs about an hour: the developer account, the build, the sandbox handshake, and the production workaround. That's a one-time cost per company. The catch is *per company*. If you keep books for fifteen clients, that's fifteen developer setups, fifteen production handshakes, and fifteen `.env` files to manage. **Money.** The server itself costs nothing. The QuickBooks app in ChatGPT is included with a ChatGPT Free, Plus, or Pro account, so there's no separate charge for the app. The Meridian by Pilot connector is free. Your AI client may still cost you: free tiers exist, but heavy use pushes you into paid plans. Other hosted MCP servers typically charge a monthly or per-seat fee in exchange for skipping the setup. So the developer route has a time cost, the free hosted routes carry a trust decision you have to make yourself, and there's no version that's free, easy, and fully under your control at once. **Upkeep.** This is the line item people forget. Refresh tokens rotate, and the server rewrites your `.env`; if that file's permissions or location break, the connection dies quietly. The library gets updates, and a stale checkout hits bugs that current `main` has already fixed. A production company you connected months ago can stop working after a token issue you then have to diagnose. A single connection is low-maintenance. A dozen connections is a small ongoing job. **Access review.** A line item that only appears once you run more than one company. Someone has to know which companies sit on read-write and which don't, and has to check it more than once. That's minutes per company per month, and it's the cost that grows fastest with a client roster, because it grows with the roster and not with the work. None of this makes the developer route wrong. It makes it a *build*, with the ownership a build implies. Go in knowing that, and it won't surprise you later. ## The catch nobody mentions: it can write, but it can't do the books Here's the part the setup tutorials leave out, and it's the most important part. Getting the AI connected is the easy 20%. You've now seen the whole thing: an account, a build, a handshake, a config file. It's fiddly, but it's finite. Once it's done, you have a language model that can read and write your QuickBooks. Doing the books correctly is the hard 80%, and the connection does nothing for it. A general AI with raw write access to QuickBooks has buttons but no judgment. It will confidently do the wrong thing, in exactly the places bookkeeping is actually hard: - **The Stripe deposit.** A $3,847.92 Stripe payout is not $3,847.92 of revenue. Stripe took its fees out first. Posted gross, your income is overstated and your fees are missing. A general model reads the deposit amount and books it. It doesn't know to net it, because netting is an accounting decision, not a data lookup. - **The transfer that looks like income.** An owner draw, a loan, and a transfer between accounts can all look identical in a bank feed: money moving, no helpful label. Categorize a transfer as income and you've inflated revenue and created a tax problem. The right move is to flag it for a human, not guess. A general model guesses. - **The transaction with no description.** "ACH PAYMENT 847293847" tells the model nothing. A real bookkeeper reads the date, the amount, the recurring pattern, the bank code, and often still asks the client. A general model pattern-matches on thin air and picks something. QuickBooks' own auto-categorization, which has years of tuning behind it, lands around 50% accurate on this work in many bookkeepers' experience. Bookkeepers have a name for that: optimistically random. A general LLM does a bit better on clean transactions and no better on the hard ones, because the hard ones aren't a language problem. They're a judgment problem. And there's a memory gap on top of the judgment gap. Correct a general AI today and it forgets by tomorrow. Every session starts cold. Your client's "Amazon means office supplies, except the March charge that was a laptop" rule has to be re-explained every time, because a raw connection has no per-client memory. The corrections don't compound. You do the same teaching, forever. So the raw MCP connection, official or hosted, is a pipe. A well-built pipe. But a pipe carries whatever you put in it, and what you're putting in is a model that doesn't know your books, doesn't remember your corrections, and doesn't understand why net is different from gross. For asking questions, that's fine. For *doing the books*, the connection is the beginning of the problem, not the end of it. ## A simpler path: connect once, and put the routine on autopilot If what you actually want is for an AI to keep your books, not just reach them, the four-path table has a fourth row for a reason. This is the honest pitch, and we'll keep it honest about what's shipped and what's coming. Growthy is built for the job the raw connection can't do. Instead of a developer account, a local subprocess, an ngrok tunnel, and a refresh token you babysit, you connect QuickBooks Online once with a normal OAuth sign-in. That connection is live today. No `dist/index.js`, no port 8000, no production-approval wall. What the connection feeds into is the difference. Once connected, Growthy handles the routine categorization for you: 85% accurate on a first import. You review the rest. It doesn't try to hide what it can't do. It tells you what it isn't sure about, "13 of these 247 need you," instead of a wall of everything to re-check. The corrections you make carry forward per client, so it keeps getting sharper on that client's books as the weeks go on. And because it's built for accounting rather than general chat, the net-versus-gross Stripe deposit, the transfer that looks like income, and the no-description transaction get flagged for review instead of confidently booked wrong. You review and approve every categorization, so nothing is final that you didn't sign off on. Here's the part we're building right now. The piece people picture when they imagine "just tell the AI to fix it," a conversational accounting director that makes the adjustments for you from a chat, is in active development and testing. We're not shipping it until it's genuinely reliable, because a chat agent that adjusts live books has to be right, not just fast. If you just want the routine categorization off your plate, that's what you can use today. > **See Growthy on your own books.** Connect QuickBooks Online in a couple of clicks and put the routine categorization on autopilot. [Get started with Growthy](https://growthy.com/signup/?utm_content=connect-quickbooks-online-to-chatgpt). For more on where AI genuinely helps in a bookkeeping workflow and where it doesn't, read our honest walkthrough of [how to use Claude for bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping), our comparison of [Claude vs ChatGPT for bookkeeping](https://growthy.com/blog/claude-vs-chatgpt-for-bookkeeping), and our overview of [AI bookkeeping](https://growthy.com/ai-bookkeeping). If you're weighing this against the Claude-side setup, we walk through [connecting QuickBooks Online to Claude](/blog/connect-quickbooks-online-to-claude) separately. The wider landscape lives in the [QuickBooks integrations hub](/topics/quickbooks-integrations), and if the real question is capacity across a roster rather than any single connection, start with [the best bookkeeping software for multi-client firms](/blog/best-bookkeeping-software-multi-client-firms). ## Glossary: the terms in this guide A few terms show up throughout. Here's each in one line. - **MCP (Model Context Protocol).** An open standard from Anthropic that lets AI assistants use outside tools through a common interface. The thing that connects an AI to QuickBooks. - **MCP server.** A program that exposes a service's features as tools an AI can call. The QuickBooks MCP server exposes 144 of them. - **OAuth 2.0.** The token-based sign-in flow that grants the server access to your QuickBooks company without ever handling your QuickBooks password. - **Client ID and Client Secret.** The credentials that identify your app to Intuit. You get them from your app's Keys and Credentials page. The secret is a password; guard it. - **Realm ID.** Your QuickBooks company's unique ID. Each company has one. The server connects to one realm per configuration. - **Refresh token.** The credential that keeps the server connected after the first handshake. It auto-rotates, and it's the most sensitive value you'll store. - **Redirect URI.** The address Intuit sends you back to after you authorize. Localhost works in sandbox; production needs a public HTTPS URL. - **Sandbox.** A free fake company for testing. Where every new workflow should start. - **Keys, realm, and environment must agree.** Sandbox keys with a sandbox realm and the`sandbox` environment; production keys with a production realm and the`production` environment. Mixing them is a top source of empty results and auth errors. - **MCP connector (hosted).** An MCP server someone else runs in the cloud at a public URL. You sign in with OAuth instead of building and running a program locally. - **Per-company access level.** A read-only or read-write setting attached to a single QuickBooks company rather than to the whole connection. The Meridian connector sets access this way. - **Named write workflow.** A specific job an integration can carry out, as opposed to open-ended write access. The ChatGPT app's sales invoicing, payroll queries, and Capital benchmarking are named workflows. General ledger editing is not one of them. - **Quote-to-cash.** The path from raising a quote or invoice through to collecting the money against it. The sales-invoicing feature in the ChatGPT app covers this workflow. - **Ledger-level write.** Changing the records the books are actually made of: categorizations, journal entries, matched deposits. This is the boundary the official app does not cross and the MCP routes do. ## Frequently asked questions ### Can ChatGPT access my QuickBooks data? Yes. The official QuickBooks app inside ChatGPT, live since late 2025 for logged-in US accounts on Free, Plus, and Pro, reads your data to analyze profit-and-loss, cash flow, and benchmarks, and generates reports. It also carries out a short list of named actions: sales invoicing, deeper payroll queries, and QuickBooks Capital peer loan benchmarking. It is not general ledger editing, so recategorizing transactions still needs another path. ### Is there an official QuickBooks MCP server? Yes. Intuit publishes an open-source QuickBooks Online MCP server on GitHub with 144 tools, 29 entity types, and 11 financial reports, using OAuth 2.0. It runs locally on your machine, requires a developer account, and connects to one company at a time. It's built for developers, not for daily accounting out of the box. ### Do I need a developer account to connect QuickBooks to Claude? For the official MCP server, yes. Intuit does not issue per-user API keys, so any write-capable connection starts with registering an app on the Intuit Developer Portal and completing an OAuth handshake. The only ways to skip the developer account are the official ChatGPT app (insights plus its named write workflows), a third-party hosted connector such as the free Meridian by Pilot one, or a platform that manages the connection for you. ### Can AI make changes to my QuickBooks, like fixing categorizations? Technically yes, through a write-enabled MCP connection. But a general AI has no accounting judgment: it will miscategorize Stripe deposits, misread transfers, and guess on blank transactions, with no memory of your corrections. Getting the AI connected is easy. Getting it to make *correct* changes is the hard part, and it's what purpose-built accounting tools exist to solve. ### Is it safe to connect QuickBooks to ChatGPT or Claude? It can be, if you're careful. Start read-only using the server's disable-write flags, test in sandbox before production, never commit or paste your credentials, and keep a human approving any writes. The real risk is a model with unrestricted write and delete access to live books, so the safe setup removes that access until you trust the workflow. ### What's the difference between the ChatGPT QuickBooks app and the MCP server? The app is free and official: it answers questions, pulls reports, and runs a short list of named write workflows (sales invoicing, deeper payroll queries, Capital benchmarking). The MCP server is a developer integration that gives an AI full read-and-write access to your books through 144 tools, including journal entries and deletes. The app is for understanding your numbers and doing a few specific jobs. The server is for acting on the ledger. ### Does the QuickBooks MCP server work with QuickBooks Desktop? No. The official server is the QuickBooks *Online* MCP server and connects through the QuickBooks Online API with OAuth. QuickBooks Desktop uses a different, local integration model and isn't supported by this server. If your clients are still on the desktop version, that’s a migration project first — see our [guide to moving clients off QuickBooks Desktop](/blog/moving-clients-off-quickbooks-desktop). ### How much does it cost to connect QuickBooks to an AI? The official MCP server is free and open-source; your only cost is setup time and your AI client. The QuickBooks app in ChatGPT is included with a ChatGPT Free, Plus, or Pro account. The Meridian by Pilot connector is free. Other hosted MCP servers usually charge a monthly or per-seat fee. Purpose-built platforms charge a subscription that includes the accounting logic the raw connections don't have. ### Can I connect the AI to more than one QuickBooks company at once? Not with a single configuration of the official server. It authenticates to one company, identified by one realm ID, per setup. To cover several companies you run several configurations, each with its own credentials. This single-company limit is one of the main reasons bookkeepers with a client roster look at platforms built for multi-company work. ### What happens when the refresh token expires? In normal use it doesn't, because it auto-rotates: each refresh issues a new token and the server saves it to your `.env`. The connection only breaks if that save fails, for example if the file isn't writable, or if the token goes unused long enough to lapse. If the connection dies, re-running the OAuth handshake issues a fresh token. ### Do I need to know how to code to set this up? You need to be comfortable in a terminal: cloning a repository, running npm commands, and editing a config file. You don't need to write code. If a command line makes you nervous, the free ChatGPT app or a hosted server will get you connected without any of that. ### Is the official Intuit MCP server production-ready? Intuit published it as an open-source preview with a large test suite behind it. It works, and it's official. "Preview" means it's aimed at developers and can change, and that daily-accounting polish, like multi-company support and built-in accounting judgment, isn't its goal. Treat it as a capable building block, not a finished bookkeeping product. ### Can AI reconcile my accounts in QuickBooks? A write-enabled connection can create and edit the records reconciliation touches, but reconciliation is judgment work: matching, catching what doesn't tie out, and knowing when a difference is a real problem. A general AI has the buttons and not the judgment, so treat any reconciliation help as a draft you verify, not a close you trust. ### Will this work with my accountant's or bookkeeper's QuickBooks? Only if you have the access to create an app and authorize the connection for that company. Connecting someone else's books means their realm and their permission. If you're the bookkeeper, that's your call to make with your client and your data-handling rules. If you're the owner, loop in whoever keeps your books before you point an AI at them. ### Can ChatGPT edit my QuickBooks ledger? Not through the official app. The QuickBooks app in ChatGPT carries out a short list of named workflows: sales invoicing, deeper payroll queries, and QuickBooks Capital peer loan benchmarking. Recategorizing a transaction, posting a journal entry, or matching a deposit isn't on that list. Ledger-level editing needs an MCP connection, either the local Intuit server or a hosted connector, or a platform built for the job. ### Is the QuickBooks app in ChatGPT still read-only? No, not as a blanket statement, and guides that still say so are out of date. Intuit added actionable features on top of the reporting: sales invoicing (quote-to-cash), deeper payroll query tools, and QuickBooks Capital peer loan benchmarking. The write surface stops at those named workflows. Treat "read-only" as a per-path fact that already moved once, not a permanent property of AI and QuickBooks. ### What is the Meridian by Pilot QuickBooks connector? It's a free MCP connector, launched 11 August 2026, that lets AI tools act inside QuickBooks Online: running reports, finding a missing transaction, entering a batch of invoices. You sign in to QuickBooks Online, choose which entity to connect, and set read-only or read-write access for that company. It skips the developer account, the client secret, and the tunnel the official Intuit server needs. ### Can I give an AI read-only access to some clients and read-write to others? With the Meridian connector, yes: the access level is set per company, so a roster can be mixed. The official Intuit MCP server is one configuration per company, so you'd control it with the disable-write flags in each config file. The ChatGPT app has no dial at all, because its write surface is fixed at whichever workflows Intuit shipped. ### Which AI tools work with the Meridian connector? The connector names Claude, Cowork, Codex, and ChatGPT. Because it runs in the cloud at a public URL rather than as a subprocess on your laptop, it doesn't hit the local-versus-web wall that stops web ChatGPT from reaching the official Intuit server. Our notes on [Claude Cowork for accounting firms](/blog/claude-cowork-for-accounting-firms) cover what that shape is good for. ### Does connecting QuickBooks to an AI mean it watches my books all day? No, and it's the most common wrong assumption on this page. None of these paths runs on a trigger or monitors the books in the background. The official app answers when asked. An MCP connection acts when someone gives it a task. A wrong transaction sits there until a person looks. Continuous review is a different job from connection. ### How is connecting an AI different from ongoing bookkeeping? A connection is a pipe: questions in, answers or actions out. Ongoing bookkeeping is judgment applied every day, to every transaction, with memory of what you decided last month. Every path in this guide gives you the pipe. None gives you the daily pass, which is why the real-world numbers on [auto-categorization accuracy](/blog/auto-categorization-accuracy-honest-numbers) matter more than how fast you got connected. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* ### [How to Connect QuickBooks Online to Claude](https://growthy.com/blog/connect-quickbooks-online-to-claude): Connect QuickBooks Online to Claude with Intuit's official MCP server: claude_desktop_config.json, claude mcp add, and safe read-only prompts for bookkeepers. Claude is the home game for this setup. Anthropic, the company behind Claude, created the Model Context Protocol, the open standard that lets an AI assistant use outside tools. So when you connect QuickBooks Online to Claude, you're not bolting on a workaround. You're using the feature the way it was designed to work. That shows up in two places. Claude Desktop reads MCP servers from one JSON config file. Claude Code, the terminal version, adds one with a single command. There's no connector mode to switch on and no developer toggle to hunt for. ChatGPT gets there too, but through a different door: developer-mode connectors or a hosted middle layer. We cover that whole path separately in the ChatGPT version of this guide. This one is Claude-only. We'll set up Intuit's official QuickBooks Online MCP server once, wire it into Claude Desktop and Claude Code, run first prompts a bookkeeper would actually use, and lock the whole thing down so a chat model can't touch a client's live books. And we'll be straight about the limit up front: this connection reads and queries. It does not close your books. > **How do you connect QuickBooks Online to Claude?** > > Install Intuit's official open-source QuickBooks Online MCP server on your computer. It exposes 144 tools across 29 entity types and 11 financial reports. Register an app on the Intuit Developer Portal to get OAuth 2.0 credentials: a client ID, client secret, refresh token, and realm ID. Then wire the server into Claude Desktop through `claude_desktop_config.json`, or into Claude Code with the `claude mcp add` command. Claude supports MCP servers natively, so there's no connector or plugin layer to configure. One catch: the server runs locally, so claude.ai in a browser can't reach it. You need Claude Desktop or Claude Code. ## Key Takeaways - **Claude speaks MCP natively.** Anthropic created the protocol. Claude Desktop uses a config file, Claude Code uses one CLI command, and no connector layer sits between. - **One Intuit setup feeds both surfaces.** Same server, same four credentials (client ID, client secret, refresh token, realm ID), two configs. - **Sandbox is easy, production has a wall.** Sandbox accepts`http://localhost:8000/callback`. Production rejects localhost and needs a public HTTPS callback for the one-time OAuth handshake. - **The connection is long-lived.** After the handshake, the server runs locally until the 100-day refresh window lapses. Then you re-authorize. - **Read-only is three flags away.** Set`QUICKBOOKS_DISABLE_WRITE`,`QUICKBOOKS_DISABLE_UPDATE`, and`QUICKBOOKS_DISABLE_DELETE` to`"true"`. Read tools stay available; write tools disappear. - **The pipe isn't the bookkeeper.** A connected Claude can read and query your books. It can't do the judgment work. That gap is where a purpose-built tool earns its keep. ## Why Claude is the natural home for a Claude QuickBooks MCP setup MCP, the Model Context Protocol, is an open standard that Anthropic introduced. It gives an AI assistant a common way to call outside tools. Intuit built its official QuickBooks Online server on that standard. Which means a Claude QuickBooks MCP setup is the shortest distance between the two: the model's own maker wrote the protocol the server speaks. That's not just trivia. It changes the setup. In Claude, there's no store to browse, no connector to enable, no approval queue. You describe the server in a config, restart, and the tools are there. ### Native support vs connector mode In Claude, an MCP server is a first-class citizen. You point Claude Desktop at the server in its config file, restart the app, and the QuickBooks tools show up in the tools list. Claude Code does the same from the terminal. ChatGPT's route runs through developer-mode connectors instead, which adds a layer with its own rules. If ChatGPT is where you work, follow [the ChatGPT version](https://growthy.com/blog/connect-quickbooks-online-to-chatgpt) of this guide; the Intuit steps are the same, but the wiring is different. And if you're still picking which assistant to use for this work at all, our [Claude vs ChatGPT for bookkeeping](https://growthy.com/blog/claude-vs-chatgpt-for-bookkeeping) comparison takes that question head-on. ### The web wall applies to Claude too One honest limit before you start. The official server is a local program. It runs on your machine. Claude in a browser at claude.ai runs in the cloud, and it cannot reach a process on your laptop. So this guide is for the two local surfaces: Claude Desktop and Claude Code. You can't connect QuickBooks to Claude in a browser this way, so if browser-only is a hard requirement for you, a raw local setup isn't your path. ## What you're installing: Intuit's official server in one minute Intuit publishes an official, open-source QuickBooks Online MCP server on GitHub. The numbers tell you what you're handling: - **144 tools** in total, spanning create, read, update, delete, and search. - **29 entity types** with full CRUD: invoices, bills, customers, vendors, journal entries, deposits, and more. - **11 financial reports**, including Profit and Loss, Balance Sheet, and Cash Flow. - **396 tests** behind the codebase. The read tools are the safe majority: every `get_*` and `search_*` tool, plus the reports. The write tools (`create_*`, `update_*`, `delete_*`) are the risk surface. The server ships three flags that switch those categories off in bulk, and we'll use them. Authentication is OAuth 2.0 through an app you register on the Intuit Developer Portal. The server needs four values in its environment: a client ID, a client secret, a refresh token, and a `QUICKBOOKS_REALM_ID`, which is your company's ID. There are no per-user API keys. The app registration is the only door in. ## Claude Desktop or Claude Code? Pick your surface first The Intuit half of the setup is identical either way. The Claude half depends on which surface you use. Surface How you configure it Best fit **Claude Desktop** Edit `claude_desktop_config.json` (Settings, then Developer) Bookkeepers and owners who want a chat window over the books **Claude Code** Run `claude mcp add` in the terminal Terminal-comfortable users who want a scripted, repeatable setup Both point at the same built server and the same credentials. You can wire both on one machine and they won't fight. If you're not sure, start with Claude Desktop. It's the surface most bookkeepers already have open. Still deciding between Claude Desktop, Claude Code, and the other agent tools out there? [Claude Code vs Codex for bookkeeping](https://growthy.com/blog/claude-code-vs-codex-for-bookkeeping) scores all four on files, books access, skills, and review. ## Step 1: The Intuit side (you do this once) This half is the same no matter which Claude surface you pick, and it's one-time per company. Here's the condensed run. ### Register an app on the Intuit Developer Portal Intuit doesn't issue personal API keys. Every connection starts with an app you register yourself. 1. Create an account at the Intuit Developer Portal and create a new app. 2. In the app's settings, add`http://localhost:8000/callback` as a redirect URI. That covers sandbox. 3. Copy the**client ID** and**client secret** from the app's keys page. Treat the secret like a password. It's one half of the key to your books. ### Clone, build, authorize ```bash git clone https://github.com/intuit/quickbooks-online-mcp-server.git cd quickbooks-online-mcp-server npm install npm run build ``` Copy `.env.example` to `.env` and fill in the client ID, the client secret, and `QUICKBOOKS_ENVIRONMENT=sandbox`. Then run the handshake: ```bash npm run auth ``` Your browser opens, you sign in to a sandbox company, and you approve access. The server captures the refresh token and realm ID and writes them into `.env` for you. One pitfall worth knowing: the server looks for `.env` next to its compiled code, not in whatever folder your terminal happens to be in. If your tokens seem to vanish, check where the file actually sits. ### The production wall, and why it's a one-time climb Sandbox accepts a localhost redirect. Production does not. To authorize a real company, Intuit requires a public HTTPS callback for the browser handshake. Most people solve it with an ngrok tunnel. A small public callback endpoint works too. Either way, it's a one-time step. Once the handshake completes, the server runs locally until the 100-day refresh window lapses. If it ever does lapse, you re-run the handshake and you're back in. ## Step 2A: Connect QuickBooks Online to Claude Desktop This is the part most guides rush, and it's where Claude differs from everything else. Claude Desktop reads its MCP servers from one file: `claude_desktop_config.json`. To find it, open Claude Desktop, go to **Settings**, then **Developer**, and choose to edit the config. Or open the file directly: - **macOS:**`~/Library/Application Support/Claude/claude_desktop_config.json` - **Windows:**`%APPDATA%\Claude\claude_desktop_config.json` The Intuit README ships an `mcpServers` block for exactly this. Here's the shape, set up the way we recommend for a first connection: ```json { "mcpServers": { "quickbooks": { "command": "node", "args": ["/path/to/quickbooks-online-mcp-server/dist/index.js"], "env": { "QUICKBOOKS_CLIENT_ID": "your_client_id", "QUICKBOOKS_CLIENT_SECRET": "your_client_secret", "QUICKBOOKS_REFRESH_TOKEN": "your_refresh_token", "QUICKBOOKS_REALM_ID": "your_realm_id", "QUICKBOOKS_ENVIRONMENT": "sandbox", "QUICKBOOKS_DISABLE_WRITE": "true", "QUICKBOOKS_DISABLE_UPDATE": "true", "QUICKBOOKS_DISABLE_DELETE": "true" } } } } ``` Save the file and restart Claude Desktop. The QuickBooks tools appear in Claude's tools list. That's the whole Desktop side: one file, one restart. ### The read-only config, spelled out Look at the last three lines of that env block. `QUICKBOOKS_DISABLE_WRITE`, `QUICKBOOKS_DISABLE_UPDATE`, and `QUICKBOOKS_DISABLE_DELETE` are set to `"true"`. With those flags on, the write tools never register. Claude can't call a tool it can't see. The read tools, every `get_*` and `search_*` plus the reports, stay available. This is the posture to keep for any client's books, and honestly for your own until you've watched the model work for a while. Loosen one flag at a time, and only with a reason. ## Step 2B: Claude Code, one command in the terminal Claude Code, the CLI version of Claude, registers MCP servers with the `claude mcp add` family of commands. The quick form wires a simple server in one line. For this server, `claude mcp add-json` is the better fit, because it takes the same JSON block the Desktop config uses, env vars and all: ```bash claude mcp add-json quickbooks '{ "command": "node", "args": ["/path/to/quickbooks-online-mcp-server/dist/index.js"], "env": { "QUICKBOOKS_CLIENT_ID": "your_client_id", "QUICKBOOKS_CLIENT_SECRET": "your_client_secret", "QUICKBOOKS_REFRESH_TOKEN": "your_refresh_token", "QUICKBOOKS_REALM_ID": "your_realm_id", "QUICKBOOKS_ENVIRONMENT": "sandbox", "QUICKBOOKS_DISABLE_WRITE": "true", "QUICKBOOKS_DISABLE_UPDATE": "true", "QUICKBOOKS_DISABLE_DELETE": "true" } }' ``` Start a new Claude Code session and the QuickBooks tools are available. Two notes. First, `claude mcp add` also has `--transport http` and `--transport sse` variants. Those are for remote servers, and this one is local, so you won't need them here. Second, both surfaces can share one build. Set the server up once, give Desktop and Code the same path and the same env values, and there's one `.env` behind both. ## First prompts: put Claude to work on your books Start with a prompt that reads and changes nothing, to prove the wiring: > Using the QuickBooks tools, pull my company info and this month's Profit and Loss. If real numbers come back, the connection works. From there, here are prompts a bookkeeper would actually run, all safe under the read-only flags: > Pull the trial balance and list any account whose balance flipped sign since last month. > Search this month's uncategorized transactions and group them by payee. Tell me which payees repeat, and which account you'd suggest for each. Don't change anything. > Get the aged payables report and flag every bill due within the next 7 days. > List this month's deposits over $1,000 and show which customer payments each one includes. Notice the shape of the second prompt: suggest, don't do. Keep that habit even if you eventually turn write access on. Have Claude propose the change, show its work, and wait for your yes. For a deeper set of workflows once you're connected, see our guide on [how to use Claude for bookkeeping](https://growthy.com/blog/how-to-use-claude-for-bookkeeping). ## Keep client books safe: the read-only posture A short, serious checklist before this touches anything real: - **Client books get read-only, full stop.** All three disable flags stay`"true"`. If a task truly needs a write, run that task in sandbox first, watch the behavior, then decide. - **Sandbox before production, every time.** The developer portal gives you a free fake company. New prompt, new workflow, new flag: sandbox first. - **Your config file is plain text.** The env block in`claude_desktop_config.json` holds your client secret and refresh token. Anyone who can read that file can read your keys. Don't commit it, don't screenshot it, don't share it. - **The refresh token is the crown jewel.** It's what keeps the connection alive, and it rotates on its own. Let the server manage it inside`.env`, and don't copy it around. - **Writes need a human.** Even with flags loosened, Claude proposes and you approve. QuickBooks records that a change happened. It doesn't record why, or that an AI made it. For anything that might get reviewed later, that missing "why" becomes your problem. - **Client data carries a higher bar.** Whatever Claude reads through the connection is processed like any chat content. Know your confidentiality obligations before you authorize a client's realm. ## What the connection won't do (and what to do about it) Now the part the setup posts skip. Everything above gives Claude access. It does not give Claude judgment. MCP reads and queries; it does not close your books. A connected model has the buttons and none of the sense about which button is right: - A payment-processor deposit lands as one number with the fees already taken out. Book it gross and your revenue is overstated. Knowing to net it out is an accounting decision, not a data lookup. - A transfer between accounts can look exactly like income in a bank feed. Guess wrong and you've inflated revenue and bought yourself a tax problem. - A bank line that reads "ACH PAYMENT 847293847" gives a model nothing to work with. A bookkeeper reads the date, the amount, and the history, and often still asks the client. And Claude starts every session cold. Correct it today, and tomorrow it holds no memory of the correction. Each client's quirks have to be re-taught every time. Switching assistants doesn't fix it either; we compared [ChatGPT vs Claude for accounting](https://growthy.com/blog/chatgpt-vs-claude-for-accounting), and the judgment gap holds on both sides. So treat the connection for what it is: a very good pipe. For asking questions of your books, it's genuinely useful, and you should use it. For doing the books, the pipe is where the problem starts. That gap is the job Growthy was built for. Instead of a developer portal and a config file, you connect QuickBooks Online with a normal OAuth sign-in. That connection is live today. Growthy handles the routine categorization at 85% accuracy on a first import, and you review the rest. It flags what it isn't sure about instead of burying you in everything to re-check. Your corrections carry forward per client through pattern learning, so the same fix doesn't need re-teaching next month. Every change runs through review-and-approve, so nothing posts that you didn't sign off on. And the piece people ask about most, a conversational accounting director that makes adjustments from chat, is in active development and testing now. > **See it against your own books.** Connect QuickBooks Online in a couple of clicks, and watch the routine categorization come off your plate. [Get started with Growthy](https://growthy.com/signup/?utm_content=connect-quickbooks-online-to-claude). ## Frequently asked questions ### Where is the claude_desktop_config.json file? Open Claude Desktop, go to Settings, then Developer, and choose to edit the config. On macOS the file lives at `~/Library/Application Support/Claude/claude_desktop_config.json`. On Windows it's `%APPDATA%\Claude\claude_desktop_config.json`. If the file doesn't exist yet, creating it through Settings puts it in the right place. ### What's the difference between Claude Desktop and Claude Code for QuickBooks work? Same server, different surface. Claude Desktop is a chat app that loads MCP servers from `claude_desktop_config.json`, which suits review-style work: asking questions, reading reports. Claude Code is a terminal tool that registers servers with `claude mcp add`, which suits scripted, repeatable setups. Both use the same credentials and the same local build. ### Can Claude Desktop and Claude Code share one QuickBooks server setup? Yes. Build the Intuit server once, then give both surfaces the same `dist/index.js` path and the same environment values. Each starts the server when it needs it, and both read the same `.env`, so your tokens stay in one place. ### Does this work with Claude in the browser? No. The official Intuit server runs locally on your machine, and claude.ai in a browser runs in the cloud. A web page can't reach a local process. You need Claude Desktop or Claude Code. That's a property of local MCP servers in general, not a setting you can change. ### How do I keep Claude read-only in my books? Set `QUICKBOOKS_DISABLE_WRITE`, `QUICKBOOKS_DISABLE_UPDATE`, and `QUICKBOOKS_DISABLE_DELETE` to `"true"` in the server's env block. Those flags stop the write tools from registering at all, so Claude can't see or call them. Every `get_*` and `search_*` tool, plus the 11 reports, keeps working. It's the right posture for client books. ### When should I use claude mcp add-json instead of claude mcp add? Use `add-json` when the server needs a longer config, like this one with its eight environment variables. It accepts the same JSON block the Desktop config uses, so one canonical config serves both surfaces. Plain `claude mcp add` is the quick form for simple servers, and the `--transport http` and `--transport sse` variants are for remote servers. ### Why doesn't Claude need a connector the way ChatGPT does? Anthropic created the Model Context Protocol, and Claude supports MCP servers natively in both Desktop and Code. ChatGPT reaches outside tools through its developer-mode connector path, which is a separate setup with its own rules. The Intuit server is the same either way; only the wiring differs. The ChatGPT version of this guide walks that other path. ### Do I have to redo the OAuth handshake every time I open Claude? No. The handshake is one-time per company. After it, the refresh token keeps the server connected, and it runs locally until the 100-day refresh window lapses. If the window does lapse, run `npm run auth` again and you're reconnected. ### Does Claude send my QuickBooks data to Anthropic? Anything Claude reads through the connection is processed by the model, the same as text you paste into a chat. Review Anthropic's data terms and your own confidentiality obligations before connecting books you don't own. For client work, keep the connection read-only and be deliberate about which realm you authorize. ### Which Claude model should I use for bookkeeping work? The connection works the same across Claude's models, because MCP tools don't depend on which model answers. Model choice affects reasoning on hard prompts, not access. Start with the default model in Claude Desktop, and don't expect a model upgrade to close the judgment gap. Knowing net from gross isn't a model-size problem. ## The short version: connect QuickBooks Online to Claude with Intuit's official server, keep the flags read-only, and let Claude answer the questions your books have been hiding. Then be honest about the ceiling. Access isn't judgment, and a pipe isn't a bookkeeper. For the routine work itself, bring a tool that was built to do it, checked by you. *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* ### [Accrual vs Cash Basis Accounting for SaaS Startups](https://growthy.com/blog/accrual-vs-cash-basis-accounting-for-saas-startups): Accrual vs cash basis accounting for SaaS startups: why deferred revenue and MRR break cash basis, the $32M tax threshold, and when to switch books. ## Introduction You closed a $24,000 annual deal in January. The cash hit your bank that week. Your books lit up like you had a record month. But you did not earn $24,000 in January. You earned about $2,000, and you owe the customer eleven more months of service. This is the gap between two ways of keeping books. Cash basis accounting records money when it moves. Accrual accounting records money when you earn it. For a SaaS startup, that gap is not a small detail. It sits at the center of SaaS accounting, and it changes your runway math, your investor updates, and your tax bill. This guide answers three things. Which method fits your stage. Why subscription revenue breaks cash basis. And when the IRS forces your hand. > **Definition Box:** Cash basis accounting books revenue and expenses when cash moves. Accrual accounting books revenue when it is earned and expenses when they are incurred, even if the cash moves on a different day. SaaS companies lean toward accrual because subscription revenue is earned over time, not all at once. ## Key Takeaways Here is the short version before the details. 1. **It is a timing question.** Cash basis counts money when it moves. Accrual counts it when you earn it. 2. **Deferred revenue is a liability, not income.** Annual prepayments sit on your balance sheet and release into revenue month by month. 3. **The tax trigger is not the investor trigger.** A $32 million gross receipts rule forces accrual for tax. Investors and GAAP expect accrual long before that. 4. **Switch when your money gets lumpy.** Sell annual contracts, start raising, or near the threshold, and it is time to move to accrual. ## Cash vs accrual, in plain terms Take that same $24,000 annual contract. Watch it run through each method. Under cash basis, the full $24,000 lands in January. February through December show zero from this deal. Your January looks huge. The rest of the year looks flat. Nothing about that picture is true. Under accrual, you recognize about $2,000 each month for twelve months. The other $22,000 you have not earned yet. It sits in a balance sheet account called deferred revenue. Deferred revenue is money you hold but still owe as service. It is a liability, not income. Each month, you move one slice from that account into revenue. Here is the same deal as a table. It makes the timing gap easy to see. | Month | Cash basis revenue | Accrual revenue | Deferred revenue balance | | --- | --- | --- | --- | | January | $24,000 | $2,000 | $22,000 | | February | $0 | $2,000 | $20,000 | | March | $0 | $2,000 | $18,000 | | ... | $0 | $2,000 | falls $2,000 each month | | December | $0 | $2,000 | $0 | Look at the two revenue columns. Cash basis gives you one giant spike and eleven flat months. Accrual gives you a steady $2,000 line that matches the service you deliver. The deferred revenue balance is the promise you still owe. It starts at $22,000 and drains to zero as you earn it. This is the core of [deferred revenue accounting for SaaS companies](https://growthy.com/blog/deferred-revenue-saas-companies). Cash tells you what is in the bank. Accrual tells you what you actually earned. One of those numbers helps you run the company. The other just tracks your checking account. ## Why SaaS revenue breaks cash basis Subscription revenue has three traits that cash basis cannot handle well. First, annual prepaid contracts. One big upfront payment makes a single month look like a boom. The next month looks like a bust. Neither reflects the steady business underneath. Second, MRR roll-forward. Your monthly recurring revenue is the number you and your investors track. Cash basis hides it. A month full of annual prepayments and a month full of monthly plans can bring in the same cash while telling very different stories about growth. Third, refunds and proration. A mid-month upgrade or a partial refund splits cash and earned revenue apart. Cash basis cannot show the difference cleanly. Accrual smooths all of this into the real trend. It shows the MRR line that investors price a round on, not the noise from your bank balance. Picture two months side by side. In month one you sign ten customers on annual plans at $1,200 each paid upfront. That is $12,000 in cash. In month two you sign ten customers on monthly plans at $100 each. That is $1,000 in cash. On cash basis, month one looks twelve times bigger than month two. But both months added the same $1,000 of monthly recurring revenue. Accrual shows that clearly. Cash basis buries it. When a board member asks how fast you are growing, only one of these answers is honest. ## The $32 million tax threshold Here is the rule that surprises founders. Under Section 448 of the tax code, a business with average annual gross receipts above $32 million for the prior three years must use accrual for tax. That figure is indexed for inflation and rises most years, so confirm the current-year amount before you rely on it. Two points matter here. One, this is a tax trigger. It decides which method you report to the IRS. It is a separate question from how you run your internal books or what you show investors. Two, most SaaS startups hit accrual pressure from investors and GAAP years before they reach $32 million in revenue. The tax threshold is a ceiling, not a starting line. C corporations have their own accrual rules on top of this. So do not wait for the tax rule to force you. By the time it applies, you should have been on accrual for a long time. ## When investors and GAAP expect accrual Once you raise a priced round, accrual stops being optional in practice. Due diligence assumes accrual books. Board reporting assumes accrual. GAAP revenue recognition, the rule set most investors expect you to follow, is built on accrual. The standard known as ASC 606 sets out how subscription revenue gets recognized over time, and it assumes accrual as the base. You can read more on how [ASC 606 revenue recognition works for SaaS](https://growthy.com/blog/asc-606-revenue-recognition-saas). This is why most venture-backed SaaS companies run accrual from seed stage. The cost of switching during a raise, while an investor is reading your numbers, is far higher than the cost of starting clean. There is a credibility cost too. When a lead investor opens your data room and finds cash-basis books with a spiky revenue line, the first question is whether you understand your own business. Accrual books with a clean MRR trend answer that question before it is asked. You want diligence to be about your growth rate, not about your bookkeeping. ## The decision: when to switch Use this simple guide. Stay on cash basis if you are pre-revenue or very small, you sell only month-to-month plans, and you are not raising soon. Cash basis is cheaper and simpler at that size. Move to accrual when any one of these is true. You start selling annual or multi-year contracts. You begin a fundraise or expect one within a year. Your revenue approaches the gross receipts threshold. Any of these means your cash and your earned revenue have drifted far enough apart that cash basis will mislead you. One caution. Switching methods for tax is a formal accounting method change, usually filed on Form 3115. It is not something you do quietly in a spreadsheet. Confirm the timing and paperwork with your accountant before you flip. A few traps catch founders here. Do not run cash basis for investors and accrual for tax and let the two drift with no link between them. Keep one set of accrual books as your source of truth, then make the tax adjustments from there. Do not wait until a term sheet is on the table to clean up a year of cash-basis history. And do not treat deferred revenue as spare cash. The money is in your bank, but the service is still owed, so a chunk of that balance is a promise, not profit. Spending it like profit is how a fast-growing SaaS company runs out of room without seeing it coming. ## Conclusion Accrual is not red tape. It is the only view that tells the truth about a subscription business. Cash basis answers a narrow question: what is in the bank today. Accrual answers the one that matters: what did you actually earn, and what do you still owe. For a SaaS founder reading runway and reporting to a board, that is the whole game. If you want books that show your real MRR instead of bank-balance noise, [get early access to Growthy and start with accrual-ready books](/signup?utm_content=accrual-vs-cash-basis-accounting-for-saas-startups). Your next board update will read a lot cleaner. Related: [Chart of Accounts for SaaS Startups](/blog/chart-of-accounts-for-saas-startups), [SaaS Metrics: MRR and ARR](/blog/saas-metrics-mrr-arr-bookkeepers), [cash vs accrual basics](/blog/accrual-vs-cash-accounting), [SaaS Accounting guide](/topics/saas-accounting). ### [How to Categorize Calendly in QuickBooks (and Xero)](https://growthy.com/blog/categorize-calendly): Calendly posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. Per-seat billing prorates mid-cycle. Annual prepays deduct in full under the 12-month rule. ## How to Categorize Calendly in QuickBooks (and Xero) Calendly hits the bank feed as a small monthly or annual charge, and it's about as easy to categorize as SaaS gets. It's still worth a second look, because Calendly touches calendars, syncs with email, and for some users even collects payments. That's enough to make a bookkeeper hesitate and reach for Telecommunications or Office Supplies instead of the obvious answer. Don't overthink it. Calendly is scheduling software. It belongs in Software or Dues & Subscriptions, right next to Zoom and Google Workspace. The 80% here is genuinely simple: one clean baseline case, no ambiguity. The other 20% is narrower than most vendors in this cluster. It comes down to per-seat billing that prorates mid-cycle, the 12-month rule that governs Calendly's annual prepay, and payment collection through Calendly that isn't a software cost at all. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Calendly go to in QuickBooks?** > > Calendly posts to **Dues & Subscriptions** or **Software (Detail Type: Software)** in QuickBooks Online. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." You don't issue a 1099 to Calendly. Calendly LLC is a corporate payee, exempt under §6041. Sales tax depends on your state: as of 2026, SaaS is generally taxable in Texas (as a data-processing service, roughly 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes, so verify your state's current rule. Calendly collects where required. Annual prepayments of 12 months or less are generally deductible in full in the year paid under the 12-month rule (Treas. Reg. §1.263(a)-4(f)); the $2,500 de minimis threshold applies to buying equipment, not subscriptions, so it doesn't apply here. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not Telecommunications, not Advertising, not Office Supplies. Calendly is a productivity tool, not a phone line or a marketing spend. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to Calendly.** Calendly LLC is a corporate payee. The §6041 corporate exemption applies, so skip the W-9 chase. - **Per-seat billing prorates mid-cycle.** Adding a paid seat triggers a prorated charge for the rest of the billing period. Free-plan users generate no expense at all. - **Annual prepay is generally fully deductible under the 12-month rule.** A single-year prepay (Treas. Reg. §1.263(a)-4(f)) is deductible in the year paid regardless of invoice size; only a multi-year contract gets capitalized and amortized. - **Payment collection isn't a subscription cost.** If Calendly collects payments on your behalf through a Stripe or PayPal integration, that's revenue and merchant fees, a separate matter from the software charge. ### What is Calendly? Calendly is scheduling software. It lets clients, candidates, and coworkers book time on your calendar without the back-and-forth email thread. It syncs with Google Calendar, Outlook, and iCloud, and it layers on availability rules, buffer times, and reminders. Plans run Free, Standard, Teams, and Enterprise, priced per seat, billed monthly or annually. Small teams often run one or two paid seats for the people who take client meetings, while everyone else stays on the free tier or doesn't use it at all. For most small businesses, Calendly sits next to Zoom and Google Workspace in the day-to-day software stack. ### Where Calendly goes in your books | Field | Value | | --- | --- | | QBO account | Dues & Subscriptions OR Software (Detail Type: Software). Add sub-account "Calendly" if you track SaaS vendors individually. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC | 7372 (Computer Programming/Data Processing) | | 1099-NEC required | No. Calendly LLC is a corporate payee. §6041 corporate exemption. | | Sales-tax flag | Depends on state. As of 2026, generally taxable in TX (data processing, ~80% of the charge), NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR. Varies by state and locality and changes; verify your current rule. Calendly collects where required. | ### The Difficult 20%: Where Calendly trips bookkeepers up #### It's Software, not Telecommunications or Advertising Calendly touches your calendar and your inbox, and that's exactly why it gets mis-filed. Some bookkeepers see the calendar sync and reach for Telecommunications. Others see it used for sales booking links and reach for Advertising, or file it as a generic Office Supplies line because it "helps run the office." None of that is right. Calendly doesn't carry a phone signal and it doesn't buy media placement. It's a productivity tool that automates scheduling, same category as any other SaaS subscription. The temptation to mis-file comes from what Calendly touches, not what it is. Judge the account by the function of the software, not by what it connects to. #### Per-seat billing across Standard, Teams, and Enterprise Calendly bills per seat. On Standard or Teams, adding a paid user mid-cycle usually triggers a prorated charge for the remainder of the billing period, so the invoice amount can shift month to month as headcount changes. Users on the Free plan generate no charge and no journal entry at all, even though they show up in the same workspace as paid seats. When you're reconciling the Calendly line against a roster, check paid-seat count first. A charge that looks "off" from last month is often just a seat added or removed, not a billing error. #### Annual vs monthly billing Most small teams pay Calendly monthly, which is simple: deduct each month as you pay. Some prepay annually for the discount. Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), an annual Calendly prepayment is generally deductible in full in the year you pay it, even on a larger Enterprise invoice, as long as it covers 12 months or less and doesn't run past the end of next tax year. The $2,500 figure some bookkeepers reach for here is the de minimis safe harbor for buying equipment, not for subscriptions, so it doesn't apply to a Calendly prepay. A multi-year Calendly contract is rare, but it happens with larger deployments. That's a different case: capitalize it as Prepaid Expense and amortize it over the term. Accrual-method businesses have an extra timing wrinkle, so confirm the treatment with your CPA. #### Integrations don't add a Calendly charge, but payment collection does Calendly connects to Zoom, Google Calendar, Microsoft calendars, and other tools without generating any additional Calendly charge. Those integrations are free features of the subscription you already pay for. Payment collection is different. If you use Calendly's payment integration to collect a deposit or fee at booking through Stripe or PayPal, that money is revenue to your business, not a Calendly expense. The Stripe or PayPal processing fee on that transaction is a merchant fee, booked separately from the Calendly subscription. Keep these three things apart: the Calendly subscription charge, the revenue collected through Calendly at booking, and the payment processor's fee on that revenue. #### Solopreneur mixed personal/business scheduling A solo consultant or coach often runs one paid Calendly account that books both client meetings and personal appointments. If that's the case, allocate the subscription by the share of bookings that are actually business use. A consultant who uses Calendly almost entirely for client calls might allocate 90% to the business; someone who splits time more evenly should split the expense accordingly. Document the allocation percentage and keep it consistent from month to month, the same approach used for a mixed-use Google Workspace or phone line. ### How Growthy categorizes Calendly automatically Growthy spots the Calendly line on the bank feed and suggests Software or Dues & Subscriptions based on pattern learning across your books. Unusual or first-time charges get flagged for your review instead of posting automatically. You review and approve every suggestion. ### FAQ #### What expense category is Calendly? Software or Dues & Subscriptions in QuickBooks. Account 463 or 408 in Xero. It's scheduling SaaS, so it sits with other productivity software like Zoom and Google Workspace. #### Is Calendly tax deductible? Yes. It's an ordinary and necessary business expense under §162. Monthly billing deducts in the year incurred, and annual prepays of 12 months or less are also generally deductible in full under the 12-month rule (Treas. Reg. §1.263(a)-4(f)). Only a multi-year prepay gets amortized. #### Do I issue a 1099 to Calendly? No. Calendly LLC is a corporate payee, exempt under §6041. No 1099-NEC or 1099-MISC regardless of how much you pay. #### What Schedule C line is Calendly? Line 27a Other expenses, with description "Software subscriptions." It's SaaS, so Line 27a is the cleaner mapping than Utilities or Office Expense. #### How do I handle a Calendly seat added mid-month? Post the prorated charge to the same Software or Dues & Subscriptions account. It's not a separate expense category, just a larger invoice for the period the seat was active. #### Should I categorize Calendly annual billing differently? Not usually. A single-year annual prepay is generally deductible in full under the 12-month rule, regardless of invoice size. Only a multi-year Calendly contract gets capitalized as Prepaid Expense and amortized over the term. #### Do I owe sales tax on Calendly? Depends on your state. As of 2026, SaaS is generally taxable in Texas (as a data-processing service, roughly 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon. Treatment varies by state and locality and changes; Calendly collects where required, so verify your state's (and city's) current rule. #### I use Calendly to collect payments at booking. How do I categorize that? That's revenue, not a Calendly expense. The subscription charge is Software; the payment collected is income; the Stripe or PayPal fee on it is a merchant fee. Keep all three separate. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize HubSpot](/blog/categorize-hubspot) - [How to categorize Zoom](/blog/categorize-zoom) - [How to categorize Google Workspace](/blog/categorize-google-workspace) Stop second-guessing a subscription this simple. [Get started with Growthy](/signup?utm_content=categorize-calendly): pattern learning across your software vendors, with unusual charges flagged for your review. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Figma in QuickBooks (and Xero)](https://growthy.com/blog/categorize-figma): Figma posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. Per-editor billing means a free viewer who edits can jump your bill mid-cycle. Annual prepays deduct under the 12-month rule. ## How to Categorize Figma in QuickBooks (and Xero) A design team signs up for Figma, the bill looks predictable, and a bookkeeper waves the charge through to Software without a second thought. Then a product manager who was only supposed to view a file leaves a comment or nudges a layer, and the next invoice is bigger than last month's for no reason anyone flagged. Figma bills per editor, not per headcount, and that one quirk causes more mid-cycle confusion than almost any other SaaS line on the bank feed. Figma is design and prototyping software. It belongs in Software or Dues & Subscriptions, same shelf as Canva and Adobe Creative Cloud. The easy 80% is knowing that. The other 20% is the per-editor seat jump, the separate Dev Mode and FigJam seats, and the annual prepay that can cross into capitalization. It's also the marketing team that uses Figma without turning it into an Advertising expense. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Figma go to in QuickBooks?** > > Figma posts to **Dues & Subscriptions** or **Software (Detail Type: Software)** in QuickBooks Online. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." You don't issue a 1099 to Figma. Figma, Inc. is a corporate payee, exempt under §6041. Sales tax varies by state and changes often (taxable as data processing in TX, exempt in CA, FL, IL, and OR); verify your state's current rule. Annual prepayments of 12 months or less are generally deductible in full in the year paid under the 12-month rule (Treas. Reg. §1.263(a)-4(f)); the $2,500 figure is a separate safe harbor for equipment, not subscriptions. Multi-year prepays capitalize as Prepaid Expense and amortize over the term. Because Figma bills per editor, a free viewer who starts editing can push the bill up without warning. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not Advertising, even when a marketing team is the one using it. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to Figma.** Figma, Inc. is a corporate payee. The §6041 corporate exemption applies, so skip the W-9 chase. - **Per-editor billing is the signature quirk.** A free viewer who comments or edits auto-upgrades to a paid seat, and the subscription cost can jump mid-cycle. - **Annual prepay of 12 months or less = deductible now.** The 12-month rule (Treas. Reg. §1.263(a)-4(f)) lets you deduct it in full the year you pay, regardless of invoice size. Only multi-year prepays capitalize and amortize. - **Figma is independent.** The Adobe acquisition never closed. The bank line reads Figma, not Adobe. ### What is Figma? Figma is browser-based design and prototyping software. Product, UX, and engineering teams use it to design interfaces, build clickable prototypes, and hand off specs for development. FigJam is Figma's separate whiteboard product for brainstorming and planning sessions. Dev Mode is a paid add-on that gives engineers a closer, code-oriented view of design files. Figma bills by editor seat on a monthly or annual subscription; viewers who only look at files ride along at no charge until they start editing. Adobe agreed to acquire Figma in 2022, but UK and EU regulators raised competition concerns, and both companies walked away from the deal in 2023. Figma remains an independent company. For most small teams, it sits next to Canva and Adobe Creative Cloud in the design software stack. ### Where Figma goes in your books | Field | Value | | --- | --- | | QBO account | Dues & Subscriptions OR Software (Detail Type: Software). Add sub-account "Figma" if you track design tools individually. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC range | 7372 (Computer Programming/Data Processing) | | 1099-NEC required | No. Figma, Inc. is a corporate payee. §6041 corporate exemption. | | Sales-tax flag | As of 2026, generally taxable in TX (data processing, ~80% of the charge), NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR. Varies by state/locality and changes; verify your state's current rule. Figma collects where required. | ### The Difficult 20%: Where Figma trips bookkeepers up #### The per-editor seat surprise This is the Figma-specific one, and it's the quirk that catches bookkeepers off guard mid-month. Figma prices seats by editor, not by total headcount on the team. Viewers who only look at files are free. The moment a viewer leaves a comment or makes an edit, Figma auto-upgrades that person to a paid editor seat, and the subscription cost rises without any heads-up on the account. A five-person design team can quietly become an eight-person bill because three product managers started editing instead of just commenting. When the bank feed shows a bigger Figma charge than last month, check the seat count in the admin console before assuming a billing error. Book the higher amount as Software, same as always. Only the amount changes, not the category. #### Dev Mode and FigJam: separate seats, same account Figma sells Dev Mode and FigJam as their own paid seat types, on top of standard design seats. Dev Mode gives engineers a code-focused view of design files so they can pull specs and assets directly. FigJam is a separate whiteboard product with its own subscription tier for planning and brainstorming. Both can show up as additional line items on the Figma invoice, sometimes billed separately. Whatever the seat type, the category stays the same: Software or Dues & Subscriptions. Don't split Dev Mode into a "Development Tools" account or FigJam into "Meetings and Collaboration." They're still Figma, still Software. #### Annual vs monthly: the 12-month rule, not the $2,500 rule Most small teams pay Figma monthly: deduct each charge as you pay it, no complications. Some prepay a year for Figma's annual-plan discount, and that's where bookkeepers reach for the wrong rule. Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), a prepayment that buys 12 months or less of access, and doesn't run past the end of next tax year, is generally deductible in full in the year you pay it, even when the invoice is a large number. The $2,500 figure you may have heard is the de minimis safe harbor for buying equipment, not for subscriptions, so don't apply it to an annual Figma renewal. Prepay for more than 12 months and it's different: capitalize it as Prepaid Expense and amortize it over the term. Accrual-method businesses have an extra timing wrinkle, so confirm the treatment with your CPA. #### A marketing team using Figma is still Software, not Advertising Figma started as a tool for product and UX teams, but marketing teams use it too, for social graphics, campaign mockups, and ad creative. That use doesn't move the category. Figma is design and product software regardless of which department swipes the card. Route it to Software or Dues & Subscriptions, not Advertising. This is a sharper line than [how to categorize Canva](/blog/categorize-canva), where a marketing team's use sits closer to a judgment call because Canva leans harder into templated marketing content. Figma stays interface and product design at its core, so Software holds even when marketing owns the seat. #### Figma is independent, not an Adobe subsidiary Adobe agreed to buy Figma in 2022, and the deal made headlines for over a year. It never closed. UK and EU regulators raised competition concerns, and both companies walked away from the deal in late 2023. Figma remains a standalone, independent company. Don't assume the bill will show Adobe, and don't fold Figma into whatever account holds your Adobe Creative Cloud subscription. The bank line reads Figma, and the books should too. ### How Growthy suggests a category for Figma Growthy suggests a category for the Figma line on your bank feed. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### What expense category is Figma? Software or Dues & Subscriptions in QuickBooks. Account 463 or 408 in Xero. It's design software, so it sits with Canva and Adobe Creative Cloud. #### Is Figma tax deductible? Yes. It's an ordinary and necessary business expense under §162. Full deduction in the year paid for monthly billing or for an annual prepay of 12 months or less under the 12-month rule (Treas. Reg. §1.263(a)-4(f)). Only a multi-year prepay amortizes over the term instead. #### Do I issue a 1099 to Figma? No. Figma, Inc. is a corporate payee, exempt under §6041. No 1099-NEC or 1099-MISC required regardless of how much you pay. #### What Schedule C line is Figma? Line 27a Other expenses, with description "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. #### Why did my Figma bill go up without warning? Most likely a viewer became an editor. Figma auto-upgrades anyone who comments or edits a file to a paid seat, even if they started as a free viewer. Check the seat count in the admin console before assuming a billing error. #### Should I categorize Figma annual billing differently? Only if the prepay covers more than 12 months. A standard annual (12-month-or-less) prepay is generally deductible in full in the year you pay it under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), regardless of the invoice size. A multi-year prepay capitalizes as Prepaid Expense and amortizes over the term. Confirm the treatment with your CPA if you're on the accrual method. #### Do I owe sales tax on Figma? Depends on your state, and it changes. As of 2026, SaaS is generally taxable in Texas (taxed as data processing, about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon. Treatment varies by state and locality. Figma collects where required; verify your state's current rule. #### Is Figma owned by Adobe? No. Adobe's proposed acquisition of Figma was called off in 2023 after regulatory pushback. Figma is an independent company, and the invoice will say Figma, not Adobe. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize Canva](/blog/categorize-canva) - [How to categorize Adobe Creative Cloud](/blog/categorize-adobe-creative-cloud) - [How to categorize Slack](/blog/categorize-slack) Stop guessing why last month's Figma bill jumped. [Get started with Growthy](/signup?utm_content=categorize-figma) so Growthy auto-categorizes high-confidence transactions and you review the rest. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Zoom in QuickBooks (and Xero)](https://growthy.com/blog/categorize-zoom): Zoom posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. Zoom Phone is telecom, not software; Zoom Rooms hardware capitalizes separately. Annual prepays deduct under the 12-month rule. ## How to Categorize Zoom in QuickBooks (and Xero) Zoom hits the bank feed as a clean monthly or annual charge, and most bookkeepers park it in Software without a second look. That's fine, right up until the invoice starts carrying more than the meeting subscription. Now there's a Zoom Phone line, a Zoom Rooms tablet, an Events add-on, or a chunk of metered calling minutes. Zoom Video Communications sells meeting software. It belongs in Software or Dues & Subscriptions, same shelf as Slack and Google Workspace. The easy 80% is knowing that. The other 20% is trickier: the Zoom Phone charge is actually a telecom expense, the Rooms hardware isn't a subscription at all, and the annual prepay needs its own 12-month-rule check. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Zoom go to in QuickBooks?** > > Zoom posts to **Dues & Subscriptions** or **Software (Detail Type: Software)** in QuickBooks Online, or account **463**/**408** in Xero. On Schedule C, it's **Line 27a Other expenses**, description "Software subscriptions." No 1099: Zoom Communications, Inc. is a corporate payee, exempt under §6041. Sales tax depends on your state (generally taxable in TX, NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR; TX taxes SaaS as data processing, about 80% of the charge) and changes often, so verify your state's current rule. A Zoom Phone charge splits to Telecommunications (Line 25). Annual prepays of 12 months or less are generally deductible in full under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), regardless of size; the $2,500 de minimis safe harbor is for equipment, not subscriptions. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not Telecommunications, not Office Supplies, not a generic "Computer" account. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to Zoom.** Zoom Communications, Inc. is a corporate payee. The §6041 corporate exemption applies, so skip the W-9 chase. - **Zoom Phone is telecom, not software.** The Phone add-on is a real calling service. Split it to Telecommunications, Schedule C Line 25, the same way Google Voice splits off a Workspace bill. - **Zoom Rooms hardware isn't a subscription.** Appliances and tablets are tangible equipment. Capitalize as a fixed asset or expense under the de minimis tangible-property rules, never Software. - **Annual prepay of 12 months or less = deduct now.** The 12-month rule (Treas. Reg. §1.263(a)-4(f)) lets you deduct the whole prepayment in the year paid, no matter the invoice size. The $2,500 de minimis safe harbor is for equipment, not subscriptions. Only prepays running past 12 months get capitalized and amortized. ### What is Zoom? Zoom is video conferencing and meeting software. Meetings, Webinars, Zoom Events, Team Chat, and (billed as a separate add-on) Zoom Phone, a cloud calling service, all live under one Zoom account. Companies buy a per-host or per-user monthly or annual subscription, and larger teams often add Zoom Rooms hardware for conference-room video. For most small teams, Zoom sits next to Slack and Google Workspace in the software stack. The base Meetings plan is what most SMBs categorize without thinking; it's the add-ons that cause the trouble. ### Where Zoom goes in your books | Field | Value | | --- | --- | | QBO account | Dues & Subscriptions OR Software (Detail Type: Software). Add sub-account "Zoom" if you track SaaS vendors individually. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." Zoom Phone portion goes to Line 25 Utilities/Telecommunications. | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC range | 7372 (Computer Programming/Data Processing), 4816 (Computer Network Services) | | 1099-NEC required | No. Zoom Communications, Inc. is a corporate payee. §6041 corporate exemption. | | Sales-tax flag | Depends on state. As of 2026, generally taxable in TX (data processing, ~80% of the charge), NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR. Varies by state and locality and changes often; verify your state's current rule. Zoom collects where required. | ### The Difficult 20%: Where Zoom trips bookkeepers up #### Zoom Phone is a real phone line, not software The Zoom Phone add-on gives you a cloud phone system: extensions, voicemail, call routing, sometimes a toll-free number. That's a telecommunications service, not meeting software, so it belongs in Telecommunications (Schedule C Line 25), not Software. If your invoice bundles Meetings and Phone on one line, split it. This is the same move as splitting Google Voice off a Google Workspace bill: the vendor name doesn't set the category, the service does. #### Webinar, Zoom Events, and large-meeting add-ons Larger accounts often add Webinar licenses, Zoom Events, or a large-meeting capacity bump on top of the base plan. These bill separately or as line items on the same invoice. They're still Software, same account as the core subscription, but if the add-on spend is material, track it in a sub-account so you can see what's driving the SaaS line month over month. #### Zoom Rooms hardware is equipment, not a subscription Zoom Rooms needs hardware: a dedicated tablet for room scheduling, a camera, a speaker/mic bar. That's tangible property, not a SaaS subscription, and it doesn't belong in Software. Book it as a fixed asset if it's above your capitalization threshold, or expense it under the de minimis safe harbor for tangible property if it falls under your per-item limit. Keep the Zoom Rooms software license, if billed separately from the hardware, in Software; keep the hardware in Equipment or Computer Equipment. #### Toll-free numbers and metered minutes Some Zoom Phone plans charge for toll-free numbers or metered outbound minutes on top of the flat per-user rate. That usage-based charge is Telecommunications, same as the Phone line itself, not a flat SaaS fee. Don't fold metered minutes into the Software account just because the rest of the bill is a subscription. #### Annual prepay: the 12-month rule, not the $2,500 line Most teams pay Zoom monthly. Some prepay a year for the discount. Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), if that prepayment buys 12 months or less of access and doesn't run past the end of next tax year, you can generally deduct the whole thing in the year you pay it, even when it's a big number. The $2,500 figure you may have heard is the de minimis safe harbor for buying equipment, not for subscriptions, so don't apply it to a Zoom prepay. Prepay for more than 12 months and it's different: capitalize it as Prepaid Expense and deduct it over the term. Accrual-method businesses have an extra timing rule, so confirm the treatment with your CPA. ### How Growthy categorizes Zoom automatically Growthy suggests a category for the Zoom line on your bank feed. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### What expense category is Zoom? Software or Dues & Subscriptions in QuickBooks. Account 463 or 408 in Xero. It's a SaaS subscription, so it sits with other productivity software like Slack and Google Workspace. #### Is Zoom tax deductible? Yes. It's an ordinary and necessary business expense under §162. Full deduction in the year incurred for monthly billing. Annual prepays of 12 months or less are also deductible in full under the 12-month rule; only prepays running past 12 months get amortized. #### Do I issue a 1099 to Zoom? No. Zoom Communications, Inc. is a corporate payee, exempt under §6041. No 1099-NEC or 1099-MISC required regardless of how much you pay. #### What Schedule C line is Zoom? Line 27a Other expenses, with description "Software subscriptions." The Zoom Phone portion of your bill, if you have one, goes to Line 25 Utilities/Telecommunications instead. #### How do I categorize Zoom Phone? Telecommunications, Schedule C Line 25. It's a phone service, not meeting software. Split it from the Meetings subscription on the same invoice, the same way you'd split Google Voice off a Workspace bill. #### Are Zoom Rooms tablets and cameras Software? No. That's tangible equipment. Capitalize it as a fixed asset or expense it under the de minimis safe harbor for tangible property, not Software. Only the Zoom Rooms license itself, if billed separately, is Software. #### Should I categorize Zoom's annual billing differently? Not because of the dollar amount. Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), an annual prepay covering 12 months or less is generally deductible in full when paid, no matter the invoice size. The $2,500 de minimis safe harbor applies to buying equipment, not subscriptions. A prepay running longer than 12 months gets capitalized as Prepaid Expense and amortized over the term. Accrual-method filers should confirm the timing with their CPA. #### Do I owe sales tax on Zoom? Depends on your state. As of 2026, SaaS is generally taxable in states like Texas (taxed as data processing, about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon. Treatment varies by state and locality and changes often; verify your state's (and city's) current rule. Zoom collects where required. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize Slack](/blog/categorize-slack) - [How to categorize Microsoft 365](/blog/categorize-microsoft-365) - [How to categorize Google Workspace](/blog/categorize-google-workspace) Stop guessing whether that Zoom line is Software or Telecommunications every month. [Get started with Growthy](/signup?utm_content=categorize-zoom): Growthy auto-categorizes high-confidence transactions; you review the rest. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Slack in QuickBooks (and Xero)](https://growthy.com/blog/categorize-slack): Slack posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. Fair Billing credits are a contra-expense, not income. Annual prepays deduct in full under the 12-month rule. ## How to Categorize Slack in QuickBooks (and Xero) Slack shows up on the bank feed as a clean monthly charge. Most bookkeepers wave it through to Office Supplies or a catch-all "Software" line without thinking twice. That works right up until the annual invoice lands, or a credit shows up for users who left. Or the whole thing gets swallowed into a Salesforce contract, and the word "Slack" disappears from the bill entirely. Slack is team messaging software. It belongs in Software or Dues & Subscriptions, same shelf as Google Workspace and Microsoft 365. The easy 80% is knowing that. The other 20% is the Fair Billing credit that looks like income but isn't, the annual prepay bookkeepers often capitalize by mistake, and the invoice that says Salesforce. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Slack go to in QuickBooks?** > > Slack posts to **Dues & Subscriptions** or **Software (Detail Type: Software)** in QuickBooks Online. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." You don't issue a 1099 to Slack. Slack Technologies is a corporate subsidiary of Salesforce, Inc., exempt under §6041. Sales tax depends on your state: as of 2026, generally taxable in Texas (as data processing, about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes, so verify your state's current rule. Annual prepays are generally deductible in full in the year you pay, under the 12-month rule (Treas. Reg. §1.263(a)-4(f)); the $2,500 figure people cite is the safe harbor for buying equipment, not subscriptions. Multi-year prepays capitalize and amortize; accrual-method filers should confirm timing with their CPA. Fair Billing credits for inactive users reduce the Software expense; they are not Other Income. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not Office Supplies, not Advertising, not a generic "Computer" account. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to Slack.** Slack Technologies is a Salesforce subsidiary, a corporate payee. The §6041 corporate exemption applies, so skip the W-9 chase. - **Fair Billing credits are a contra-expense.** When a credit posts for deactivated users, it reduces Software expense. Do not book it to Other Income. - **Annual (12-month or less) prepay is generally deductible in full.** The 12-month rule (Treas. Reg. §1.263(a)-4(f)) lets you deduct the whole prepayment in the year you pay it, no matter the dollar amount. Only a multi-year prepay capitalizes as Prepaid Expense. - **The Salesforce invoice is the trap.** If Slack is bundled into a Salesforce contract, the bill may never say "Slack." The category still follows the substance: it's Software. ### What is Slack? Slack is a business messaging and collaboration platform. Channels, direct messages, huddles, file sharing, and app integrations, all in one workspace. Companies use it as the day-to-day replacement for internal email. Slack sells paid plans (Pro, Business+, and Enterprise Grid) priced per active user, billed monthly or annually. Salesforce acquired Slack in 2021, which matters for how the billing sometimes shows up. For most small teams, Slack sits right next to Google Workspace and Microsoft 365 in the software stack, and plenty of companies run all three. ### Where Slack goes in your books | Field | Value | | --- | --- | | QBO account | Dues & Subscriptions OR Software (Detail Type: Software). Add sub-account "Slack" if you track SaaS vendors individually. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC range | 7372 (Computer Programming/Data Processing), 5734 (Computer Software Stores) | | 1099-NEC required | No. Slack Technologies is a Salesforce subsidiary, a corporate payee. §6041 corporate exemption. | | Sales-tax flag | As of 2026, generally taxable in TX (as data processing, about 80% of the charge), NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR. Varies by state and locality and changes, so verify your state's current rule. Slack collects where required. | ### The Difficult 20%: Where Slack trips bookkeepers up #### Fair Billing credits for inactive users This is the Slack-specific one. Slack's Fair Billing Policy only charges you for active users. When someone is deactivated mid-cycle, Slack issues a prorated credit toward your next invoice. That credit is easy to misread. It is not Other Income and it is not a refund of a prior year. It reduces your current Software expense. Book it against the same Software or Dues & Subscriptions account the charge came from, so the net expense reflects what you actually paid. If you route the credit to Other Income, you overstate both revenue and expense for the period. #### Monthly vs annual billing Most small teams pay monthly, a simple expense each period. Some prepay a year for the discount. Say a 40-person team prepays annually and the invoice runs into the thousands. (Illustrative example; your invoice depends on seat count and plan.) Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), that's generally deductible in full in the year you pay it. The rule applies as long as the prepayment buys 12 months or less of access and doesn't run past the end of next tax year. It doesn't matter how large the invoice is. The $2,500 figure some bookkeepers reach for is the de minimis safe harbor for buying equipment, not subscriptions, so don't apply it here. A multi-year prepay, a two- or three-year Slack deal, is different. Capitalize it as Prepaid Expense and amortize it over the term. Accrual-method businesses have an extra §461 timing wrinkle on top of the 12-month rule, so confirm the treatment with your CPA. #### Slack bought through a Salesforce contract Since the acquisition, larger accounts sometimes buy Slack as part of a broader Salesforce agreement. The invoice reads Salesforce, and the Slack line may be buried inside a bundled subscription. The expense category does not change. Slack is still Software regardless of who invoices it. The mistake is routing the whole Salesforce bill to one account when it actually mixes CRM seats, Slack, and add-ons. If the contract breaks out Slack separately, split it so your SaaS reporting stays honest. See [how to categorize Salesforce](/blog/categorize-salesforce) for the parallel reasoning on bundled clouds. #### Paid apps and integrations Slack's own subscription is Software. Paid third-party apps you add from the Slack Marketplace are often billed by the app vendor directly, not by Slack. Those are separate subscriptions with their own vendor and their own category, even though they live inside Slack. Do not fold a third-party integration's charge into the Slack line. Check who the actual payee is on the bank feed before you categorize. #### Free tier upgraded mid-period Slack has a free plan, and teams often run on it before upgrading. Only the paid portion posts to expense. If the upgrade happens mid-month, the first paid invoice may be prorated. Post what clears the bank; there is no journal entry for the free period. #### Enterprise Grid and custom contracts Larger organizations run Enterprise Grid on a negotiated annual contract, sometimes with an implementation or onboarding fee. The recurring subscription is Software. A one-time onboarding or migration fee billed by a consultant is Professional Services, not Software. If that consultant is not a corporation, it may trigger a 1099. Keep the recurring SaaS and the one-time services on separate lines. ### How Growthy categorizes Slack automatically Growthy spots the Slack (or Slack Technologies) line on the bank feed and suggests Software or Dues & Subscriptions based on pattern learning across your books. Unusual or first-time charges, like a Fair Billing credit or an annual prepay, get flagged for your review instead of posting automatically. You review and approve every suggestion. ### FAQ #### What expense category is Slack? Software or Dues & Subscriptions in QuickBooks. Account 463 or 408 in Xero. It's a SaaS subscription, so it sits with other productivity software like Google Workspace and Microsoft 365. #### Is Slack tax deductible? Yes. It's an ordinary and necessary business expense under §162. Monthly billing deducts in full each period. Annual (12-month or less) prepays are also generally deductible in full in the year paid, under the 12-month rule (Treas. Reg. §1.263(a)-4(f)); only multi-year prepays capitalize and amortize. #### Do I issue a 1099 to Slack? No. Slack Technologies is a corporate payee (a Salesforce subsidiary), exempt under §6041. No 1099-NEC or 1099-MISC regardless of how much you pay. #### What Schedule C line is Slack? Line 27a Other expenses, with description "Software subscriptions." It's SaaS, so Line 27a is the cleaner mapping than Utilities or Office Expense. #### How do I record a Slack Fair Billing credit? As a reduction of Software expense, against the same account the charge posted to. It's a contra-expense for inactive users, not Other Income and not a prior-period refund. #### Should I categorize Slack annual billing differently? Not based on the dollar amount. An annual (12-month or less) prepay is generally deductible in full in the year you pay it, under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), regardless of size. Only a multi-year prepay (more than 12 months) capitalizes as Prepaid Expense and amortizes over the term. Accrual-method filers should confirm timing with their CPA. #### Do I owe sales tax on Slack? Depends on your state. As of 2026, SaaS is generally taxable in Texas (as a data-processing service, about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes often. Slack collects where required; verify your state's current rule if you self-assess use tax. #### Slack shows up on my Salesforce bill. How do I categorize it? Still Software. The invoice header doesn't set the category, the substance does. If the contract itemizes Slack, split it from the CRM seats so your SaaS reporting is accurate. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize Salesforce](/blog/categorize-salesforce) - [How to categorize Google Workspace](/blog/categorize-google-workspace) - [How to categorize Zoom](/blog/categorize-zoom) Stop second-guessing which SaaS line goes where every month. [Get started with Growthy](/signup?utm_content=categorize-slack). Pattern learning across your software vendors, with unusual or first-time charges flagged for your review. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Salesforce in QuickBooks (and Xero)](https://growthy.com/blog/categorize-salesforce): Salesforce posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. Annual prepay is usually deductible in full under the 12-month rule, not auto-capitalized. Multi-cloud bundles split by product. ## How to Categorize Salesforce in QuickBooks (and Xero) Salesforce hits the bank feed once a year, not once a month, and that's exactly why bookkeepers get it wrong. A $20,000 wire clears in January and gets coded to a generic "Software" account. (Illustrative example; your invoice depends on edition and seat count.) The bookkeeper assumes a number that size has to be capitalized and amortized over the contract term, since it's so far past the $2,500 figure everyone's heard of. Twelve months later, the CPA has to explain that assumption ran backwards. That's the core issue with Salesforce. It's Software or Dues & Subscriptions, same shelf as HubSpot and Slack. Salesforce sells almost every deal as an annual, prepaid contract, but the question isn't whether to capitalize. It's whether the 12-month rule applies. Most Salesforce contracts run 12 months or less, so the prepay is generally deductible in full in the year you pay it, regardless of the dollar amount. The $2,500 figure is the safe harbor for buying equipment, not software subscriptions, and it doesn't belong in this decision. The case that does capitalize is a true multi-year contract. Layer in multi-cloud bundles, AppExchange add-ons, and implementation fees from an outside consultant, and one invoice can still carry several different accounting answers. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Salesforce go to in QuickBooks?** > > Salesforce posts to **Software (Detail Type: Software)** or **Dues & Subscriptions** in QuickBooks Online. In Xero, use account code **408 (Software & IT Expenses)** or **463 (Subscriptions)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." You don't issue a 1099 to Salesforce, Inc.; it's a corporate payee, exempt under §6041. As of 2026, SaaS is generally taxable in TX (as data processing, ~80% of the charge), NY, PA, WA, OH, HI. It's generally exempt in CA, FL, IL, OR, but treatment varies and changes; verify your state's current rule. Because Salesforce contracts almost always run 12 months or less, the prepay is generally deductible in full in the year you pay it under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), regardless of amount. Only a true multi-year contract capitalizes, amortized over the term. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** QBO Detail Type "Software" is the cleanest mapping; Xero 408 or 463 both work. - **Schedule C Line 27a.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to Salesforce.** Salesforce, Inc. is a corporate payee, exempt under §6041. - **Annual prepay is usually deductible in full, not automatically capitalized.** Under the 12-month rule, a Salesforce contract of 12 months or less is generally deductible in the year you pay it, even at $18,000 or more. The $2,500 de minimis figure applies to equipment, not subscriptions. Only a true multi-year (over 12-month) contract capitalizes as Prepaid Expense, amortized over the term. - **Multi-cloud bundles still land in Software, split by product line when itemized.** Sales Cloud, Service Cloud, Marketing Cloud, Commerce Cloud, and Slack on one contract stay accurate when you split the invoice. - **AppExchange apps and implementation fees are NOT the Salesforce software line.** AppExchange add-ons are separate vendors; implementation through a systems integrator is Professional Services. ### What is Salesforce? Salesforce is a customer relationship management platform. Sales Cloud tracks leads and pipeline, Service Cloud runs support tickets, Marketing Cloud handles campaigns, and Commerce Cloud powers online storefronts. Salesforce also owns Slack, acquired in 2021, which sometimes rides on the same master contract. Pricing runs per-user, billed as an annual subscription rather than month to month. Companies add seats as they hire sales reps, so the Salesforce line often grows faster than any other software cost on the books. ### Where Salesforce goes in your books | Field | Value | | --- | --- | | QBO account | Software (Detail Type: Software) OR Dues & Subscriptions. Add sub-account "Salesforce" if you track SaaS vendors individually. | | Xero account code | 408 (Software & IT Expenses) OR 463 (Subscriptions) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC | 7372 (Computer Programming/Data Processing) | | 1099-NEC required | No. Salesforce, Inc. is a corporate payee. §6041 corporate exemption. | | Sales-tax flag | Depends on state, and it changes. As of 2026, generally taxable in TX (as data processing, ~80% of the charge), NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR. Salesforce collects where required; verify your state's current rule. | ### The Difficult 20%: Where Salesforce trips bookkeepers up #### The annual contract is usually deductible in full, not automatically capitalized Most SaaS vendors bill monthly, so bookkeepers default to expensing the invoice as it clears, and that's fine. Salesforce is different only in the mechanics: sales teams sign a 12-month (or sometimes longer) contract up front, and the invoice hits the bank as one lump sum instead of twelve small ones. Say a 15-seat Sales Cloud contract bills $18,000 for the year. (Illustrative example; your invoice depends on edition and seat count.) Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), a prepayment that buys 12 months or less of access, and doesn't run past the end of next tax year, is generally deductible in full in the year you pay it, even at $18,000. The $2,500 figure you may have heard is the de minimis safe harbor for buying equipment, not for software subscriptions, so it doesn't apply to this decision. The contract that actually needs to capitalize is a true multi-year deal. Sign a 24- or 36-month Salesforce agreement, and that prepayment books to Prepaid Expense and amortizes over the term, because it fails the 12-month test. Read the contract length before you post the invoice; that's the check that matters here, not the dollar amount. Accrual-method businesses have an extra timing wrinkle under §461, so confirm the treatment with your CPA if you're not on cash basis. #### Multi-cloud bundling: Sales Cloud, Service Cloud, Marketing Cloud, Commerce Cloud, and Slack on one contract Salesforce sells its clouds together on a single master agreement, and larger accounts often add Slack, a Salesforce subsidiary since 2021, to the same contract. All of it is still Software. But when the invoice itemizes each product line, split the categorization by product so your SaaS reporting stays honest instead of dumping the whole contract into one "Salesforce" line. If Slack shows up separately on the same bill, treat it the same way; see [how to categorize Slack](/blog/categorize-slack) for the same reasoning from the other direction. #### AppExchange apps are separate vendors, not part of the Salesforce line AppExchange is Salesforce's marketplace for third-party add-ons: e-signature integrations, data-enrichment tools, industry-specific plug-ins. These are billed by the app vendor, not by Salesforce, Inc., even though you install and pay for them inside your Salesforce org. Don't fold an AppExchange charge into the Salesforce Software line. Each app is its own vendor with its own category. Some AppExchange vendors are small or non-corporate entities that trigger a 1099 requirement, something Salesforce, Inc. itself never does. Check the actual payee name on the invoice before you categorize it. #### Implementation through a systems integrator is Professional Services, not Software Standing up Salesforce, migrating data, and building custom workflows is usually handled by a systems integrator partner, not Salesforce, Inc. directly. That implementation fee is Professional Services, mapped to Schedule C Line 17 Legal & professional services, or Contract labor if you track it separately, never the Software line. If the systems integrator is an individual consultant or a non-corporate entity, that engagement may also require a 1099-NEC, a filing obligation that doesn't apply to the Salesforce subscription itself. #### Sandboxes, add-on orgs, and extra storage stay in Software Extra sandboxes for testing, additional partial-copy or full-copy orgs, and storage upgrades are all still part of the core Salesforce subscription. They post to the same Software or Dues & Subscriptions account as the base contract. Don't create a separate account for these add-ons; they're incremental subscription costs, not a different type of expense. ### How Growthy categorizes Salesforce automatically Growthy spots the Salesforce line on the bank feed and suggests a category, Software or Dues & Subscriptions, from pattern learning across your books. Unusual or first-time charges get flagged for your review instead of posted automatically. You review and approve every suggestion. ### FAQ #### What expense category is Salesforce? Software or Dues & Subscriptions in QuickBooks. Account 408 or 463 in Xero. It's a SaaS subscription, so it sits with other business software like HubSpot and Slack. #### Is Salesforce tax deductible? Yes. It's an ordinary and necessary business expense under §162. A prepay of 12 months or less is generally deductible in full in the year you pay it under the 12-month rule; a true multi-year contract amortizes over the term instead. #### Do I issue a 1099 to Salesforce? No. Salesforce, Inc. is a corporate payee, exempt under §6041. No 1099-NEC or 1099-MISC regardless of how much you pay. #### What Schedule C line is Salesforce? Line 27a Other expenses, with description "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. #### Should I categorize Salesforce's annual billing differently? Not usually. Under the 12-month rule, a Salesforce contract of 12 months or less is generally deductible in full in the year you pay it, regardless of the dollar amount; the $2,500 figure applies to equipment, not subscriptions. A true multi-year (over 12-month) contract is the exception: that one capitalizes as Prepaid Expense and amortizes over the term. #### Do I owe sales tax on Salesforce? Depends on your state, and it changes. As of 2026, SaaS is generally taxable in states like Texas (as a data-processing service, taxing roughly 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii. It's generally exempt in California, Florida, Illinois, and Oregon. Treatment varies by state and locality, so verify your state's (and city's) current rule. Salesforce collects where required. #### Are AppExchange apps part of the Salesforce expense? No. AppExchange third-party apps are billed separately by their own vendors and get their own category. Some non-corporate AppExchange vendors may require a 1099; Salesforce, Inc. itself never does. #### What about implementation fees from a Salesforce consultant? Those go to Professional Services, not Software. If the systems integrator is a non-corporate consultant, the engagement may also require a 1099-NEC. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize HubSpot](/blog/categorize-hubspot) - [How to categorize Slack](/blog/categorize-slack) - [How to categorize Google Workspace](/blog/categorize-google-workspace) Stop manually splitting Salesforce contracts every renewal. [Get started with Growthy](/signup?utm_content=categorize-salesforce) — pattern learning across your SaaS vendors, with unusual or first-time charges flagged for your review. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Notion in QuickBooks (and Xero)](https://growthy.com/blog/categorize-notion): Notion posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. Per-seat billing charges only paid members; Notion AI stays an add-on. Annual prepays deduct under the 12-month rule. ## How to Categorize Notion in QuickBooks (and Xero) Notion charges by the member, not the workspace, and that's where most bookkeepers get it wrong. The invoice changes every time someone joins or leaves the team. Free guests don't factor into the bill at all. And then there's Notion AI stacked on top as a separate line that looks like it needs its own category. It doesn't. Notion is workspace and productivity software. It belongs in Software or Dues & Subscriptions, the same shelf as Slack, Google Workspace, and Microsoft 365. The easy 80% is knowing that. The other 20% is trickier: the per-seat proration when someone gets added mid-cycle, the AI add-on that isn't its own category, the solopreneur running personal notes and client work on one workspace, and the rare multi-year prepay that has to be capitalized instead of deducted. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Notion go to in QuickBooks?** > > Notion posts to **Dues & Subscriptions** or **Software (Detail Type: Software)** in QuickBooks Online. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." You don't issue a 1099 to Notion. Notion Labs, Inc. is a corporate payee, exempt under §6041. Sales tax depends on your state: as of 2026, SaaS is generally taxable in Texas (as a data-processing service, roughly 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes, so verify your state's (and city's) current rule. Notion collects where required. Annual prepayments of 12 months or less are generally deductible in full in the year paid under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), even for a large invoice; the $2,500 figure people cite is the de minimis safe harbor for buying equipment, not subscriptions. A prepay running more than 12 months gets capitalized as Prepaid Expense and amortized over the term. Notion AI is a paid add-on layered on your plan; it stays in the same Software account, it doesn't get its own category. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not Office Supplies, not a generic "Computer" account. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to Notion.** Notion Labs, Inc. is a corporate payee. The §6041 corporate exemption applies, so skip the W-9 chase. - **Per-seat billing only charges for paid members.** Free guests never hit the invoice. Adding a paid member mid-cycle prorates the difference onto the bill. - **Notion AI stays in the Software account.** It's a paid add-on layered on your existing plan, not a separate expense category. - **Annual prepay of 12 months or less = deduct in full.** Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), you generally deduct the whole prepayment in the year paid, no matter the dollar amount. The $2,500 figure is for buying equipment, not subscriptions. A prepay running more than 12 months capitalizes as Prepaid Expense instead. ### What is Notion? Notion is a workspace app that combines notes, docs, wikis, project boards, and databases in one tool. Teams use it for internal documentation, product roadmaps, and client-facing wikis instead of juggling separate note-taking and project-management apps. Notion Labs, Inc. sells paid plans (Plus, Business, and Enterprise) priced per member, billed monthly or annually, on top of a free personal tier. It also sells Notion AI, an add-on that layers AI search and writing tools onto any paid plan. For most small teams, Notion sits right next to Slack and Google Workspace in the software stack. ### Where Notion goes in your books | Field | Value | | --- | --- | | QBO account | Dues & Subscriptions OR Software (Detail Type: Software). Add sub-account "Notion" if you track SaaS vendors individually. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC range | 7372 (Computer Programming/Data Processing) | | 1099-NEC required | No. Notion Labs, Inc. is a corporate payee. §6041 corporate exemption. | | Sales-tax flag | Depends on state. As of 2026, generally taxable in TX (data processing, ~80% of the charge), NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR. Varies by state/locality and changes; verify your state's current rule. Notion collects where required. | ### The Difficult 20%: Where Notion trips bookkeepers up #### Per-seat billing with free guests Notion bills per paid member, and only paid members show up on the invoice. Guests, the people invited to view or comment on specific pages without joining the paid workspace, cost nothing and never appear on the bill. The complication shows up when a guest converts to a full paid member mid-cycle. Notion prorates the difference and bills it on the next invoice or as an immediate charge, depending on plan. If a $240 annual seat gets added six months into the term, expect roughly half that amount as a prorated charge, not the full seat price. (Illustrative example; actual seat price and proration depend on your plan.) Match the invoice detail to your headcount before you post it. If the dollar amount doesn't line up with your expected per-seat rate, a mid-cycle addition or removal is almost always why. #### Notion AI as an add-on, not a separate category Notion AI shows up as its own line on the invoice, priced per member, stacked on top of the base plan. It's tempting to give it a separate "AI" or "Software - AI Tools" account so the spend is easy to track. Don't. It's still Software or Dues & Subscriptions, the same account as the base Notion subscription. Splitting it out doesn't change the tax treatment and it fragments your SaaS reporting for no benefit. If you want visibility into AI spend specifically, use a memo line or class, not a new GL account. #### Free personal plan mixed with business use Notion's free plan covers individual use, and plenty of solopreneurs start there before ever touching a paid plan. The problem comes later: a solo owner upgrades to a paid plan for client project boards but keeps using the same workspace for personal notes, journaling, or a side project. Not all of that usage is deductible. Allocate the business share of the subscription based on actual use. If four of six workspace members are client-facing team, or the owner estimates 70% business use on a single-seat account, apply that percentage and document it in a memo line. Keep the allocation consistent month to month, and revisit it if the business use changes materially. #### Annual vs monthly prepay Monthly billing is simple: deduct each month as you pay. Annual prepayment is where bookkeepers get it wrong. Say a growing team prepays annually and the invoice comes to $2,800. (Illustrative example; your invoice depends on seat count and plan.) Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), if the prepayment buys 12 months or less of access and doesn't run past the end of next tax year, you can generally deduct the whole $2,800 in the year you pay it, even though it's a big number. The $2,500 figure you may have heard is the de minimis safe harbor for buying equipment, not subscriptions, so don't apply it here. Prepay for more than 12 months, a two- or three-year deal, and it's different: capitalize it as a Prepaid Expense and deduct it over the term. Accrual-method businesses have an extra timing rule, so confirm the treatment with your CPA. #### Third-party templates and integrations bought elsewhere Notion has a large ecosystem of paid templates and third-party integrations: project trackers, CRM templates, financial dashboards, sold by independent creators through Notion's template marketplace or their own sites. Those purchases are billed by the template creator or a separate marketplace platform, not by Notion Labs. They're a different vendor with their own category, often a one-time Software purchase rather than a recurring subscription, not an addition to the Notion subscription line. Check the actual payee on the bank feed. A charge from a template creator or marketplace processor is not the same line item as the recurring Notion invoice. ### How Growthy suggests a category for Notion Growthy suggests Software or Dues & Subscriptions for the Notion (or Notion Labs) line on the bank feed. Low-confidence entries, like a per-seat charge that doesn't match the prior month's amount, a personal-versus-business allocation call, or a first annual prepay, go to your review so you can confirm them. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### What expense category is Notion? Software or Dues & Subscriptions in QuickBooks. Account 463 or 408 in Xero. It's a SaaS subscription, so it sits with other workspace tools like Slack and Google Workspace. #### Is Notion tax deductible? Yes. It's an ordinary and necessary business expense under §162. Full deduction in the year paid for monthly billing. Annual prepays of 12 months or less are also generally fully deductible in the year paid under the 12-month rule (Treas. Reg. §1.263(a)-4(f)); only a prepay running past 12 months gets amortized. #### Do I issue a 1099 to Notion? No. Notion Labs, Inc. is a corporate payee, exempt under §6041. No 1099-NEC or 1099-MISC regardless of how much you pay. #### What Schedule C line is Notion? Line 27a Other expenses, with description "Software subscriptions." It's SaaS, so Line 27a is the cleaner mapping than Office Expense. #### Does Notion AI need its own expense category? No. It's a paid add-on layered on your existing plan. Keep it in the same Software or Dues & Subscriptions account as the base subscription. #### How do I handle a mostly-personal Notion workspace with some business use? Allocate by actual business-use percentage and document it in a memo line. Only the business share is deductible. Keep the allocation consistent month to month. #### Should I categorize Notion annual billing differently? Not because of the dollar amount. Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), an annual prepay of 12 months or less is generally deductible in full in the year paid, regardless of size. Only a prepay running more than 12 months gets capitalized as Prepaid Expense and amortized over the term. Confirm the timing with your CPA if you're on the accrual method. #### Do I owe sales tax on Notion? Depends on your state. As of 2026, SaaS is generally taxable in Texas (as a data-processing service, roughly 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes often. Notion collects where required; verify your state's (and city's) current rule. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize Slack](/blog/categorize-slack) - [How to categorize Google Workspace](/blog/categorize-google-workspace) - [How to categorize Microsoft 365](/blog/categorize-microsoft-365) Stop guessing whether a Notion seat change is a mistake or a mid-cycle addition. [Get started with Growthy](/signup?utm_content=categorize-notion) — low-confidence entries go to your review. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Mailchimp in QuickBooks (and Xero)](https://growthy.com/blog/categorize-mailchimp): Mailchimp sits in Software/Dues & Subscriptions or Advertising, Schedule C Line 27a or Line 8. No 1099 (Intuit is a corporate payee). Pick a bucket and keep it consistent. ## How to Categorize Mailchimp in QuickBooks (and Xero) Mailchimp lands on the bank feed every month, and the first question isn't which account, it's which shelf. Mailchimp is billed like a SaaS subscription, but the thing it does is marketing. Some bookkeepers file it with the rest of the software stack. Others put it with the ad spend so the client can see what customer acquisition actually costs. Both are defensible. What's not defensible is switching back and forth month to month. That's the heart of this one: pick a lane and stay in it. Past that, there's the pricing tier that climbs as the contact list grows and the Pay As You Go credits that work nothing like a monthly plan. There's also the statement descriptor that says "Intuit" instead of "Mailchimp," and the transactional email add-on that technically isn't marketing at all. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Mailchimp go to in QuickBooks?** > > Mailchimp legitimately posts to either **Software (Detail Type: Software)** or **Dues & Subscriptions**, OR to **Advertising** (Detail Type: Advertising/Promotional) if you track it as marketing spend. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**, or **400 (Advertising & Marketing)**. On Schedule C, that's **Line 27a Other expenses** ("Software subscriptions") if you booked it as Software, or **Line 8 Advertising** if you booked it as Marketing. Form 1120 Line 26 and Form 1120-S Line 19 apply either way. You don't issue a 1099 to Mailchimp. Mailchimp is owned by Intuit Inc., a publicly traded corporate payee, exempt under §6041. Sales tax depends on your state: as of 2026, SaaS is generally taxable in states like Texas (taxed as data processing, roughly 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes often. Mailchimp collects where required; verify your state's (and city's) current rule. ### Key Takeaways - **Software or Marketing is a real choice, not a mistake.** Mailchimp is billed as SaaS but functions as marketing. Pick Software if the client tracks all SaaS vendors together. Pick Advertising/Marketing if they want true marketing-cost visibility for a CAC calculation. Stay consistent once you decide. - **Schedule C follows the choice.** Line 27a ("Software subscriptions") if booked as Software, Line 8 Advertising if booked as Marketing. Form 1120 Line 26, Form 1120-S Line 19 either way. - **No 1099 to Mailchimp.** It's owned by Intuit Inc., a corporate payee. The §6041 corporate exemption applies regardless of which bucket you use. - **Contact-tier pricing bumps stay in the same category.** When the subscriber list crosses a plan boundary and the bill goes up, that's a rate increase, not a new expense line. - **Pay As You Go credits are a prepaid asset, not a subscription.** Book the purchase to Prepaid Expense and recognize it as the credits are drawn down. The $2,500 de minimis safe harbor is for buying equipment, not service credits, so it doesn't apply here. - **The Intuit billing descriptor doesn't change anything.** If the bank feed reads "Intuit *Mailchimp," the category still follows what the charge actually is. ### What is Mailchimp? Mailchimp is an email marketing platform: campaign builder, audience and contact management, automations, landing pages, and light CRM features layered on top. Intuit acquired Mailchimp in 2021, so the same parent company now owns Mailchimp, QuickBooks, and TurboTax. Plans are priced by contact or audience tier, billed monthly or annually, with the cost climbing as the subscriber list grows. Mailchimp also sells email sending as Pay As You Go credits for businesses that don't want a recurring plan. For most small businesses it sits alongside HubSpot and Canva in the marketing-adjacent SaaS stack, distinct from pure productivity tools like Google Workspace. ### Where Mailchimp goes in your books | Field | Value | | --- | --- | | QBO account | Software (Detail Type: Software) or Dues & Subscriptions, OR Advertising (Detail Type: Advertising/Promotional) if tracked as marketing spend. Add sub-account "Mailchimp" either way if you track SaaS or marketing vendors individually. | | Xero account code | 463 (Subscriptions) or 408 (Software & IT Expenses), OR 400 (Advertising & Marketing) | | Schedule C | Line 27a Other expenses ("Software subscriptions") if Software, or Line 8 Advertising if Marketing. | | Form 1120 / 1120-S | Line 26 / Line 19, either way. | | MCC range | 7372 (Computer Programming/Data Processing) or 7311 (Advertising Services), depending on how the charge is coded. | | 1099-NEC required | No. Mailchimp is owned by Intuit Inc., a corporate payee. §6041 corporate exemption. | | Sales-tax flag | Depends on state. As of 2026, generally taxable in TX (data processing, ~80% of the charge), NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR. Varies by state/locality and changes; verify your state's current rule. Mailchimp collects where required. | ### The Difficult 20%: Where Mailchimp trips bookkeepers up #### Software or Marketing? Make the call once and keep it This is the central judgment call, and there's a real case for both sides. Mailchimp bills itself like every other SaaS tool: a recurring monthly or annual charge for access to software. That argues for Software or Dues & Subscriptions, sitting next to Slack and Google Workspace. But what the client is actually buying is email marketing, the same category as paid ads or an agency retainer. That argues for Advertising, Schedule C Line 8. There isn't a single right answer here. Pick Software if the client wants one clean bucket for every SaaS vendor and doesn't care about isolating marketing cost. Pick Advertising/Marketing if the client wants to see total customer acquisition spend across channels, ads plus email plus any agency fees, in one number. Whichever you choose, apply it to every Mailchimp charge going forward. A bill that flips between accounts month to month breaks trend reporting and makes year-over-year comparisons meaningless. Note this on the client's chart of accounts memo so the next bookkeeper doesn't guess differently. #### Contact-tier pricing bumps aren't a new expense Mailchimp prices by the size of the contact or audience list, not a flat monthly fee. As the list grows past a tier boundary, the bill increases automatically. (Illustrative example: a list growing from 5,000 to 10,000 contacts might push the plan from one tier to the next, and the monthly charge along with it.) That increase belongs in the same account as every prior month's charge. It's not a new vendor, a new service, or a reason to re-evaluate the category. Treat it like any other rate increase and move on. #### Pay As You Go credits vs a monthly plan Mailchimp offers Pay As You Go credits as an alternative to a recurring plan: you buy a block of sends up front and draw it down over time instead of committing to a monthly subscription. That makes the credits a prepaid asset, not a subscription expense, regardless of the purchase size. Book it to Prepaid Expense and recognize the expense as the credits are actually used, not evenly over a calendar period the way you'd amortize an annual subscription. The $2,500 de minimis safe harbor under §263(a) doesn't apply here: that safe harbor covers buying tangible equipment, not service credits. Track remaining balance the way you would any other prepaid draw-down account, and confirm the timing with your CPA if the business is on the accrual method. #### The Intuit-owned billing descriptor Since the 2021 acquisition, some bank and credit card statements show the charge as "Intuit *Mailchimp" or a similar Intuit-branded descriptor instead of "Mailchimp" on its own. That's a statement formatting quirk, not a different vendor and not a different category. The charge is still Mailchimp, categorized whichever way you've chosen for this client, and the 1099 answer doesn't change either: Intuit Inc. is the corporate parent either way, so the §6041 exemption applies regardless of which name shows up on the statement. #### Mandrill: the transactional email add-on Mandrill is Mailchimp's transactional email product, sold as a separate paid tier for automated, triggered messages like password resets, receipts, and shipping confirmations rather than marketing campaigns. It's billed alongside or separately from the main Mailchimp subscription depending on the account setup. Functionally, Mandrill sends are closer to application infrastructure than marketing. If a client has split Software from Advertising, it's worth asking whether Mandrill really belongs with the marketing campaigns or should sit in Software with the rest of the app-infrastructure tools. Either placement is defensible; just don't split it silently. Note the choice the same way you noted the Software-vs-Marketing call for the base plan. ### How Growthy categorizes Mailchimp automatically Growthy suggests a category, Software or Advertising, for the Mailchimp (or Intuit *Mailchimp) line on the bank feed. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### What expense category is Mailchimp? Software or Dues & Subscriptions in QuickBooks, or Advertising if you track it as marketing spend. Both are legitimate; the choice depends on whether you want SaaS tracked together or marketing cost isolated. #### Is Mailchimp tax deductible? Yes. It's an ordinary and necessary business expense under §162, regardless of which category you book it to. #### Do I issue a 1099 to Mailchimp? No. Mailchimp is owned by Intuit Inc., a corporate payee, exempt under §6041. No 1099-NEC or 1099-MISC required regardless of how much you pay or which name appears on the statement. #### What Schedule C line is Mailchimp? Line 27a Other expenses if booked as Software, or Line 8 Advertising if booked as Marketing. Form 1120 Line 26 and Form 1120-S Line 19 apply either way. #### Should I book Mailchimp as Software or Advertising? Either is defensible. Software fits if you want all SaaS vendors in one bucket. Advertising fits if the client wants total marketing spend visibility for CAC tracking. Pick one and apply it consistently to every charge. #### How do I record Mailchimp Pay As You Go credits? As a prepaid asset, no matter the purchase size. Book it to Prepaid Expense and recognize the expense as the credits are actually used. The §263(a) de minimis safe harbor doesn't apply here; that's for buying equipment, not service credits. #### Do I owe sales tax on Mailchimp? Depends on your state. As of 2026, SaaS is generally taxable in states like Texas (as data processing, roughly 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes often. Mailchimp collects where required; verify your state's (and city's) current rule. #### Why does my bank statement say "Intuit *Mailchimp" instead of "Mailchimp"? Intuit acquired Mailchimp in 2021, and some statement descriptors reflect the parent company. It's still the same charge, categorized the same way, with the same §6041 exemption from 1099 reporting. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize HubSpot](/blog/categorize-hubspot) - [How to categorize Canva](/blog/categorize-canva) - [How to categorize Google Workspace](/blog/categorize-google-workspace) Stop flip-flopping between Software and Marketing for every email tool bill. [Get started with Growthy](/signup?utm_content=categorize-mailchimp), and low-confidence items wait for your review. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize HubSpot in QuickBooks (and Xero)](https://growthy.com/blog/categorize-hubspot): HubSpot posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. The real call is Software vs. Advertising for Marketing Hub. Annual prepays deduct in full under the 12-month rule. ## How to Categorize HubSpot in QuickBooks (and Xero) A HubSpot bill lands on the bank feed and most bookkeepers post it to Software without a second thought. That's the right default. But HubSpot isn't one flat subscription. It's Marketing Hub, Sales Hub, Service Hub, Content Hub, and Operations Hub, sold separately or bundled. Pricing runs per seat plus a marketing-contact tier that can jump mid-year. Some clients want that spend visible as Advertising/Marketing, not buried in Software. The easy 80% is knowing HubSpot is a SaaS subscription. The other 20% is deciding whether Marketing Hub belongs in Software or Advertising, handling the contact-tier price jump without inventing a new category, and splitting the one-time onboarding fee from the recurring subscription. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does HubSpot go to in QuickBooks?** > > HubSpot posts to **Software (Detail Type: Software)** or **Dues & Subscriptions** in QuickBooks Online. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." Use Line 8 Advertising instead if the client books Marketing Hub as marketing spend, the same call as the GL. You don't issue a 1099 to HubSpot. HubSpot, Inc. is a corporate payee, exempt under §6041. A non-corporate implementation consultant billing you separately may need one. As of 2026, SaaS is generally taxable in states like Texas (as data processing, about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes; verify your state's (and city's) current rule. Annual prepayment of 12 months or less is generally deductible in full in the year paid under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), even on a large invoice. The $2,500 figure is the de minimis safe harbor for buying equipment, not subscriptions, so it doesn't apply here. A prepay running past 12 months capitalizes as Prepaid Expense and amortizes over the term; confirm accrual-method timing with your CPA. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not Advertising by default, though Marketing Hub is a legitimate exception if the client wants marketing-cost visibility. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a, or Line 8 if booked as marketing.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to HubSpot.** HubSpot, Inc. is a corporate payee, exempt under §6041. A one-time implementation consultant might need one instead. - **Contact-tier price jumps are still Software.** When the bill climbs because your marketing-contact count crossed a tier boundary, that's a rate change, not a new expense category. - **The onboarding fee is Professional Services, not Software.** Split it from the recurring subscription line on the invoice. - **Multi-hub bundles get one consistent treatment.** Whether you book Marketing, Sales, Service, Content, and Operations Hubs as one line or split by hub, pick one method and stay with it. ### What is HubSpot? HubSpot is a customer platform built around a CRM core, with separate Hubs for Marketing, Sales, Service, Content, and Operations. Companies buy one Hub or several, and pricing scales with seat count plus the number of marketing contacts in the account. Billing runs monthly or annually. Small businesses often start with one Hub, usually Marketing or Sales, and add others as the team grows. ### Where HubSpot goes in your books | Field | Value | | --- | --- | | QBO account | Software (Detail Type: Software) OR Dues & Subscriptions. Add sub-account "Marketing Software" if the client wants Marketing Hub visible separately. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." Line 8 Advertising if booked as marketing spend. | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC range | 7372 (Computer Programming/Data Processing), 7311 (Advertising Services) | | 1099-NEC required | No. HubSpot, Inc. is a corporate payee. §6041 corporate exemption. A non-corporate implementation consultant may need one. | | Sales-tax flag | As of 2026, generally taxable in TX (data processing, ~80% of the charge), NY, PA, WA, OH, HI. Generally exempt in CA, FL, IL, OR. Varies by state and locality and changes; verify your state's current rule. HubSpot collects where required. | ### The Difficult 20%: Where HubSpot trips bookkeepers up #### Software or Advertising: the Marketing Hub judgment call This is the real decision, and there's no single right answer. Marketing Hub can sit in Software right alongside the rest of your SaaS stack. Or it can go to Advertising/Marketing expense if the client wants to see total marketing spend in one place on the P&L. Default to Software with a "Marketing Software" sub-account. That keeps SaaS reporting clean and still lets you pull the Marketing Hub number out when needed. Only move to Advertising/Marketing when the client explicitly asks for marketing-cost visibility on the P&L. Whichever you pick, apply it consistently across every period. Flipping between the two mid-year breaks trend reporting. #### Contact-tier pricing jumps mid-year HubSpot's Marketing Hub and some other plans price partly on marketing-contact count, and that count grows as the client's list grows. Cross a tier boundary and the monthly bill jumps, sometimes by a lot. (Illustrative example: a client's contact list grows past a tier threshold in month seven and the monthly charge rises from roughly $800 to $1,100.) That increase is still Software. It's a rate change on the same subscription, not a new vendor or a new category. Don't split the increase into a separate line; just let the higher amount flow through the same account. #### One-time onboarding and implementation fees HubSpot and its partner agencies often charge a one-time onboarding or implementation fee separate from the recurring subscription. That fee is Professional Services, not Software. It's a service, not a SaaS license. If a HubSpot partner or independent consultant bills that fee and isn't a corporation, get a W-9 before you pay. That one may need a 1099-NEC, unlike the HubSpot subscription itself. Keep the one-time fee and the recurring subscription on separate lines so neither distorts the trend. #### Multi-hub bundles on one contract Larger accounts often run Marketing Hub, Sales Hub, Service Hub, Content Hub, and Operations Hub together on a single contract with one invoice. You can book the whole thing to one Software line, or split it by Hub if the client wants department-level SaaS reporting (marketing sees Marketing Hub, sales sees Sales Hub). Either approach works. What matters is picking one and holding it steady, so a client comparing this quarter to last isn't comparing a bundled number to a split one. #### Annual prepay: the 12-month rule, not the $2,500 line Some clients prepay a year of HubSpot for the discount. (Illustrative example: a growing company on Sales Hub Professional prepays annually and the invoice totals $3,000 in one transaction.) Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), a prepayment that buys 12 months or less of access and doesn't run past the end of next tax year is generally deductible in full in the year paid, even at $3,000. The $2,500 figure some bookkeepers reach for is the de minimis safe harbor for buying equipment, not subscriptions, so it doesn't apply here. Prepay for more than 12 months, a two-year deal, for example, and the answer changes: capitalize it as Prepaid Expense and amortize it over the term. Accrual-method businesses have an extra timing wrinkle, so confirm the treatment with your CPA. ### How Growthy categorizes HubSpot automatically Growthy spots the HubSpot line on the bank feed and suggests a category from pattern learning across your books. Unusual or first-time charges, a new onboarding fee or an unfamiliar HubSpot line item, get flagged for your review. You review and approve every suggestion. ### FAQ #### What expense category is HubSpot? Software or Dues & Subscriptions in QuickBooks, account 463 or 408 in Xero. Marketing Hub can also go to Advertising/Marketing if the client wants marketing spend visible separately. #### Is HubSpot tax deductible? Yes. It's an ordinary and necessary business expense under §162. Full deduction in the year incurred for monthly billing. Annual prepays of 12 months or less are also generally deductible in full in the year paid under the 12-month rule (Treas. Reg. §1.263(a)-4(f)); only a prepay running past 12 months gets capitalized and amortized. #### Do I issue a 1099 to HubSpot? No. HubSpot, Inc. is a corporate payee, exempt under §6041. A separate one-time implementation fee billed by a non-corporate consultant may need a 1099-NEC. #### What Schedule C line is HubSpot? Line 27a Other expenses, descriptor "Software subscriptions." If the client books it as marketing spend instead, use Line 8 Advertising, matching the GL treatment. #### Should Marketing Hub be Software or Advertising? Either can be right. Default to Software with a "Marketing Software" sub-account for clean SaaS reporting. Use Advertising/Marketing only when the client wants total marketing-cost visibility on the P&L, and stay consistent once you pick. #### How do I handle a HubSpot contact-tier price increase? Book the higher amount to the same Software account. Crossing a contact-count tier is a rate change on the existing subscription, not a new category or a new vendor. #### What about the HubSpot onboarding fee? That's Professional Services, not Software. Keep it on a separate line from the recurring subscription, and check whether the consultant who billed it is a corporation before deciding on a 1099. #### Do I owe sales tax on HubSpot? Depends on your state. As of 2026, SaaS is generally taxable in states like Texas (as data processing, about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes often. HubSpot collects where required; verify your state's (and city's) current rule. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize Salesforce](/blog/categorize-salesforce) - [How to categorize Mailchimp](/blog/categorize-mailchimp) - [How to categorize Slack](/blog/categorize-slack) Stop re-deciding the same HubSpot categorization every close. [Get started with Growthy](/signup?utm_content=categorize-hubspot) — pattern learning across your software vendors, with unusual or first-time charges flagged for your review. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize GitHub in QuickBooks (and Xero)](https://growthy.com/blog/categorize-github): GitHub posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. Copilot rides the base line; metered Actions/Codespaces can shift to Cloud Services. Annual prepays deduct under the 12-month rule. ## How to Categorize GitHub in QuickBooks (and Xero) GitHub shows up on the bank feed as a monthly or annual charge. Sometimes it's labeled GitHub, sometimes Microsoft. Most bookkeepers park it under a generic Software line without asking why the amount moved. That's fine right up until the invoice includes a Copilot add-on, an Actions minutes overage, or a Marketplace charge riding the same statement. GitHub is developer software: source control, issue tracking, and CI/CD pipelines, plus an AI coding assistant bolted on top. It belongs in Software or Dues & Subscriptions, the same shelf as Slack and Microsoft 365. The easy 80% is knowing that. The other 20% is the metered compute that starts to look like cloud infrastructure, the Microsoft-branded invoice, and the Marketplace and Sponsors charges that aren't subscription costs at all. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does GitHub go to in QuickBooks?** > > GitHub posts to **Dues & Subscriptions** or **Software (Detail Type: Software)** in QuickBooks Online. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." You don't issue a 1099 to GitHub. GitHub, Inc. is a wholly owned subsidiary of Microsoft Corporation, a corporate payee exempt under §6041. Sales tax depends on your state and changes over time: as of 2026, generally taxable in Texas (as a data-processing service, ~80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon; verify your state's current rule. Annual (12-month or shorter) prepayments are generally deductible in full in the year paid under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), regardless of the dollar amount. The $2,500 de minimis threshold applies to buying equipment, not subscriptions. Multi-year prepays get capitalized as Prepaid Expense and amortized over the term. Usage-metered charges (Actions minutes, Packages storage, Codespaces compute) beyond your plan's included quota can move to a Cloud Services or Hosting sub-account once they become material. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not a separate "AI" line, not Office Supplies. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to GitHub.** GitHub, Inc. is a Microsoft Corporation subsidiary, a corporate payee. The §6041 corporate exemption applies. - **Copilot stays on the same line as the base subscription.** It's an add-on, not a separate expense category. - **Metered overages can shift to Cloud Services.** Actions minutes, Packages storage, and Codespaces compute beyond quota behave like infrastructure spend once they're material. - **Marketplace apps and Sponsors payments aren't the GitHub line.** Different vendors, different intent, different category. ### What is GitHub? GitHub is a cloud platform for source code hosting, version control, issue tracking, and pull requests, plus CI/CD pipelines through GitHub Actions. Development teams use it as the system of record for code. Slack plays the same role for chat. GitHub sells Team and Enterprise plans priced per seat, billed monthly or annually, alongside a Free tier for individuals and small open-source projects. Microsoft acquired GitHub in 2018, which is why the billing sometimes reads Microsoft instead of GitHub. GitHub Copilot, the AI pair-programming add-on, sells on the same account, either bundled into Enterprise or billed per seat separately. ### Where GitHub goes in your books | Field | Value | | --- | --- | | QBO account | Dues & Subscriptions OR Software (Detail Type: Software). Material metered overages to a custom Cloud Services sub-account. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC range | 7372 (Computer Programming/Data Processing) | | 1099-NEC required | No. GitHub, Inc. is a Microsoft Corporation subsidiary, a corporate payee. §6041 corporate exemption. | | Sales-tax flag | Depends on state and changes over time. As of 2026, generally taxable in TX (data processing, ~80% of the charge), NY, PA, WA, OH, HI. Generally exempt in CA, FL, IL, OR. GitHub collects where required; verify your state's current rule. | ### The Difficult 20%: Where GitHub trips bookkeepers up #### Per-seat plans and the Copilot add-on GitHub Team and Enterprise plans bill per seat, monthly or annually, plus a per-seat or bundled charge for GitHub Copilot. Copilot is still GitHub. Don't split it into a separate "AI" or "AI tools" line item on its own vendor card. It's a feature add-on on the same account, billed on the same invoice, and it belongs on the same Software or Dues & Subscriptions line as the base subscription. Creating a separate AI-spend category for Copilot just fragments your SaaS reporting; the vendor and the function are the same. #### Usage-metered products: Actions, Packages, Codespaces GitHub Actions minutes, Packages storage, and Codespaces compute bill by usage once you exceed your plan's included quota. A small account might never see an overage. A team running heavy CI/CD pipelines can rack up real money in Actions minutes during a busy release month. When overages are small, they're a rounding error on the same Software line as the subscription. When they're material, they start to behave like cloud infrastructure spend. It's the same split logic that applies to Google Cloud Platform charges riding a Google Workspace bill, or a large AWS invoice. See [how to categorize AWS](/blog/categorize-aws) for the parallel reasoning: usage-based compute that scales with your product deserves its own Cloud Services or Hosting sub-account so it doesn't get lost inside a flat subscription line. #### The Microsoft-owned invoice Since the 2018 acquisition, some accounts see the charge post as Microsoft or MSFT*GitHub instead of GitHub. That's normal. Microsoft Corporation owns GitHub, Inc. as a wholly owned subsidiary, and billing sometimes routes through the parent's payment processor. The category doesn't change because the descriptor changed. If the bank feed reads Microsoft and you already carry a Microsoft 365 subscription in your books, check the invoice detail before assuming it's the same bill. Two Microsoft-branded charges on one statement are common: one for Microsoft 365, one for GitHub. See [how to categorize Microsoft 365](/blog/categorize-microsoft-365) for the parallel entity. #### Monthly vs annual billing Most teams pay monthly, a simple recurring expense each period. Some prepay annually for the discount, and that's where bookkeepers get it wrong. Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), if a prepayment buys 12 months or less of GitHub access and doesn't run past the end of next tax year, you can generally deduct the whole thing in the year you pay it. That's true even for a 25-seat Enterprise team clearing several thousand dollars in one transaction. The $2,500 figure you may have heard is the de minimis safe harbor for buying equipment, not subscriptions, so don't apply it here. Prepay for more than 12 months, a two- or three-year deal, and it's different: capitalize it as a Prepaid Expense and deduct it over the term. Accrual-method businesses have an extra timing wrinkle, so confirm the treatment with your CPA. #### GitHub Marketplace apps and GitHub Sponsors GitHub Marketplace sells third-party developer tools and integrations that connect to your account but bill as their own vendor. Those charges are a separate subscription with their own category, not a GitHub expense, even though they show up tied to your GitHub account. GitHub Sponsors is a different animal. It's a way to send recurring payments to open-source maintainers or projects you support. A Sponsors payment isn't a software subscription. Depending on why you're paying, it might be advertising, a charitable contribution, or a contractor payment. None of those belong in your GitHub subscription line. If the recipient is an individual rather than a corporation, that raises a separate 1099 question outside the scope of this article; confirm who's actually getting paid before you file it under Software. ### How Growthy suggests a category for GitHub Growthy suggests Software or Dues & Subscriptions for the GitHub (or Microsoft-branded GitHub) line on the bank feed. Low-confidence entries, like a usage-metered spike well above your normal amount or a new annual prepay, go to your review instead of getting silently lumped into the flat subscription line. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### What expense category is GitHub? Software or Dues & Subscriptions in QuickBooks. Account 463 or 408 in Xero. It sits with other developer and productivity software like Slack and Microsoft 365. #### Is GitHub tax deductible? Yes. It's an ordinary and necessary business expense under §162. Full deduction in the year incurred for monthly billing. Annual prepays are also generally fully deductible in the year paid under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), unless the term runs past 12 months, in which case you capitalize and amortize it. Confirm the timing with your CPA if you're on the accrual method. #### Do I issue a 1099 to GitHub? No. GitHub, Inc. is a corporate payee (a Microsoft Corporation subsidiary), exempt under §6041. No 1099-NEC or 1099-MISC regardless of how much you pay. #### What Schedule C line is GitHub? Line 27a Other expenses, with description "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. #### Does GitHub Copilot need its own expense line? No. Copilot is an add-on on the same GitHub account and the same invoice. Keep it on the same Software or Dues & Subscriptions line as the base subscription instead of creating a separate AI category. #### How do I categorize GitHub Actions or Codespaces overages? As Software when the amount is small. When usage-metered charges become material relative to your subscription, move them to a Cloud Services or Hosting sub-account, the same treatment as cloud infrastructure spend on AWS or GCP. #### Do I owe sales tax on GitHub? Depends on your state, and the rule changes over time. As of 2026, SaaS is generally taxable in Texas (as a data-processing service, about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon. GitHub collects where required; verify your state's (and city's) current rule. #### GitHub Sponsors and Marketplace apps show up near my GitHub charge. Are they the same expense? No. Marketplace apps are separate vendor subscriptions with their own category. GitHub Sponsors payments aren't a software subscription at all; depending on intent they may be advertising, charitable, or a contractor payment, and a payment to a non-corporate recipient raises a separate 1099 question. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize AWS](/blog/categorize-aws) - [How to categorize Microsoft 365](/blog/categorize-microsoft-365) - [How to categorize Slack](/blog/categorize-slack) Stop guessing on which GitHub line item goes where. [Get started with Growthy](/signup?utm_content=categorize-github): low-confidence entries go to your review. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Dropbox in QuickBooks (and Xero)](https://growthy.com/blog/categorize-dropbox): Dropbox posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. Dropbox Sign bills separately but stays Software. Annual prepays deduct in full under the 12-month rule. ## How to Categorize Dropbox in QuickBooks (and Xero) Dropbox shows up on the bank feed as a clean recurring charge, and most bookkeepers wave it through to a generic "Software" or "Office Supplies" line without a second look. That works fine until the invoice splits into two lines because someone added Dropbox Sign. Or until a solo owner asks why the family photo backup is running through the business account. Dropbox is cloud storage and file-sync software. It belongs in Software or Dues & Subscriptions, the same shelf as Google Workspace and Microsoft 365. The easy 80% is knowing that. The other 20% is the Dropbox Sign line that can bill on its own, the storage-tier overage, the personal-vs-business split for a solo owner, and the annual prepay bookkeepers often capitalize by mistake. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Dropbox go to in QuickBooks?** > > Dropbox posts to **Dues & Subscriptions** or **Software (Detail Type: Software)** in QuickBooks Online. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." You don't issue a 1099 to Dropbox. Dropbox, Inc. is a publicly-traded corporation, exempt under §6041. Sales tax depends on your state: as of 2026, generally taxable in Texas (as data processing, about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes, so verify your state's current rule. Annual prepays are generally deductible in full in the year you pay, under the 12-month rule (Treas. Reg. §1.263(a)-4(f)); the $2,500 figure people cite is the safe harbor for buying equipment, not subscriptions. Multi-year prepays capitalize and amortize; accrual-method filers should confirm timing with their CPA. Dropbox Sign (formerly HelloSign) can bill as a separate line item; it's still Software, just a distinct product. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not Office Supplies, not a generic "Computer" account. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to Dropbox.** Dropbox, Inc. is a publicly-traded corporate payee. The §6041 corporate exemption applies, so skip the W-9 chase. - **Dropbox Sign bills separately but stays Software.** If the e-signature product shows up as its own charge, don't reroute it to a different category just because the invoice looks different. - **Annual (12-month or less) prepay is generally deductible in full.** The 12-month rule (Treas. Reg. §1.263(a)-4(f)) lets you deduct the whole prepayment in the year you pay it, no matter the dollar amount. Only a multi-year prepay capitalizes as Prepaid Expense. - **Personal Plus vs Dropbox Business matters for solo owners.** If a solopreneur runs personal and business files through one account, allocate the business share and document it. ### What is Dropbox? Dropbox is cloud storage and file-sync software. Files saved to a synced folder show up on every connected device and can be shared with a link or a shared folder. The core product is file storage. Dropbox also sells add-on products under the same corporate umbrella: Dropbox Sign for e-signatures, Dropbox Backup for device backup, and Dropbox Replay for video review. Plans run from a free tier up through Plus for individuals and Professional or Business tiers for teams, priced as a per-user monthly or annual subscription with storage tiers. For most small teams, Dropbox sits next to Google Workspace and Microsoft 365 in the software stack, and plenty of companies run more than one. ### Where Dropbox goes in your books | Field | Value | | --- | --- | | QBO account | Dues & Subscriptions OR Software (Detail Type: Software). Add sub-account "Dropbox" if you track SaaS vendors individually. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC range | 7372 (Computer Programming/Data Processing), 4816 (Computer Network Services) | | 1099-NEC required | No. Dropbox, Inc. is a corporate payee. §6041 corporate exemption. | | Sales-tax flag | As of 2026, generally taxable in TX (as data processing, about 80% of the charge), NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR. Varies by state and locality and changes, so verify your state's current rule. Dropbox collects where required. | ### The Difficult 20%: Where Dropbox trips bookkeepers up #### Dropbox Sign billing as its own line Dropbox Sign, formerly HelloSign, is Dropbox's e-signature product. It can be bundled into a Dropbox Business plan or billed as its own subscription, depending on how the account was set up. Either way, it's still Software. The mistake is treating the separate charge as a different vendor or a different category just because the line item reads "Dropbox Sign" instead of "Dropbox." Keep it on the same Software or Dues & Subscriptions account, and note it as a distinct product line if you track SaaS spend by product. See [how to categorize DocuSign](/blog/categorize-docusign) for the parallel reasoning on e-signature tools. #### Storage-tier overages and add-on storage blocks Teams that outgrow their plan's storage allotment can buy extra storage as an add-on block instead of upgrading the whole plan. That add-on charge is still Software, posted to the same account as the base subscription. Don't split it out as a separate "Storage" or "IT Infrastructure" line. It's part of the same SaaS relationship, just a bigger bucket. #### Personal Plus plan vs Dropbox Business Solopreneurs and freelancers sometimes run a personal-tier Dropbox plan (Plus) that mixes personal photos and documents with business files. Upgrading to a dedicated Business account felt like overkill early on. If the business is paying that bill, allocate by actual business use, based on folder count or storage used, and document the method in a memo line. Keep the allocation consistent month to month. If the business eventually moves to a dedicated Dropbox Business account, the split question goes away. #### Monthly vs annual billing Most small teams pay monthly, a simple expense each period. Some prepay a year for the discount. Say a growing team prepays annually and the invoice runs into four figures. (Illustrative example; your invoice depends on seat count and plan.) Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), that's generally deductible in full in the year you pay it. The rule applies as long as the prepayment buys 12 months or less of access and doesn't run past the end of next tax year. It doesn't matter how large the invoice is. The $2,500 figure some bookkeepers reach for is the de minimis safe harbor for buying equipment, not subscriptions, so don't apply it here. A multi-year prepay, a two- or three-year Dropbox deal, is different. Capitalize it as Prepaid Expense and amortize it over the term. Accrual-method businesses have an extra §461 timing wrinkle on top of the 12-month rule, so confirm the treatment with your CPA. #### Dropbox Backup, Replay, and App Center integrations Dropbox Backup (device backup) and Dropbox Replay (video review and approval) are still Software, same account as the core subscription, when they're billed by Dropbox itself. Third-party apps installed through the Dropbox App Center are a different story. Those are usually billed by the app vendor directly, not by Dropbox, and they're a separate subscription with their own vendor and their own category. Check who the actual payee is on the bank feed before you fold an App Center charge into the Dropbox line. ### How Growthy categorizes Dropbox automatically Growthy spots the Dropbox line on the bank feed and suggests Software or Dues & Subscriptions based on pattern learning across your books. When a charge looks unusual, like a Dropbox Sign line billing separately for the first time or an annual prepay that hasn't shown up before, it gets flagged for your review instead of posting automatically. You review and approve every suggestion. ### FAQ #### What expense category is Dropbox? Software or Dues & Subscriptions in QuickBooks. Account 463 or 408 in Xero. It's a SaaS subscription, so it sits with other productivity software like Google Workspace and Microsoft 365. #### Is Dropbox tax deductible? Yes. It's an ordinary and necessary business expense under §162. Full deduction in the year incurred for monthly billing. Annual (12-month or less) prepays are generally deductible in full too, under the 12-month rule; only a multi-year prepay gets amortized. #### Do I issue a 1099 to Dropbox? No. Dropbox, Inc. is a corporate payee, exempt under §6041. No 1099-NEC or 1099-MISC regardless of how much you pay. #### What Schedule C line is Dropbox? Line 27a Other expenses, with description "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. #### Is Dropbox Sign a different expense category than Dropbox? No. Dropbox Sign is still Software, even when it bills as a separate line. It's a distinct product under the same corporate parent, so keep it on the same GL account and note the split if you track SaaS spend by product. #### How do I handle a personal Dropbox plan used partly for business? Allocate by actual business use, based on folder count or storage used, and document the method. Post only the business share to the Software account; the personal share isn't deductible. #### Should I categorize Dropbox annual billing differently? Only if it's a multi-year prepay. A 12-month-or-less prepay is generally deductible in full in the year you pay it, under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), regardless of the dollar amount. A multi-year prepay capitalizes as Prepaid Expense and amortizes over the term. #### Do I owe sales tax on Dropbox? Depends on your state. As of 2026, SaaS is generally taxable in Texas (as data processing, about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes. Dropbox collects where required; verify your state's current rule. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize DocuSign](/blog/categorize-docusign) - [How to categorize Google Workspace](/blog/categorize-google-workspace) - [How to categorize Notion](/blog/categorize-notion) - [How to categorize Microsoft 365](/blog/categorize-microsoft-365) Stop guessing whether the Dropbox Sign line belongs with the rest of your SaaS spend. [Get started with Growthy](/signup?utm_content=categorize-dropbox) — pattern learning across your software vendors, with anything unusual flagged for your review. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Docusign in QuickBooks (and Xero)](https://growthy.com/blog/categorize-docusign): Docusign posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099. Envelope overages are still Software, just variable. Annual prepays deduct under the 12-month rule. ## How to Categorize Docusign in QuickBooks (and Xero) Docusign hits the bank feed as a predictable monthly or annual charge, so most bookkeepers park it in Software and move on. That holds up fine until the plan's envelope allowance runs out mid-quarter. An overage line shows up on the next invoice, unrelated to any price change or new subscription. Docusign also sells more than one product under the same brand: eSignature, CLM (Contract Lifecycle Management), Notary, and the newer IAM (Intelligent Agreement Management) suite. Each can show up as its own line item or its own invoice, and API-based developer plans bill by usage instead of seats. None of that changes the category, but it does change how many places the charge can hide. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Docusign go to in QuickBooks?** > > Docusign posts to **Dues & Subscriptions** or **Software (Detail Type: Software)** in QuickBooks Online. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." You don't issue a 1099 to Docusign. Docusign, Inc. is a corporate payee, exempt under §6041. Sales tax depends on your state: as of 2026, SaaS is generally taxable in Texas (taxed as data processing, so about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes, so verify your state's (and city's) current rule. Docusign collects where required. Annual prepayments of 12 months or less are generally deductible in full in the year you pay, under the 12-month rule (Treas. Reg. §1.263(a)-4(f)); the $2,500 figure some bookkeepers reach for is the de minimis safe harbor for buying equipment, not subscriptions. Prepays running past 12 months get capitalized as Prepaid Expense and amortized over the term. Envelope overage charges stay in the same Software account; they just make the monthly total move around. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not Office Supplies, not Postage, not a generic "Fees" account. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to Docusign.** Docusign, Inc. is a corporate payee. The §6041 corporate exemption applies, so skip the W-9 chase. - **Envelope overage charges are still Software.** They're a variable add-on to the same subscription, not a new expense category and not a penalty line. - **Every SKU is Software.** eSignature, CLM, Notary, and IAM all land in the same bucket. Don't scatter them across Legal, Professional Services, and Software just because the invoice names change. - **Annual prepay of 12 months or less is generally fully deductible.** Under the 12-month rule (Reg. §1.263(a)-4(f)), you can deduct it in the year paid regardless of size. Only prepays running past 12 months get capitalized as Prepaid Expense and amortized. ### What is Docusign? Docusign is electronic signature and agreement software. Companies use it to send contracts, offer letters, NDAs, and closing documents for signature without printing or scanning anything. Plans are typically seat-based, priced per user per month or per year, and most plans bundle a set number of "envelopes" (one envelope = one document or document set sent for signature) into the subscription. Docusign also sells CLM for managing contracts after signature, a Notary product for remote online notarization, and an IAM suite that bundles several of these together. The company rebranded from "DocuSign" to "Docusign" in recent years, so the bank feed or invoice may show either spelling depending on when the vendor record was created. Either way, it's the same payee. ### Where Docusign goes in your books | Field | Value | | --- | --- | | QBO account | Dues & Subscriptions OR Software (Detail Type: Software). Add sub-account "Docusign" if you track SaaS vendors individually. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Line 27a Other expenses, descriptor "Software subscriptions." | | Form 1120 / 1120-S | Line 26 / Line 19 | | MCC range | 7372 (Computer Programming/Data Processing) | | 1099-NEC required | No. Docusign, Inc. is a corporate payee. §6041 corporate exemption. | | Sales-tax flag | Varies by state; as of 2026, generally taxable in TX (as data processing, ~80% of the charge), NY, PA, WA, OH, HI, and generally exempt in CA, FL, IL, OR. Rules change often, so verify your state's (and city's) current rule. Docusign collects where required. | ### The Difficult 20%: Where Docusign trips bookkeepers up #### Envelope allowances and overage charges Most Docusign plans bundle a set number of envelopes per user per year into the base subscription. When a sales team or real estate office sends more contracts than the plan allows, mid-cycle overage charges hit the next invoice. They're billed per envelope over the allowance. The category doesn't change: overage is still Software, posted to the same account as the base subscription. What changes is predictability. A business that closes a burst of deals in one quarter can see a Docusign bill spike well above the flat monthly rate without any plan upgrade. Flag recurring overage as a sign the business has outgrown its current tier, but don't book it anywhere other than Software. #### Different SKUs: eSignature, CLM, Notary, IAM Docusign sells eSignature, CLM, Notary, and IAM as separate products, and larger accounts sometimes run more than one at once. A company might have an eSignature subscription for sales contracts and a CLM subscription for post-signature contract tracking, billed on separate invoices with separate line items. Both are Software. The mistake is routing CLM to a "Legal" or "Compliance" account because of the name, or splitting Notary into "Professional Services" because it involves a notary. All four SKUs describe agreement workflow software, and all four sit in the same Software or Dues & Subscriptions bucket. Use sub-accounts if you want visibility into which SKU costs what, but keep the parent category consistent. #### API and developer plans Docusign's eSignature API and developer accounts are usage-metered, billed by API calls or envelopes sent programmatically rather than by seat. A company embedding e-signature into its own product might see a variable monthly charge tied to customer volume instead of a flat per-user fee. The billing structure looks different from a standard seat-based plan, but the expense is the same Software subscription. Don't reclassify metered API charges as Hosting or Cloud Services just because the invoice reads like infrastructure billing; it's still Docusign's signature platform underneath. #### Annual vs monthly prepay Most small teams pay monthly. Some prepay a year for the discount, and that's where the 12-month rule matters, not the $2,500 figure most bookkeepers reach for. Say a 15-person sales team's annual eSignature plan renews at $3,600. (Illustrative example; your invoice depends on seat count and plan.) Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), a prepayment that buys 12 months or less of access, and doesn't run past the end of next tax year, is generally deductible in full in the year you pay it, even at $3,600. The $2,500 de minimis safe harbor is for buying equipment, not subscriptions, so it doesn't apply here. Prepay for more than 12 months, say a two- or three-year deal, and the treatment flips: capitalize it as a Prepaid Expense and deduct it over the term. Accrual-method businesses have an extra timing rule under §461, so confirm the treatment with your CPA. #### E-signature parallels: Dropbox Sign and Adobe Acrobat Sign Docusign isn't the only e-signature tool in the stack. Dropbox Sign and Adobe Acrobat Sign solve the same problem and land in the exact same Software bucket. If a company runs two e-signature tools at once, maybe Docusign for sales and Dropbox Sign for HR onboarding, both get the same treatment: Software, no 1099, same category logic on envelope-style billing quirks. See [how to categorize Dropbox Sign](/blog/categorize-dropbox) and [how to categorize Adobe Creative Cloud](/blog/categorize-adobe-creative-cloud) for the parallel reasoning. ### How Growthy suggests a category for Docusign Growthy suggests Software or Dues & Subscriptions for the Docusign (or DocuSign) line on the bank feed. Low-confidence entries, like an envelope overage spike or an annual renewal, go to your review instead of posted silently. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### What expense category is Docusign? Software or Dues & Subscriptions in QuickBooks. Account 463 or 408 in Xero. It's a SaaS subscription, so it sits with other business software like Salesforce and Adobe Creative Cloud. #### Is Docusign tax deductible? Yes. It's an ordinary and necessary business expense under §162. Monthly billing is fully deductible as paid. Annual prepays of 12 months or less are also generally fully deductible in the year paid, under the 12-month rule (Reg. §1.263(a)-4(f)); only prepays running past 12 months get capitalized and amortized. #### Do I issue a 1099 to Docusign? No. Docusign, Inc. is a corporate payee, exempt under §6041. No 1099-NEC or 1099-MISC regardless of how much you pay. #### What Schedule C line is Docusign? Line 27a Other expenses, with description "Software subscriptions." It's SaaS, so Line 27a is the cleaner mapping than Legal & Professional Fees. #### How do I record a Docusign envelope overage charge? The same way as the base subscription: Software or Dues & Subscriptions. Overage is a variable add-on tied to signing volume, not a separate expense category. #### Should I categorize Docusign annual billing differently? Not because of the dollar amount. An annual prepay of 12 months or less is still generally deductible in full in the year paid, under the 12-month rule, regardless of size. Only a prepay that runs past 12 months (a multi-year deal) gets capitalized as Prepaid Expense and amortized over the term. #### Do I owe sales tax on Docusign? Depends on your state. As of 2026, SaaS is generally taxable in Texas (taxed as data processing, so about 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes. Docusign collects where required; verify your state's (and city's) current rule if you self-assess use tax. #### Does it matter which Docusign product I'm billed for? No. eSignature, CLM, Notary, and IAM are all Docusign products and all post to Software. Split them into sub-accounts for internal tracking if you like, but keep the parent category the same. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize Dropbox Sign](/blog/categorize-dropbox) - [How to categorize Adobe Creative Cloud](/blog/categorize-adobe-creative-cloud) - [How to categorize Salesforce](/blog/categorize-salesforce) Stop guessing whether an overage charge or a CLM invoice belongs somewhere new. [Get started with Growthy](/signup?utm_content=categorize-docusign): low-confidence entries go to your review and Growthy auto-categorizes the high-confidence ones. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Canva in QuickBooks (and Xero)](https://growthy.com/blog/categorize-canva): Canva's subscription posts to Software or Dues & Subscriptions, Schedule C Line 27a. No 1099 (foreign payee, W-8BEN-E). Canva Print is a tangible good, split separately. Annual prepays deduct under the 12-month rule. ## How to Categorize Canva in QuickBooks (and Xero) Canva shows up on the bank feed as a routine monthly charge, and most bookkeepers drop it into Software without a second thought. That works fine until a Canva Print order for business cards or a banner rides along on the same statement. It also breaks down when a growing team adds paid seats mid-cycle, or when the annual invoice lands and someone has to decide whether to expense it or capitalize it. Canva is design software. It belongs in Software or Dues & Subscriptions, same shelf as Adobe Creative Cloud and Figma. The easy 80% is knowing that. The other 20% is trickier: Canva Print is a real print shop bundled into the same account, and it ships tangible goods instead of software. Add the judgment call between Software and Marketing, plus per-seat billing that doesn't always match a flat calculation. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). > **What account does Canva go to in QuickBooks?** > > Canva's Pro or Teams subscription posts to **Dues & Subscriptions** or **Software (Detail Type: Software)** in QuickBooks Online. In Xero, use account code **463 (Subscriptions)** or **408 (Software & IT Expenses)**. On Schedule C, it's **Line 27a Other expenses** with description "Software subscriptions." You don't issue a 1099 to Canva. Canva Pty Ltd is a foreign corporation, so it's documented on **Form W-8BEN-E instead of a W-9**, but the corporate exemption still applies, same as a domestic vendor. Sales tax depends on your state: as of 2026, SaaS is generally taxable in states like Texas (as data processing, roughly 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon. Treatment varies by state and locality and changes often, so verify your state's current rule. Annual prepayments of 12 months or less are generally deductible in full in the year you pay, under the 12-month rule, even for a large invoice. A prepay running past 12 months capitalizes as Prepaid Expense and amortizes over the term. If a Canva Print order for business cards, banners, or merch shows up on the same statement, split it out. That's a tangible good, not software. ### Key Takeaways - **GL bucket: Software or Dues & Subscriptions.** Not Office Supplies, not Advertising by default. QBO Detail Type "Software" is the cleanest mapping; Xero 463 or 408 both work. - **Schedule C Line 27a for the subscription.** Other expenses, descriptor "Software subscriptions." Form 1120 Line 26, Form 1120-S Line 19. - **No 1099 to Canva.** Canva Pty Ltd is a foreign corporation, a corporate payee. Foreign vendors like Canva get a Form W-8BEN-E instead of a W-9, but the no-1099 result is the same as a domestic corporate payee. - **Canva Print orders are not software.** A print order for business cards, banners, or merch is a tangible good. Split it to Printing, Office Supplies, or Advertising depending on use. - **Software vs Marketing is a real choice.** The Canva Pro subscription defaults to Software, but a team using Canva only for ad creative may book it to Advertising/Marketing instead. Pick one and stay consistent. - **Annual prepay of 12 months or less is generally fully deductible.** Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), even a large invoice is deductible in the year paid. Prepay past 12 months and it capitalizes as Prepaid Expense, amortized over the term. ### What is Canva? Canva is a browser-based design tool. Templates for social posts, presentations, print layouts, and video, built for teams without a dedicated designer. The free tier covers basics. Canva Pro adds premium templates, a brand kit, and a background remover. Canva Teams adds shared brand controls and per-seat admin across a company account. Canva also runs Canva Print, a separate service that ships physical printed products, business cards, banners, apparel, stickers, straight to your door. It's billed through the same account, and sometimes the same invoice, as the subscription. That's the part that trips up bookkeeping. For most small teams, Canva sits next to Adobe Creative Cloud and Figma in the design software stack. ### Where Canva goes in your books | Field | Value | | --- | --- | | QBO account | Dues & Subscriptions OR Software (Detail Type: Software) for the Pro/Teams subscription. Add sub-account "Canva" if you track SaaS vendors individually. | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT Expenses) | | Schedule C | Subscription: Line 27a Other expenses, descriptor "Software subscriptions." Canva Print physical goods: Line 8 Advertising for promotional print, or Line 18 Office expense for generic printed stock, depending on use. | | Form 1120 / 1120-S | Line 26 / Line 19 (subscription) | | MCC range | 7372 (Computer Programming/Data Processing) | | 1099-NEC required | No. Canva Pty Ltd is a foreign corporation, a corporate payee documented on Form W-8BEN-E. The corporate exemption applies to foreign corporations too. | | Sales-tax flag | Depends on state. As of 2026, generally taxable in TX (data processing, roughly 80% of the charge), NY, PA, WA, OH, HI; generally exempt in CA, FL, IL, OR. Rules vary by state and locality and change often, so verify your state's current rule. Canva collects where required. Canva Print physical goods follow normal tangible-goods sales tax rules, separate from the SaaS treatment. | ### The Difficult 20%: Where Canva trips bookkeepers up #### The Canva Print trap Canva sells two different things through one account: a design subscription and a print shop. Canva Print ships actual paper and merch, business cards, banners, yard signs, T-shirts, mugs. That's a tangible good, not software, and it does not belong in the Software or Dues & Subscriptions line next to your Pro subscription. If a print order lands on the same statement as your monthly Canva charge, split the transaction. Route the print order to Printing, Office Supplies, or Marketing/Advertising depending on what you printed and why. A batch of client-facing brochures might be Marketing; business cards for a new hire might be Office Supplies. The subscription charge stays put in Software. Mixing the two overstates your software spend and understates whatever category the printed piece actually belongs to. #### Software vs Marketing: a real judgment call The Canva Pro or Teams subscription defaults to Software, same shelf as any other productivity SaaS tool. But some teams use Canva for one purpose only: producing ad creative and marketing graphics, nothing else. If that's genuinely the whole use case, booking the subscription to Advertising/Marketing instead of Software is a defensible call. The IRS doesn't require one over the other; what matters is that you document the choice and apply it consistently across periods. Don't book the subscription to Marketing one quarter and Software the next because a different bookkeeper touched the file. Pick a lane and note it in your COA reference so future you, or your successor, doesn't second-guess it. #### Free, Pro, and Teams: per-seat additions mid-cycle Canva's free tier costs nothing and posts no entry. Pro is billed per user, monthly or annually. Teams adds admin controls and per-seat billing across a company workspace. When a growing team adds seats mid-cycle, Canva prorates the additional seats for the remainder of the billing period. That means the charge on your bank feed won't match the flat per-seat rate you'd expect from a simple calculation. That's expected proration, not a billing error. Post what clears the bank each period; there's no adjusting entry needed unless the invoice looks wrong on its face. #### Annual vs monthly: when the prepay crosses the line Most small teams pay Canva monthly, and that's simple: deduct each month as you pay. Annual prepayment is where bookkeepers get it wrong. Under the 12-month rule (Treas. Reg. §1.263(a)-4(f)), a prepayment that buys 12 months or less of access, and doesn't run past the end of next tax year, is generally deductible in full when you pay it. That's true even for a large invoice. Say a growing agency prepays a year of Canva Teams for $3,000. (Illustrative example; your invoice depends on seat count and plan.) That's fully deductible now. The $2,500 figure you may have heard is the de minimis safe harbor for buying equipment, not for subscriptions, so it doesn't apply here. Prepay for more than 12 months, a two- or three-year deal, and it's different: capitalize it as a Prepaid Expense and deduct it over the term. Accrual-method businesses have an extra timing rule under §461, so confirm the treatment with your CPA. #### Brand kit, app add-ons, and Canva Print on one receipt Canva sells brand kit upgrades and third-party app integrations inside the platform, on top of the core subscription. Those stay in the same Software or Dues & Subscriptions bucket as the Pro or Teams charge; they're still part of the subscription, not a separate category. The one thing that must be split out, every time, is a Canva Print order riding on the same receipt. If your statement shows one combined charge for the monthly subscription plus a print order, don't let the print order hide inside the software line. Break it out to Printing, Office Supplies, or Advertising per the Canva Print trap above. ### How Growthy categorizes Canva automatically Growthy suggests a category, Software or Dues & Subscriptions, for the Canva line on the bank feed. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### What expense category is Canva? Software or Dues & Subscriptions in QuickBooks, for the Pro or Teams subscription. Account 463 or 408 in Xero. Some teams that use Canva only for ad creative book it to Advertising/Marketing instead; either is defensible if applied consistently. #### Is Canva tax deductible? Yes. It's an ordinary and necessary business expense under §162. Monthly billing deducts in full as you pay it. An annual prepay of 12 months or less also deducts in full in the year paid, under the 12-month rule. A prepay running past 12 months amortizes over the term instead. #### Do I issue a 1099 to Canva? No. Canva Pty Ltd is a foreign corporation, a corporate payee. The corporate exemption applies to foreign corporations the same way it applies to domestic ones, so no 1099-NEC or 1099-MISC regardless of amount. Foreign vendors like Canva get documented on Form W-8BEN-E instead of a W-9. #### What Schedule C line is Canva? Line 27a Other expenses, descriptor "Software subscriptions," for the subscription charge. A Canva Print order for physical goods goes to Line 8 Advertising for promotional print, or Line 18 Office expense for generic printed stock, not Line 27a. #### How do I categorize a Canva Print order? As a tangible good, not software. Split it to Printing, Office Supplies, or Marketing/Advertising depending on what you printed and why. Don't let it ride along inside the Canva Pro subscription line. #### Should I categorize Canva annual billing differently? Only if the term runs past 12 months. Under the 12-month rule, an annual prepay of 12 months or less is generally deductible in full in the year paid, regardless of the dollar amount. A prepay that spans more than 12 months capitalizes as Prepaid Expense and amortizes over the term. #### Do I owe sales tax on Canva? Depends on your state. As of 2026, SaaS is generally taxable in states like Texas (taxed as data processing, roughly 80% of the charge), New York, Pennsylvania, Washington, Ohio, and Hawaii, and generally exempt in California, Florida, Illinois, and Oregon, but treatment varies by state and locality and changes often. Canva collects where required; verify your state's (and city's) current rule. Canva Print physical goods follow normal tangible-goods sales tax rules, a separate question from the SaaS treatment. #### Should Canva go to Software or Marketing? Software by default. If your team uses Canva exclusively to produce ads and marketing graphics, Advertising/Marketing is a defensible alternative. Whichever you choose, apply it the same way every month. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize Figma](/blog/categorize-figma) - [How to categorize Adobe Creative Cloud](/blog/categorize-adobe-creative-cloud) - [How to categorize Mailchimp](/blog/categorize-mailchimp) Stop untangling Canva Print orders from your software subscription every month. [Get started with Growthy](/signup?utm_content=categorize-canva): Growthy auto-categorizes high-confidence transactions; you review the rest. > *Tax figures verified against tax-thresholds-2026.yaml on 2026-07-02. Sales-tax treatment varies by state and changes frequently; verify your state's current rule. Pricing described qualitatively, not point-in-time verified.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [Accounts Receivable Turnover Ratio in Days: Formula, DSO, and Examples](https://growthy.com/blog/accounts-receivable-turnover-ratio): If your average customer takes 60 days to pay, you're lending them money for free. You might not notice until payroll gets tight. Late collections don't announce themselves. They creep in one overdue invoice at a time. If your average customer takes 60 days to pay, you're lending them money for free. You might not notice until payroll gets tight. Late collections don't announce themselves. They creep in one overdue invoice at a time. The accounts receivable turnover ratio catches this early. It tells you how many times you collect your full AR balance in a period. Track it monthly and you'll spot a slowdown before it hits your bank account. This article is part of our [accounts receivable management](https://growthy.com/topics/accounts-receivable-management) series. It covers the formula, how to read the number for your industry, and five levers that move it. We'll work through a concrete example: $600,000 in credit sales and $75,000 in average AR. You can follow the math with your own numbers. ## What Is Accounts Receivable Turnover in Days? Accounts receivable turnover in days is days sales outstanding (DSO). Divide the number of days in the period by your AR turnover ratio for that period (365 for a full year). The result is the average number of days customers take to pay. An annual ratio of 8 means about 46 days. Fewer days means faster collections and more cash on hand. The ratio itself is net credit sales divided by average accounts receivable. A ratio of 8 means you collect your full AR balance 8 times per year. That's about every 46 days. What counts as good depends on your payment terms and your industry. ## Key Takeaways - **AR turnover ratio formula:** net credit sales divided by average AR balance; a ratio of 8 means you collect your full balance 8 times per year - **DSO is the companion metric:** days in the period divided by that period's turnover ratio (365 for a full year); an annual ratio of 8 equals about 46 days to collect - **Worked example:** $600,000 in credit sales divided by $75,000 average AR gives a turnover ratio of 8 and a DSO of about 46 days - **Read it against your terms:** compare DSO to the payment terms you offer, and watch the trend month over month - **Top levers to improve:** tighten payment terms, require upfront deposits, invoice same day, and run a follow-up cadence ## What Is the AR Turnover Ratio? The AR turnover ratio measures how well you collect from credit customers. "Turnover" means how many times your receivables balance gets collected and replenished in a period. Don't confuse it with inventory turnover. These are separate metrics. Think of it as a collections health score. A high ratio means you collect quickly. A low ratio means cash is tied up in unpaid invoices. Tracking this metric helps in a few concrete ways. It shows how your collections process performs over time. It gives you a number to share with lenders or investors who want to assess credit risk. And it flags problems early, before they become cash flow crises. One number alone doesn't tell you much. The trend over three to six months does. ### The Formula **AR turnover ratio = net credit sales divided by average accounts receivable** Each term has a specific meaning. **Net credit sales:** Total credit sales, minus returns and allowances. Cash sales don't belong here. You don't extend credit on those. **Average accounts receivable:** (Beginning AR balance + ending AR balance) divided by 2. This smooths out swings over the period. For a full year, use the AR balance on January 1 and December 31. For a quarter, use the start and end of that quarter. ### Why "Net Credit Sales" Matters The numerator is where most mistakes happen. If you include cash sales, you inflate the ratio. Your collections may not have improved at all. You're mixing in revenue that never became a receivable. Always pull credit sales separately from cash sales. Your ratio might look strong but reveal nothing about collections. That happens when most sales were cash. ## How DSO Relates to AR Turnover Days sales outstanding (DSO) is the same metric in different units. Instead of "you collect 8 times per year," it says "you collect in about 46 days." Same signal, different scale. Many operators find "46 days to collect" easier to reason about. "Turnover of 8" is less intuitive day to day. The [accounts receivable aging report](https://growthy.com/blog/accounts-receivable-aging-report) gives you the invoice-level detail behind the DSO number. ### The DSO Formula **DSO = days in the measured period divided by that period's AR turnover ratio** For an annual ratio, the period is 365 days. For a monthly or quarterly ratio that isn't annualized, use the days in that month or quarter. Two annual examples: | Turnover Ratio | DSO Calculation | Days to Collect | | --- | --- | --- | | 8 | 365 / 8 | ~46 days | | 5 | 365 / 5 | 73 days | Moving from a ratio of 5 to 8 cuts average collection time by about 27 days. ### Accounts Receivable Turnover in Days, Step by Step To get from the ratio to days, take three steps. First, calculate net credit sales divided by average accounts receivable. Second, divide the days in the period by that ratio. Third, compare the result to your payment terms. Keep the sales and AR figures on the same period. ### Why DSO Matters for Cash Flow Those days have a dollar value. Take a business with $600,000 in annual credit sales: $600,000 / 365 = about $1,644 per day 73 - 45.625 = 27.375 fewer days; 27.375 x ($600,000 / 365) = $45,000 freed from receivables That $45,000 isn't new revenue. It's money you were already earning, just collecting faster. ## A Worked Example Here's the math for a business with $600,000 in net credit sales and a $75,000 average AR balance. ### Step-by-Step Calculation **Step 1:** Calculate the AR turnover ratio $600,000 / $75,000 = **8** **Step 2:** Calculate DSO 365 / 8 = **about 46 days** **Step 3:** Compare to your payment terms - Net 30 terms: you're collecting 16 days late on average. Find the slow payers. - Net 45 terms: you're collecting about on time. - Net 60 terms: you're well ahead. Consider tightening terms. ### What the Numbers Tell You One number doesn't tell you much. The signal comes from the trend. Run the ratio each month. If your annualized ratio starts at 9 in January and falls to 6 by March, something changed. New clients with slow habits. A billing process that slipped. A key client who went quiet. Catching a decline at 6 is much better than catching it at 3. Here's a simple tracking method. At month-end, record three numbers: net credit sales for the month, beginning AR balance, and ending AR balance. Calculate the monthly ratio. To convert it to days, divide the days in that month by the monthly ratio. Log it in a spreadsheet next to your payment terms. Compare month to month. A single number tells you where you are. A six-month trend tells you where you're going. Both numbers are only as good as the balance underneath them. If payments are sitting unapplied, the average AR balance is overstated and the ratio reads worse than reality. See [accounts receivable](/blog/accounts-receivable) for how the balance is built, and [payment reconciliation](/topics/payment-reconciliation) for matching deposits to the invoices they paid. ## What Good Looks Like by Industry "Good" depends on your industry and the terms you offer. Compare your DSO to your own payment terms first, then to your own trend. Contract structure matters. If your contracts let clients hold back retainage until a project wraps up, your ratio runs lower for a structural reason. That isn't a sign of slow collections. Billing method matters too. If most customers pay by card or ACH automatically on a subscription, expect a higher ratio than a business that invoices by hand. If you're comparing a business with some manual billing, adjust your expectations accordingly. ### Warning Signs A steady decline is the main warning sign. Pull your AR aging report to find the invoices driving it. Watch for a false positive. A rising ratio doesn't always mean better collections. Cash sales mixed into the numerator, for example, raise the ratio without any change in how fast customers pay. Check both the numerator and denominator before drawing conclusions. ## How to Improve Your AR Turnover Collections don't improve on their own. They improve when you change the inputs. Here are five levers that work. For detailed workflows and templates, see the [accounts receivable collections guide](https://growthy.com/blog/accounts-receivable-collections). ### Tighten Payment Terms If you default to Net 30, that may be too long, especially for smaller invoices or new clients. Net 15 is reasonable for clients who've proven reliable. Early-payment discounts work too. A 2/10 Net 30 term means 2% off if paid within 10 days. That's a yearly incentive of roughly 37% (2/98 x 365/20). ### Require Deposits on New Work An upfront deposit does two things. It cuts your exposed receivable right away. And it surfaces clients who won't pay before you've done the work. If a prospect pushes back hard on a deposit, that's useful data before the engagement starts. ### Invoice Same Day (or Faster) The invoice clock starts when the client gets the invoice. It doesn't start when you finish the work. A two-week invoicing delay postpones billing and can delay cash collection. That's before your client does anything wrong. Invoice on the day of delivery. ### Follow-Up Cadence Some late payments are simply overlooked. A three-step cadence helps: 1. Day 1 after the due date: friendly reminder with the invoice attached 2. Day 7: firmer follow-up 3. Day 14: escalation to the decision-maker Automate the first two steps if your invoice volume warrants it. ### Track Month Over Month The ratio only helps if you watch it over time. Calculate it each month. A two-month decline is easy to trace. A six-month decline is a cash flow problem. ## Frequently asked questions ### What is a good accounts receivable turnover ratio? It depends on your industry and your payment terms, so start there. Convert the ratio to days (days in the period divided by the ratio, or 365 for a full year) and compare it to the terms you offer. A DSO close to your terms means customers pay about on time. More important than any single reading: is the ratio improving over time? ### How do you calculate average accounts receivable? Add your beginning AR balance and ending AR balance for the period. Then divide by 2. Use the same time span as your credit sales. For a full-year ratio, use January 1 and December 31. For a quarterly ratio, use the start and end of that quarter. ### Is days sales outstanding the same as accounts receivable turnover? They measure the same thing in different units. AR turnover ratio tells you how many times per year you collect. DSO tells you how many days it takes on average. To convert: DSO = days in the period divided by that period's AR turnover ratio. An annual ratio of 8 equals a DSO of about 46 days (365 / 8). ### How do you calculate accounts receivable turnover in days? Start with net credit sales divided by average accounts receivable. That gives the turnover ratio. Then divide the days in the period by the ratio. With $600,000 in annual credit sales and $75,000 in average AR, the ratio is 8. Dividing 365 by 8 gives about 46 days. Use the same period for sales and AR. ### What is the debtors turnover ratio in days? Debtors are the customers who owe you money, so the debtors turnover ratio is the AR turnover ratio under another name. Debtors turnover days is DSO. Divide the days in the period by the ratio. An annual ratio of 8 gives about 46 days. The formula and the way you read the result stay the same. ### Why is my AR turnover ratio going down? Four common causes: customers paying slower, longer payment terms, invoicing delays, or credit sales that dropped while AR held steady. Pull your aging report and look at the oldest invoices. Check both the numerator and denominator before drawing conclusions. A falling ratio means more days to collect. ### Does Growthy help with AR turnover? Growthy helps keep the books behind the formula clean. It pulls bank transactions in through Plaid bank feeds, gives each suggested category a confidence score for your review, and syncs categorizations two-way with QuickBooks Online. An audit history shows every categorization change. You can also see how receivables compare to payables in the [AR vs. AP guide](https://growthy.com/blog/accounts-receivable-vs-accounts-payable). ## Conclusion The AR turnover ratio and DSO are lagging indicators. They tell you what already happened. The trend matters more than any single reading. Calculate the ratio monthly. Track it against your payment terms. When it drops, dig into your aging report. Sometimes the cause is a new client on Net 60 terms. Sometimes it's an invoicing delay you can fix in a week. *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=accounts-receivable-turnover-ratio) ### [Payment Reminders for Unpaid Invoices: Templates and a Cadence That Works](https://growthy.com/blog/payment-reminders-unpaid-invoices): You sent the invoice three weeks ago. The client loved the work. Now your inbox is quiet and your bank account isn't moving. You sent the invoice three weeks ago. The client loved the work. Now your inbox is quiet and your bank account isn't moving. Late payments don't usually happen because a client is trying to stiff you. They got busy. The email got buried. Their own cash timing is off. A structured payment reminder cadence solves all three. It tells clients you're paying attention, and it gives you a system so you're not stressing over what to say every time an invoice goes quiet. [Accounts receivable management](https://growthy.com/topics/accounts-receivable-management) starts with getting paid on time. That starts with a repeatable follow-up process. This article covers a practical 5-touch cadence, invoice reminder templates that go from polite to firm, a plain-English explanation of the dunning process, and a clear guide on when to stop following up and escalate. > **What is a payment reminder for unpaid invoices?** > > A payment reminder is a message you send before or after an invoice due date to request payment. An effective cadence uses 5 touchpoints: 3 days before the due date, on the due date, at +7 days, +14 days, and +30 days. Over 85% of late invoices resolve within that 30-day window when reminders are sent consistently. Most small businesses see invoices run 7-14 days past due on average. A structured sequence prevents awkward phone calls and removes the guesswork from follow-up. ## Key Takeaways - **5 touchpoints cover most situations:** Send reminders at -3 days, due date, +7, +14, and +30 days. Over 85% of late invoices resolve within 30 days with a consistent cadence. - **Templates remove the anxiety:** Copy-paste templates keep tone consistent and remove the "what do I say?" decision every time an invoice goes quiet. - **Dunning is just a word for a system:** It's the structured process of requesting overdue payment, from polite to firm, using timed messages. - **Escalate at +60 days:** If a client ignores all 5 touchpoints with no response, shift from reminders to a formal demand or collections process. - **Tools like Bill.com and Invoiced automate the sends:** Bill.com, Invoiced, and Versapay handle the actual reminder sends. - **Late fees only work if they're in the contract:** You can charge 1.5% per month on overdue balances, but only if your original agreement says so. ## Why a Reminder Cadence Beats Ad-Hoc Chasing Most small business owners follow up on invoices when they feel like it. Cash gets tight, they draft a message. They get busy, they forget for two weeks. This unpredictable pattern sends a quiet signal to clients: late payment is acceptable. A defined cadence solves two things at once. It removes the emotional burden of deciding when and what to write. And it signals to clients that you run a real business with real processes. Clients who experience a consistent, professional follow-up are less likely to deprioritize your invoice. Inconsistency is the bigger problem than tone. A client who receives nothing for 20 days, then an urgent message, feels blindsided. One who receives a predictable sequence of professional reminders knows exactly where they stand. ### Why Timing Matters The timing of each touchpoint matters as much as the message itself. A 3-day-before reminder catches clients who forgot to set up a payment. The day-of message removes the "I didn't know it was due today" excuse. Each subsequent touchpoint shifts the tone slightly so the client feels the stakes increasing without being ambushed by a sudden demand. ### The Cost of Chasing Without a System Without a cadence, small business owners can spend 10-15 hours a month following up on late payments. That's nearly two workdays. A defined sequence cuts that time because the follow-up runs on a schedule, not on anxiety. You decide once what to send at each stage. Then you just execute. Check your [accounts receivable aging report](https://growthy.com/blog/accounts-receivable-aging-report) monthly. It shows exactly which invoices are past due and by how many days, so you can trigger the right template at the right time without manually tracking each invoice. ## The 5-Touch Payment Reminder Cadence Here are the five touchpoints. Each step below maps to a template in the next section. 1. **Three days before the due date.** Send a friendly heads-up. Assume good faith. Many clients genuinely lost the invoice in their inbox. Keep it short: two or three sentences, confirm the amount and due date, and include your payment link. 2. **On the due date.** A simple, neutral reminder. Confirm the amount and payment method. One short paragraph. No accusation. 3. **Seven days past due.** First escalation in tone, still professional. Reference the invoice number and original due date. Offer to help if there's an issue with the invoice. If you get no response after this, our guide on[AR collections](https://growthy.com/blog/accounts-receivable-collections) covers your options. 4. **Fourteen days past due.** Firmer. State clearly that the account is overdue. If your contract includes a late fee, name it here: "Per our agreement, a 1.5% monthly late fee applies to balances past 30 days." Keep it factual. 5. **Thirty days past due.** Final automated reminder before human intervention. State clearly that if you don't hear back by a specific date, you'll need to discuss next steps. This is the last touch before escalation. ## 4 Copy-Paste Templates: Polite to Firm Replace the bracketed fields with your details. Each template is ready to send as-is. ### Template 1: Friendly Nudge (3 Days Before Due) Email: ``` Subject: Quick heads-up: Invoice #[NUM] due [DATE] Hi [Client Name], Just a quick note that Invoice #[NUM] for $[AMOUNT] is due on [DATE]. You can pay here: [PAYMENT LINK] Let me know if you have any questions. [Your Name] ``` SMS: ``` Hi [Client], quick reminder: Invoice #[NUM] for $[AMOUNT] is due [DATE]. Pay here: [LINK]. Questions? Just reply. ``` ### Template 2: First Follow-Up (+7 Days Past Due) ``` Subject: Invoice #[NUM] is past due: quick check-in Hi [Client Name], Invoice #[NUM] for $[AMOUNT] was due on [DATE]. Wanted to check in and make sure everything's okay on your end. If there's a question about the invoice or you'd prefer a different payment method, let me know and I'll sort it out. Pay here: [PAYMENT LINK] [Your Name] ``` ### Template 3: Firm Reminder (+14 Days Past Due) ``` Subject: Invoice #[NUM]: payment needed by [DATE] Hi [Client Name], Invoice #[NUM] for $[AMOUNT] is now 14 days past due (original due date: [DATE]). Per our agreement, a late fee of 1.5% per month applies to balances outstanding past 30 days. Please arrange payment by [DATE+7] to avoid additional fees. Pay here: [PAYMENT LINK] [Your Name] ``` ### Template 4: Final Notice (+30 Days Past Due) Email: ``` Subject: Final reminder: Invoice #[NUM], action needed Hi [Client Name], Invoice #[NUM] for $[AMOUNT] remains unpaid as of today, now 30 days past due. This is my final notice before I explore other options. Please pay by [SPECIFIC DATE] or contact me to discuss the balance. Pay here: [PAYMENT LINK] [Your Name] ``` SMS: ``` Final notice: Invoice #[NUM] for $[AMOUNT] is 30 days overdue. Pay by [DATE]: [LINK]. Reply if you need to discuss. ``` ## What "Dunning" Means (And Why Bookkeepers Care) "Dunning" is the structured process of requesting payment for overdue invoices. It starts with a polite reminder and escalates to a firm final demand. The name has old English roots but the idea is simple: send the right message at the right time until you get paid or decide to escalate. Automated dunning tools handle the scheduling and sending. Bill.com combines invoice management with a configurable dunning sequence. Invoiced is built for AR automation with escalation rules you set once. Versapay handles larger-volume enterprise AR with a client self-service portal. Growthy doesn't send dunning sequences or invoices. For the actual reminder sends, use one of the tools above. ## When to Escalate to Collections Most invoices resolve within 30 days with a consistent cadence. Escalation makes sense in three situations: the client has gone completely dark, the invoice is disputed with no resolution path, or the client business appears to have closed or restructured. ### Signs It's Time to Escalate - Client ignored all 5 touchpoints with no response at any stage - Invoice is disputed but the client refuses to engage or negotiate - Client business appears closed, restructured, or in financial distress The escalation ladder follows a clear order: 1. **Final demand letter at +45 days.** A formal letter stating that unpaid balances will be referred to a collection agency. Many clients pay at this stage. 2. **Third-party collection agency at +60 days.** Agencies typically keep 25-50% of recovered amounts. Worth it when the alternative is writing off the balance entirely. 3. **Small claims court for amounts under roughly $10,000** (varies by state). Self-filing costs $30-100. Works well for clear-cut unpaid invoices with written documentation. 4. **Commercial attorney for larger amounts.** Cost is high but necessary for invoices over $10-25K with a client who's unresponsive. Read the full guide on [accounts receivable collections](https://growthy.com/blog/accounts-receivable-collections) if you're already at this stage. ## Frequently Asked Questions ### How many times should I follow up on an unpaid invoice? Five times, over 30 days. Send reminders at 3 days before due, on the due date, at +7, +14, and +30 days. After +30 days with no response, shift to human follow-up or escalation. Over 85% of late invoices resolve within that window when a consistent cadence is in place. ### What's the best subject line for a payment reminder email? Specific subject lines get opened. Include the invoice number, the amount, and the due date: "Invoice #142: $2,400 due June 15." That specificity tells the client exactly what the email is about and removes the "I didn't see it" excuse. ### Can I charge a late fee on an unpaid invoice? Yes, but only if it was in your original contract or engagement letter. You can't add a late fee retroactively. State the rate and timing in your contract: "1.5% per month on balances past 30 days." Reference it in your +14-day reminder so it's not a surprise. ### Will following up hurt the client relationship? Structured, professional reminders don't damage relationships. Erratic or emotional follow-ups do. A consistent cadence signals that you run a real business with clear expectations. Clients who respect the work you've done will respect your invoicing process too. ## Conclusion A 5-touch cadence with copy-paste templates turns invoice follow-up from a recurring stressor into a system. You send fewer awkward messages, spend less time deciding what to write, and get paid faster. Pick your three most overdue invoices right now. Find the template that matches where each one stands. Send it today. *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=payment-reminders-unpaid-invoices) ### [Accounts Receivable Reconciliation: A Step-by-Step Bookkeeper's Guide](https://growthy.com/blog/accounts-receivable-reconciliation): Your AR subledger says $42,000. Your general ledger says $41,450. Close can't happen with a $550 gap. Your AR subledger says $42,000. Your general ledger says $41,450. Close can't happen with a $550 gap. Bookkeepers who work with the [accounts receivable aging report](https://growthy.com/blog/accounts-receivable-aging-report) already have the data they need. This guide shows how to use it to reconcile AR and get the books closed. Accounts receivable reconciliation is one of the core month-end tasks. It's not just about matching numbers. It means every payment ties to an invoice. Every variance has a cause. Your client's cash position must be right. Unreconciled AR hides errors that compound into bigger problems at year-end. The process takes four steps. Miss one and the gap stays open. > **What is accounts receivable reconciliation?** > > Accounts receivable reconciliation ties the AR subledger to the GL control account. The AR subledger lists each open invoice by customer. The GL control account is the summary line on the balance sheet. Both should show the same total. When they don't, you have a variance. Reconciling AR means tracing every variance to its source. Fix each one before close. That source might be a partial payment, an unapplied credit, a timing difference, or a duplicate entry. For most small businesses, this runs monthly. A $50 gap left unresolved can become a $500 audit flag by Q4. ## Key Takeaways - **Subledger and GL must agree:** the AR control account balance should equal the total of all open customer balances in the subledger. Even a $1 gap means something is unresolved. - **Four core steps:** pull the aged subledger, compare to the GL, match payments to invoices, and log every variance before fixing anything. - **Four main variance types:** partial payments, unapplied credit memos, unapplied cash, and duplicate invoices cover 90%+ of AR gaps. - **Growthy auto-matches 85%:** Growthy matches payments to open invoices on first import and flags the remaining 15% for your review. - **File the 4-document packet before close:** aged subledger, GL printout, variance log, and preparer sign-off must all be on file before the trial balance locks. - **Monthly is standard:** aim to complete the rec within 10 business days of period end; high-volume clients reconcile weekly. ## What AR Reconciliation Is (and Why the Subledger Must Tie to the GL) The AR subledger is the detail layer. It shows each customer, each invoice, and each open balance. If Acme Corp owes $1,200 and Bright Hall owes $800, the subledger shows two lines totaling $2,000. The GL control account is the summary. It's one line on the chart of accounts, labeled "Accounts Receivable" or "Trade Receivables." It should show $2,000. These two numbers must agree. That's what a clean AR close looks like. ### Why they drift Most subledger-to-GL gaps come from one of four causes: - A payment gets posted to the GL without being matched in the subledger - An invoice gets voided in the subledger but the GL entry isn't reversed - A manual journal entry adjusts the AR control account without a matching subledger change - Timing differences put a payment in one period and the application in another When you reconcile, you're finding these gaps. Every dollar of unexplained difference is a gap. The books can't close with open gaps. ### Why accurate AR matters Unreconciled AR creates real problems for your clients. **Cash flow accuracy.** If AR is overstated, your client thinks they have more receivables than they do. That shapes decisions on payroll, vendor payments, and draws. **Revenue accuracy.** Duplicate invoices inflate revenue. Unapplied credits understate it. Either way, the P&L is wrong. **Year-end risk.** A year-end review with unreconciled AR means explaining gaps to the CPA. That's extra billable time and a worse client experience. Most of these problems are avoidable if reconciliation happens monthly. The [accounts receivable management hub](https://growthy.com/topics/accounts-receivable-management) covers how AR fits into the full monthly close cycle. ## The AR Reconciliation Process: Step by Step Run these four steps in order at every period-end. ### Step 1. Pull the AR subledger aged report Export the aged receivables report from your bookkeeping system as of the close date. The report should include: - Customer name - Invoice number - Invoice date - Invoice amount - Amount paid to date - Balance remaining - Days outstanding (0–30, 31–60, 61–90, 90+) Date-stamp the export. Don't pull it on the 28th and then close on the 31st. The totals shift and you'll reconcile the wrong numbers. Keep the export. You'll file it with the reconciliation packet at month-end. ### Step 2. Pull the GL control account balance Open the balance sheet or chart of accounts and find the AR control account. Record its ending balance as of the same close date. Now compare the two totals. If the subledger total matches the GL balance, you have a clean starting point. If they don't match, you have a pre-existing variance to trace before doing anything else. Don't skip this check. Fixing today's transactions on top of a pre-existing gap compounds the error. ### Step 3. Match payments to open invoices Work through each payment received during the period. Every payment should tie to a specific invoice or group of invoices in the subledger. Watch for: - Payments sitting in "Undeposited Funds" that haven't been applied - Payments matched to the wrong customer account - Payments posted to a holding or clearing account instead of applied to an invoice For high-volume clients, this step takes most of the time. The [accounts receivable automation](https://growthy.com/blog/accounts-receivable-automation) guide covers ways to cut the manual matching work for high-volume clients. This step also connects to broader payment reconciliation. If your client accepts PayPal, Stripe, and ACH alongside invoices, the [payment reconciliation hub](https://growthy.com/topics/payment-reconciliation) covers the multi-channel case. ### Step 4. Build the variance log Create a written record of every unresolved difference before you start fixing anything. For each variance, capture: 1. Invoice number or entry reference 2. Expected amount 3. Amount currently in the system 4. Dollar difference 5. Root cause or status (mark "under investigation" if you haven't traced it yet) A simple table or spreadsheet works fine. That's what a good accounts receivable reconciliation template gives you: what doesn't tie and how each item was fixed. Don't fix variances before you've logged them all. Fix as you go and you'll lose track. ## Resolving Common AR Variances Most variances trace back to four sources. ### Partial payments A customer owes $1,000 and pays $900. The subledger still shows a $100 open balance. Two options: 1. Leave the $100 open and follow up. The customer still owes it. 2. Issue a $100 credit memo to write it off. Do this only if the balance is agreed, de minimis, or clearly a discount. Don't apply $900 against the full $1,000 invoice and zero it out without a record. That's a write-off. It affects revenue. ### Credit memos not applied A credit memo was issued but never matched to an open invoice. The subledger shows a credit balance on the customer account. Fix: apply the credit memo to the correct invoice in your bookkeeping system. If there's no match, the credit stays as a liability until it's refunded or used on a future invoice. ### Unapplied cash A payment came in and was deposited, but it was never matched to a specific invoice. It sits in a clearing or holding account. The bank balance went up, but the AR subledger still shows the invoice as open. Fix: find the matching invoice and apply the payment. Then clear the holding account entry. Unapplied cash is the top source of AR drift for high-volume clients. Even a few missed matches per month will add up by year-end. ### Duplicate invoices The same invoice was entered twice. The subledger overstates AR by the invoice amount. Fix: void the duplicate. Verify that both the GL and subledger reflect the correct single balance after the void. ## Worked Example: Tracing a $550 Variance Here's a concrete April close scenario. **Starting numbers:** - AR subledger total: $14,750 - GL AR control account: $14,200 - Variance: $550 (subledger is overstated) **Tracing the gap:** You review April transactions. One customer, Apex Solutions, sent a $1,000 payment on April 18. The payment cleared the bank. But in the subledger, only $450 was matched to invoice APX-1044. The remaining $550 is sitting in the "Unapplied Cash" account. **The fix:** 1. Open the Apex Solutions payment entry 2. Apply the $550 to invoice APX-1045, which is open at exactly $550 3. Clear the unapplied cash account entry 4. Rerun the subledger total: $14,200 5. Confirm it matches the GL AR control account: $14,200 Variance resolved. The books can close. Growthy flags this kind of unapplied cash automatically. It matches payments to open invoices and surfaces the ones it can't resolve for review. About 85% of matches clear on the first import. Growthy doesn't send invoices, run dunning sequences, or factor receivables. For those functions, tools like Bill.com or Invoiced sit in front of the bookkeeping layer. ## Documenting the Reconciliation for Month-End Close A reconciliation isn't done when the numbers tie. It's done when you've filed the packet. ### What to file Every month, file four documents: 1. Aged AR subledger report (dated as of the close date) 2. GL AR control account printout (same date) 3. Variance log with notes on how each item was fixed 4. Preparer sign-off and date These four make a complete reconciliation packet. Your client's CPA will ask for it at year-end. Filing it monthly saves hours. ### Building a template If you're creating a standard accounts receivable reconciliation template for a client, the variance log is the core document. It should include columns for: - Open date for each variance - Owner (who's tracing it) - Status (open, resolved, written off) - Resolution date and method A signed variance log also helps if a dispute comes up about how a payment was applied. ### Timing and cadence AR reconciliation should clear before the trial balance locks. For monthly close, finish within the first 10 business days. High-volume clients (100+ invoices per month) often need weekly reconciliation. It's more work each week but far easier than sorting 400 unmatched transactions at month-end. For coordinating AR and AP close timing, see [accounts receivable vs. accounts payable](https://growthy.com/blog/accounts-receivable-vs-accounts-payable). ## Frequently Asked Questions ### How often should you reconcile accounts receivable? Monthly is standard for most small businesses. Clients with 50+ invoices per month or multiple payment channels should reconcile weekly. It keeps month-end cleanup manageable. Do it at minimum before every close. ### What's the difference between the AR subledger and the AR control account? The subledger is the detail: each customer, each invoice, each balance. The control account is the summary: one number on the balance sheet. Both represent the same AR total viewed at different levels. Reconciliation confirms they agree. ### What if the variance is too small to trace? If the gap is under $10 and you can't trace it in 15 minutes, write it off to a general adjustment account. Document the amount and the decision. Don't let small unresolved balances stack up. $10 per month is $120 at year-end. ### Can software automate AR reconciliation? Partially. Bookkeeping software can match payments to invoices and flag discrepancies. Growthy matches incoming payments to open invoices and surfaces items it can't resolve for your review. The judgment calls are still yours: write off the partial, refund the credit, or follow up on aging invoices. For invoicing and dunning workflows, tools like Bill.com or Invoiced handle that layer. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=accounts-receivable-reconciliation) ### [Accounts Receivable Collections: A Process That Gets You Paid Without Burning Clients](https://growthy.com/blog/accounts-receivable-collections): Getting paid should be simple. You did the work. The invoice went out. Now the money needs to move. Getting paid should be simple. You did the work. The invoice went out. Now the money needs to move. But roughly 30% of small businesses carry more than $20,000 in unpaid invoices at any given time. Most of those aren't fraud. They're disorganized clients, cash-flow crunches, and invoices that slipped through the cracks. A solid [accounts receivable management](https://growthy.com/topics/accounts-receivable-management) process fixes that. Not by being aggressive, but by being consistent. The steps below cover how to collect without burning a relationship. > **What is an accounts receivable collections process?** > > It's the set of steps you take to recover unpaid invoices. A real process starts before anything is late. It includes clear payment terms, a scheduled reminder cadence, and defined escalation steps for invoices that go past due. Businesses that send a reminder within 3 days of a due date collect 60% faster than those who wait a month. The goal isn't just to get paid once. It's to build habits that keep receivables current across every client. ## Key Takeaways - **Collections starts before an invoice is late:** the terms you set at the start of a relationship define every conversation that follows - **A structured cadence outperforms ad-hoc follow-up:** reminders at +7, +14, and +30 days get results; a single email does not - **Every escalation message should name specifics:** invoice number, dollar amount, and original due date in every follow-up - **Write-offs are a last resort:** most invoices past 90 days can still be collected with a phone call and a payment plan offer - **Outreach is separate:** the actual outreach is handled by your bookkeeper or a tool like Bill.com ## Set Terms Up Front Collections doesn't start when an invoice is late. It starts on day one. Your engagement letter or statement of work should answer three questions: when is payment due (Net 15, Net 30, etc.), how can the client pay (ACH, card, check), and what happens if they don't (typically a 1.5% monthly late fee after 30 days). Clear terms make follow-up easier. You're not asking a client to do something unexpected. You're reminding them of what they already agreed to. ### What Goes in the Payment Terms At minimum, your terms should include: 1. A specific calendar due date, not just "Net 30" 2. Accepted payment methods 3. Late fee policy (1.5% per month is standard) 4. A short dispute window (5 to 7 days to raise questions about the invoice) Invoices with a specific due date get paid 14 days faster than invoices that say "due upon receipt." That one change alone moves the needle. ### Consider an Upfront Deposit for New Work For project-based work or new client relationships, ask for 25 to 50% upfront. It filters out low-intent clients and cuts your average days-to-collect on the remaining balance by 12 to 18 days. ## The Reminder Cadence Most unpaid invoices aren't intentional. They're buried in someone's inbox or caught in an approval queue. A consistent reminder sequence solves that without any awkwardness. ### Step 1: 3-5 Days Before the Due Date Send a friendly heads-up. Keep it to two sentences. "Your invoice for $X is due on [date]. Here's the payment link." No urgency. No guilt. Just a clean reminder with the details in plain view. ### Step 2: On the Due Date One-line nudge. "Today is the due date for invoice #1234 for $X. Let us know if you have questions." Include the payment link again. ### Step 3: 7 Days Overdue This is the first real follow-up. Put the dollar amount in the subject line: "Invoice #1234, $3,500: 7 Days Past Due." In the body, assume good faith. "If you've already sent payment, ignore this. If you haven't, we'd appreciate hearing from you by [date]." Give them a clear out and a deadline. ### Step 4: 14 Days Overdue Two touches this week: email and a phone call. Every message names the invoice number, the amount, and the original due date. Be direct but professional. At this point, flag the invoice in your [AR aging report](https://growthy.com/blog/accounts-receivable-aging-report). You want it visible in the 1-30 day bucket before it slips into the 30-60 range. ### Step 5: 30 Days Overdue This is your last standard attempt before escalation. Send a clear email with a specific response deadline: "Please remit by [date + 10 days]." Consider a physical letter for invoices over $2,000. Before drafting these messages, check the [payment reminder templates](https://growthy.com/blog/payment-reminders-unpaid-invoices) for the exact language at each stage. ## Escalation Steps If 30 days of follow-up produces no response or broken promises, it's time to escalate. You have four options. **A formal collections letter.** One page that states: the invoice number, the original due date, the amount owed, what you've done to collect, and a final payment deadline. No legal threats needed at this stage. Just documented facts. **A payment plan.** For a long-term client with a temporary cash problem, offer to split the invoice. A $6,000 balance paid over 3 months is better than zero. Put the agreement in writing. **A third-party collections agency.** For invoices over $1,000 that are 60+ days overdue with no response, an agency is worth considering. They typically take 25 to 40% of what they recover. That's often better than writing it off. **Small claims court.** For invoices under $10,000 (limits vary by state), small claims is fast and low-cost. You don't need a lawyer. ### Formal Collections Letter: What to Include Every formal collections letter needs: the exact invoice number, the original due date, the total amount owed, a brief summary of your prior contact attempts, and a new response deadline (10 business days is standard). ### When to Offer a Payment Plan Offer a payment plan when you have a good prior relationship and this looks like a one-time cash crunch. For a client with a pattern of late payments, skip the plan and go to the agency or court route instead. Tools like Bill.com and Invoiced can automate the dunning sequence at the escalation stage. They send scheduled follow-ups, track delivery, and log every touchpoint. ## When to Stop, Reserve, or Write Off At some point, you have to make a call. Most accountants recommend creating an allowance for doubtful accounts when an invoice hits 90 days overdue. You're not writing it off yet. You're acknowledging you might not collect. This reserve shows up as an expense on your P&L. ### Allowance for Doubtful Accounts The reserve method matches the expected loss to the period when the revenue was earned. You estimate a percentage of AR that won't collect (say, 3% of total) and book that as an expense. The direct write-off method skips the estimate and records the loss when you confirm it's uncollectable. Most small businesses on accrual basis use the reserve method. ### Bad Debt Expense At 120 days with no contact and no payment, most small businesses write the invoice off. A $5,000 write-off hits your P&L directly. The IRS allows the deduction, but only when the debt is actually worthless. If you're on cash basis, the rules are different. Talk to your bookkeeper. Before you write anything off, pull your [AR aging report](https://growthy.com/blog/accounts-receivable-aging-report) and review every invoice over 60 days. See [how to write off bad debt](https://growthy.com/blog/bad-debt-write-off) for the exact accounting steps. ## Keeping the Relationship Intact The best collections process is the one clients barely notice. Most late payments aren't malicious. A client is dealing with a cash crunch, a missed approval, or a rough payroll week. Your tone should reflect that assumption. Every follow-up message should: - Name the specific invoice (number, amount, date) - Assume good faith - Give the client an easy path to respond - Stick to facts, not blame "Invoice #1234 for $3,500 due April 1 remains unpaid as of today" is factual and professional. "You still haven't paid us" is not. Clients who go through a collections process and still pay often become long-term relationships — if they felt treated with dignity throughout. One check before you escalate anything: confirm the balance is real. A payment applied to the wrong invoice looks identical to a customer who has not paid. [Payment reconciliation](/topics/payment-reconciliation) covers matching deposits to open invoices, and the [accounts receivable management guide](/topics/accounts-receivable-management) places collections inside the wider cycle. ## Frequently Asked Questions ### How long should I wait before sending a formal collections notice? Don't wait 90 days. If your +7 and +14 day reminders go unanswered, send a formal notice at 30 days with a specific response deadline. The longer you wait, the harder the conversation becomes. ### What should I include in every AR follow-up email? Every message needs: the invoice number, the amount owed, the original due date, a payment link, and a specific deadline to respond. Vague messages get vague results. ### Does going through the collections process hurt the client relationship? It depends on how you handle it. A calm, documented process rarely burns bridges. Threatening or accusatory language does. Assume good faith, stick to facts, and give clients an easy way to respond. ### When should I write off bad debt instead of continuing to collect? Most small businesses write off invoices at 90 to 120 days with no response. Before you do, try one more phone call and offer a payment plan. If that doesn't work, see [how to write off bad debt](https://growthy.com/blog/bad-debt-write-off) for the accounting mechanics. ### Can I automate AR follow-ups? For automated follow-up sequences and dunning, use Bill.com, Invoiced, or Versapay. These tools connect to your books and handle the outreach. ## Conclusion A collections process won't eliminate late payments. But it will cut them. Start with clear terms on your next invoice. Set calendar reminders for the +7 and +14 day follow-ups. When something hits 30 days, escalate early. Consistent, professional follow-up works. *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=accounts-receivable-collections) ### [Accounts Receivable vs Accounts Payable: The Difference That Drives Cash Flow](https://growthy.com/blog/accounts-receivable-vs-accounts-payable): A business has $80,000 in outstanding invoices. It also owes $40,000 to vendors. These two numbers look similar on paper. But they're opposites. One is a current asset. The other is a current liability. A business has $80,000 in outstanding invoices. It also owes $40,000 to vendors. These two numbers look similar on paper. But they're opposites. One is a current asset. The other is a current liability. Accounts receivable (AR) and accounts payable (AP) both show up on your balance sheet. Both affect your cash. But they move in different directions. You can sit on a growing AR balance and still run short when bills come due. That's the trap. Bookkeepers who track AR know what customers owe. Those who track AP know what the business owes. Track both and you can see the cash-conversion cycle as it runs. You'll know what cash is coming in, what's going out, and how many days separate the two. The [accounts receivable management hub](https://growthy.com/topics/accounts-receivable-management) covers the receivables side in full. This article explains how both sides connect and why the gap between them matters more than either number alone. > **What's the difference between accounts receivable and accounts payable?** > > Accounts receivable (AR) is money customers owe your business for goods or services already delivered. It's a current asset. AR typically takes 30 to 60 days to collect, measured by days sales outstanding (DSO). > > Accounts payable (AP) is money your business owes vendors for goods or services it's already received. It's a current liability. Most AP terms run 30 to 60 days. > > AR is cash coming in. AP is cash going out. Both sit on the balance sheet. Both affect your cash timing. The spread between them determines how many days of operations you're funding from your own pocket. ## Key Takeaways - **AR is a current asset:** It's money customers owe you, usually collected within 30 to 60 days. - **AP is a current liability:** It's money you owe vendors, typically due in 30 to 60 days. - **Both go on the balance sheet:** AR appears in current assets, AP in current liabilities. - **The cash-conversion cycle shows the gap:** DSO minus DPO is the number of days you're funding operations out of pocket. - **Managing one without the other creates blind spots:** Aging AR means lost revenue. Surprise AP means a cash crunch. - **Growthy is 85% accurate on first import:** You review the rest. ## What Is Accounts Receivable? AR is the money customers owe your business after you've delivered a product or service. Here's how it works. A consulting firm finishes a project and sends a $12,000 invoice on net-30 terms. Until that customer pays, $12,000 sits in AR. The revenue is already on the income statement. The cash hasn't arrived yet. AR lives in current assets on the balance sheet. It's expected to convert to cash within one year. But how fast that happens depends on your customers, your terms, and how well you follow up. That's why AR management is an active job, not a passive one. ### AR on the Balance Sheet Days sales outstanding (DSO) tells you how long it takes to collect. The formula: (AR balance / annual revenue) × 365. A business with $500,000 in annual revenue and a 45-day DSO will carry about $61,600 in AR at any given time. That's roughly $62,000 of earned revenue sitting as a receivable instead of cash. If that same business tightens to a 30-day DSO, the AR balance drops to about $41,000. That's $20,000 of extra cash freed up from the same revenue base. For more on measuring collection speed, see the [accounts receivable turnover ratio](https://growthy.com/blog/accounts-receivable-turnover-ratio) article. ### What Gets Tracked in AR Bookkeepers sort AR into aging buckets: current, 1 to 30 days past due, 31 to 60, 61 to 90, and 90 or more days. Each bucket signals a different level of risk. An invoice at 90-plus days has only a 40 to 50% chance of full recovery. The longer a receivable ages, the more likely you'll take a partial loss. Many businesses write off any invoice past 120 days if there's been no response. Reconciliation is the other core task. You match outstanding invoices against bank deposits to confirm what landed and what didn't. Without that step, payments fall through the cracks and the AR balance overstates what you'll actually collect. Growthy is 85% accurate on first import. You review the rest. Growthy doesn't send invoices or run dunning sequences. For invoice delivery and collections, tools like Bill.com or Invoiced handle that workflow. See the [accounts receivable reconciliation](https://growthy.com/blog/accounts-receivable-reconciliation) article for a full walkthrough. For the account on its own, including the five-stage lifecycle from invoice to cleared balance, see [accounts receivable](/blog/accounts-receivable). The full operating cycle around it is mapped in the [accounts receivable management guide](/topics/accounts-receivable-management). ## What Is Accounts Payable? AP is the money your business owes vendors after they've delivered goods or services. An agency receives a $4,200 software invoice on net-30. Until the agency pays, that $4,200 sits in AP. The expense is already on the income statement. The cash hasn't left yet. AP lives in current liabilities. Most vendor terms run net-15, net-30, or net-60. Paying within those terms keeps vendor relationships healthy. Some vendors offer a 2/10 net-30 discount: 2% off if you pay within 10 days. That's roughly a 36% annualized return on early payment, which is worth taking when cash is available. ### AP on the Balance Sheet Days payable outstanding (DPO) measures how long your business takes to pay vendors: (AP balance / cost of goods sold) × 365. A higher DPO means you hold cash longer before paying bills. Within vendor terms, that's a legitimate cash strategy. Stretching payment to net-45 when you agreed to net-30 is a different story. It might preserve cash short-term, but vendors notice. Late payers get lower priority, shorter credit lines, and fewer favorable terms over time. The sweet spot is paying on the last day of the agreed term, not late and not too early unless a discount makes it worth it. For the full payables workflow, see the [AP reconciliation hub](https://growthy.com/topics/ap-reconciliation). ### What Gets Tracked in AP Bookkeepers track vendor aging, payment timing, and expense categorization. AP reconciliation matches vendor statements against what's recorded in the general ledger. It's the payables counterpart to AR reconciliation. Both tasks together close the loop on your cash picture. ## AR vs AP: A Side-by-Side Comparison These two accounts often appear together. They work in opposite directions. | Feature | Accounts Receivable (AR) | Accounts Payable (AP) | | --- | --- | --- | | Balance sheet type | Current asset | Current liability | | Cash direction | Money coming in | Money going out | | Who owes whom | Your customer owes you | You owe your vendor | | Typical timing | 30 to 90 days (DSO) | 30 to 60 days (payment terms) | | If ignored | Cash shortfall from uncollected invoices | Late fees, damaged vendor relationships | | Income statement | Revenue already recognized | Expense already recognized | ### Reading the Difference in Practice A business with $90,000 in AR and $30,000 in AP looks like it has a $60,000 net advantage. But timing decides everything. If the AR won't collect for another 25 days and the AP is due in 10, there's a $30,000 cash gap in the next two weeks. The balance sheet looks fine. The cash flow doesn't. This is why bookkeepers look at both accounts together, not in isolation. ## The Cash-Conversion Cycle: Where AR and AP Meet The cash-conversion cycle (CCC) measures the days between paying for inputs and collecting from customers. For service businesses, the formula is: **CCC = DSO minus DPO** For product businesses, you add days inventory outstanding (DIO). For pure service businesses, DIO is zero, so CCC equals DSO minus DPO. Say a business has a DSO of 55 days and a DPO of 30 days. The CCC is 25 days. That means the business funds 25 days of operations from its own cash before AR collections arrive. If that business has $30,000 in monthly operating costs, it's carrying roughly $25,000 in self-funded operations at any given time. ### Why the Gap Is What You're Actually Managing Here's a concrete example. You have $120,000 in AR. Vendor bills totaling $35,000 are due in 15 days. Your AR won't land for another 25 days. You need $35,000 now, but your largest cash inflow is still 10 days away. That 10-day gap has to come from reserves or a credit line. Two moves compress the CCC. Tighten DSO by sending invoices faster and following up earlier. Extend DPO by negotiating better terms. Either reduces how many days you're self-funding. Both together can shorten the CCC by 15 to 20 days, which for a $500,000 revenue business frees up real cash. A bookkeeper who tracks AR and AP together catches this situation early. One who only checks the bank balance misses it until it's urgent. ## The Risk of Managing One and Not the Other Most bookkeeping blind spots come from focusing on one side of the ledger. **Scenario 1: Tracking AR, ignoring AP.** You see $80,000 in AR. You think cash is fine. But $40,000 in vendor bills is due next week and isn't tracked anywhere. A surprise cash drain hits when you least expect it. You may have to delay payroll or pull from a credit line you didn't plan to touch. **Scenario 2: Tracking AP, ignoring AR.** Bills get paid on time. But invoices are aging without follow-up. An invoice at 61 to 90 days already has a lower recovery rate. At 90-plus days, you're down to 40 to 50% odds of full payment. If you have five customers at that stage on $20,000 invoices each, you're looking at $50,000 to $100,000 of at-risk revenue that doesn't show up in your AP report. The double-entry system is designed to catch both. AR and AP reconciliation together give you a complete picture: what's coming in, what's going out, and when each happens. A bookkeeper who tracks both knows the current cash balance and what cash will look like in 30 and 60 days. That's the difference between reactive and proactive cash management. ## Frequently Asked Questions ### Is accounts receivable an asset or a liability? AR is a current asset. It represents a legal right to receive payment from a customer. A right to a future economic benefit meets the accounting definition of an asset. AR stays in current assets until it's collected, partially collected, or written off as bad debt. ### Is accounts payable an asset or a liability? AP is a current liability. It represents an obligation to pay a vendor for goods or services already received. That obligation is a probable future outflow, which is the accounting definition of a liability. AP stays in current liabilities until the payment clears the bank. ### What's the difference between AR reconciliation and AP reconciliation? AR reconciliation matches outstanding invoices against bank deposits. You're confirming which invoices converted to cash and which haven't. AP reconciliation matches vendor statements against bills recorded in the general ledger. Both are standard month-end tasks. See the [accounts receivable reconciliation](https://growthy.com/blog/accounts-receivable-reconciliation) article for the AR side in detail. ### How does accounts receivable affect cash flow? AR is recognized revenue, but it's not cash yet. Until a customer pays, you have a receivable, not a deposit. A growing AR balance with a flat bank account means slow collections. DSO is the number to watch. When DSO climbs, a cash-flow lag follows in the next one to two billing cycles. ### Can bookkeeping software handle both AR and AP? Most bookkeeping tools, including QuickBooks, Xero, and Growthy, track ledger entries for both. Growthy is 85% accurate on first import. It doesn't send invoices or factor receivables. For invoicing and dunning, Bill.com and Invoiced are common options. For AP, the same tools handle bill entry, aging, and expense categorization. ### What happens when AR is higher than AP? A higher AR than AP means more money is owed to you than you owe to others. That looks positive. But it only matters when the AR actually collects. If your AR is aging past 60 or 90 days, the balance is a less reliable indicator of available cash than it appears. Net AR position tells you the direction of cash flow. DSO and AP aging tell you the timing. ## Conclusion AR and AP aren't just accounting labels. They're the two cash flows your bookkeeper tracks to tell you whether you're building or burning cash. The spread between DSO and DPO is your cash-conversion cycle. Know your CCC and you know how many days you're funding operations from reserves. Reduce it and you reduce financial risk without changing revenue or costs. Growthy is 85% accurate on first import. You review the rest. For invoicing and collections, Bill.com and Invoiced handle those workflows. *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=accounts-receivable-vs-accounts-payable) ### [Accounts Receivable Automation: What to Automate (and What Not To)](https://growthy.com/blog/accounts-receivable-automation): Most people think accounts receivable automation means faster collections. It doesn't. Most AR tools on the market do one thing: send invoice reminders on a schedule. Most people think accounts receivable automation means faster collections. It doesn't. Most AR tools on the market do one thing: send invoice reminders on a schedule. That matters. The accounts receivable workflow has four separate layers. Each one is different. If you buy software without knowing which layer you need, you'll pay for something that won't solve your problem. This guide walks through all four layers, explains what tools can handle on their own, and shows you the right software for each job. For the full context on managing AR, see the [accounts receivable management hub](https://growthy.com/topics/accounts-receivable-management). > **What does accounts receivable automation actually do?** > > AR automation is software that handles part of the order-to-cash cycle without manual entry. Most tools cover one layer: invoicing and reminders, receipt coding and capture, recon, or reporting. Very few do more than one well. For most small firms, end-to-end AR automation doesn't exist. You'll use 2-3 tools to cover the full cycle. Expect 60-80% of routine AR tasks to run without you once tools are live. Judgment calls (disputed invoices, partial payments, write-offs) still need a person every time. ## Key Takeaways - **Most "AR automation" is just reminders:** scheduling follow-up emails, not collecting cash faster - **Four distinct AR layers exist,** each working differently: invoicing, receipt coding, recon, and reporting - **85% of receipt coding** runs on its own on first import with a bookkeeping tool; you check the rest - **Growthy handles the bookkeeping layer** (coding, capturing, and matching AR activity): it does NOT send invoices, run dunning, or factor receivables - **Bill.com, Invoiced, and Versapay** handle invoicing and collections: use them alongside clean books, not instead of them - **For multi-client bookkeepers,** automate the coding and recon layers first for the most hours saved with the least risk ## The 4 Layers of AR Work "AR automation" covers four different jobs. Each has its own tools and its own ceiling. Mixing them up is where most buyers go wrong. ### Layer 1: Invoicing and Sending This is what most "AR automation" software sells. You set up an invoice template, set payment terms, and schedule reminder emails at net-30, net-37, and net-45. The tool fills the form and sends the email on a timer. The cash doesn't arrive faster because of the software. It arrives because someone got a reminder and chose to pay. Tools in this layer include QBO invoicing, FreshBooks, Bill.com, and HoneyBook. They're useful. But "automation" is a stretch for what's really just a mail merge on a schedule. ### Layer 2: Receipt Coding and Capture When a client pays, someone has to record it, match it to the open invoice, and code the income. That's the bookkeeping layer. The manual loop: pull the bank feed, find the deposit, match it to the right invoice, code the line. Repeat for every client, every month. This is where bookkeeping tools operate. A tool reads the bank feed, applies pattern rules to code the entry, and flags what it can't place. On first import, a well-set-up tool gets about 85% right. You check the rest. Accuracy here matters. A wrong code distorts the P&L. It creates problems at close and at tax time. ### Layer 3: Reconciliation Recon means matching your coded AR against the bank and the aging report. It confirms you didn't miss anything, enter a duplicate, or leave a ghost invoice open. This layer doesn't automate fully on its own. But it moves much faster when Layer 2 is clean. A clean bank feed means fewer exceptions to track down at close. For a detailed look at the recon workflow, see the guide to [accounts receivable reconciliation](https://growthy.com/blog/accounts-receivable-reconciliation). ### Layer 4: Reporting and Aging The aging report is the main output of this layer. It shows what's owed, by whom, and for how long. Every accounting tool has a report button. Running the report is one click. The problem is the report only tells you something useful when Layers 2 and 3 are clean. A report built on two weeks of missed entries isn't an aging report. It's a guess. For a breakdown of how to read and act on aging data, see the [accounts receivable aging report guide](https://growthy.com/blog/accounts-receivable-aging-report). ## What Automates Well (and What Doesn't) Some AR tasks run on their own reliably. Others need judgment. Here's where the line is. ### What Automates Well **Reminder scheduling.** Fixed intervals, standard terms, no edge cases. Set the rules once. The tool sends the emails. **Invoice generation.** If you have a clean source of record, the tool fills the form. Works until a client has any complexity. **Receipt matching.** When a payment amount matches exactly one open invoice, a tool can close it. One-to-one matching is reliable. Anything else needs a person. **Bank feed pull.** Pulling data from the bank is fully automatic. Deciding what to do with the data is not. **Aging report output.** Once the data is clean, running the report takes one click. ### What Still Needs a Person Partial payments. When a client sends $3,200 on a $4,000 invoice, you need to decide: leave it open, apply a credit, split it, or write off the rest. No tool knows which is right for your situation. Disputed invoices. A client pushes back on a charge. That's a call, not a rule. Credits across multiple invoices. Common in long-term client work. The patterns aren't clean enough for a tool to sort on its own. Multi-entity payments. One check covers three projects. You need to know how to split it. Wrong reference numbers. The bank description doesn't match any open invoice. You have to find it. Write-offs. A call on a bad debt. ### The Honest Benchmark Expect 60-80% of routine AR tasks to run on their own with the right tools. The other 20-40% concentrates at the exception layer. That's normal. The exception review is still the job. Don't let "fully automated" marketing make you feel like you're doing it wrong when you still check 15 entries a week. That review is where your value is. ## The Anti-Hype Reality Check Most "AR automation" tools do one thing. It helps to name it clearly. ### Most "AR Automation" Is a Reminder Scheduler Here's the typical workflow: set invoice terms, trigger an email at net-30, trigger a follow-up at net-37, trigger an escalation at net-45. That's a scheduling rule with a mail merge. It's useful. But calling it automation overstates what's happening. The cash doesn't arrive faster because of the tool. It arrives because someone got an email and chose to pay. ### What "Smart Collections" Claims Usually Mean Some tools say they personalize reminder timing based on a client's payment history. For a firm with thousands of customers, that can help. For a small firm with under 100 clients, the data is too thin. A fixed-interval schedule with clear language works just as well. You can say this directly without dismissing tools that offer it. ### The Real Win Is Clean Data The biggest gain from AR tools isn't the reminder engine. It's having accurate, clean AR data you can act on. An aging report is useless if your coded entries are two weeks behind. A dunning tool is less useful if you don't know which invoices are open versus already paid but not matched. Think about it this way. A reminder tool tells a client they owe $5,000. But if your books show $4,500 (because a $500 payment wasn't matched yet), the email amount is wrong. You look disorganized. The client pushes back. Clean books fix that before it starts. The data is right, the report is right, and the reminder is right. Clean books come first. Everything else follows. ## What Growthy Does (and Does Not Do) Growthy handles Layers 2 and 3: receipt coding, capture, and recon. ### What Growthy Does When a client pays, Growthy reads the bank feed and applies pattern rules to code the entry. For a typical client, it gets about 85% right on first import. The rest goes to a review queue where you make the call. Over time, Growthy learns your clients' books. Accuracy improves as the patterns get clearer. The output is a clean, matched ledger. That's the base for accurate reporting, faster closes, and reliable data. ### What Growthy Does Not Do Growthy does not send invoices. It does not run dunning or payment reminders. It does not factor receivables or advance cash. Growthy is a bookkeeping tool. If you need to chase late payers, you need a different product. Don't buy it looking for collections features that aren't there. ## Third-Party Tools for Invoicing and Collections These tools cover the layers that bookkeeping software doesn't. ### Bill.com Bill.com handles invoicing, payment approvals, and collection flows. It links to QBO and manages B2B payment routing. It works best for firms with formal approval chains: multiple teams, multiple entities, or high invoice volume. Pricing scales with volume. One key note: Bill.com is a workflow tool, not a bookkeeping tool. The GL entry still happens somewhere else. If your books are messy, Bill.com doesn't fix that. ### Invoiced Invoiced is built for collections. It runs dunning flows, manages payment portals, and handles chargebacks. It's made for firms with monthly retainers or subscription billing. Pricing typically runs $500-$1,000 per month for larger firms. It's likely more than most firms under $3M in revenue need. ### Versapay Versapay is a shared AR portal. Clients and vendors use it to settle disputes and confirm payments. It's designed for high-volume enterprise work. If you're under $10M in revenue, you probably don't need it yet. ### The Pairing That Works A clean ledger (bookkeeping tool) plus an invoicing and reminder tool covers most of the AR cycle. The invoicing tool creates the paper trail. The bookkeeping tool records what happened. They're different jobs that work well together. For more on handling late payments, see [how to send payment reminders for unpaid invoices](https://growthy.com/blog/payment-reminders-unpaid-invoices). ## How to Choose What to Automate First If you manage AR across many clients, automate in this order. ### Start With the Coding Layer Receipt coding (Layer 2) saves the most hours per client per month with the least risk. A missed reminder affects a client's cash flow. A wrong code creates a bookkeeping problem for you. Automate the internal work first. It scales across every client. ### Add Recon Second Once Layer 2 is clean, recon moves faster. There are fewer exceptions. The month-end check becomes quick instead of a long search. A clean Layer 2 is a must-have first step. Trying to speed up recon on messy books creates more work, not less. ### Automate Reminders Last Reminder rules are fast to set up for clients you know well. For a multi-client book, the risk is bad rules touching the wrong clients. Set reminder rules per client first. Test for one billing cycle. Then automate once the rules are stable. For a broader look at automating your bookkeeping practice, see the [bookkeeping automation hub](https://growthy.com/topics/bookkeeping-automation). ## FAQ ### What is AR automation software? AR automation software handles part of the order-to-cash cycle without manual entry for each item. Most tools cover one layer: invoicing, receipt coding, recon, or reporting. No single tool covers all four well. ### Does AR automation replace a bookkeeper? No. It cuts manual data entry but can't handle disputed invoices, partial payments, write-offs, or judgment calls. Bookkeepers shift from entering data to checking exceptions. That review work is still the core of the job. ### How accurate is automated receipt coding? Typically 80-90% on first import, improving as the tool learns a client's books. A well-set-up tool like Growthy hits about 85% on first import, with a review queue for the rest. Accuracy depends on how clear and consistent a client's bank descriptions are. ### What's the difference between AR automation and dunning software? AR automation covers the bookkeeping side: coding, capturing, and matching what clients paid. Dunning software covers the collections side: reminding, escalating, and following up on what clients haven't paid. They work on different parts of the order-to-cash cycle. ### Can small businesses use AR automation? Yes, especially for the coding and recon layer. Invoice reminder tools are also useful once you have more than 20-30 active clients. Below that, manual reminders take less time than building and testing the rules. ### How do I know which AR layer to automate first? Start with whatever takes the most time right now. For most bookkeepers who want to automate accounts receivable work, that's receipt coding and recon (Layer 2 and Layer 3). These are internal tasks. They don't touch the client. You can test and fix them without any client impact. Invoice reminders (Layer 1) affect the client directly. Get your internal work clean first. Then set up reminders with careful rules per client. ## Conclusion Accounts receivable automation isn't one thing. It's four layers, and each one works differently. Most "AR automation" tools are reminder schedulers. That's useful. But it's not the same as bookkeeping automation or collections. Don't buy software for one layer expecting it to cover the others. Start with clean books. Automate coding and recon first. Add invoicing and dunning tools once the data base is solid. That order matters more than which specific tools you pick. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=accounts-receivable-automation) ### [Bad Debt Write-Off: When and How to Write Off Uncollectible Receivables](https://growthy.com/blog/bad-debt-write-off): You sent the invoice 6 months ago. You've followed up twice. You've called once. At some point, you stop treating that $2,400 as money you'll collect. You sent the invoice 6 months ago. You've followed up twice. You've called once. No response. At some point, you stop treating that $2,400 as money you'll collect. Good [accounts receivable management](https://growthy.com/topics/accounts-receivable-management) means knowing when a receivable is gone for good. It also means recording that correctly. Done right, a write-off is a clean, one-entry process. Done wrong, it distorts your balance sheet. This article covers both write-off methods. You'll get illustrative journal entries for each. There's a GAAP note for accrual books. And a high-level tax note — your CPA handles the return. > **What is a bad debt write-off?** > > A bad debt write-off removes an uncollectible AR balance from your books. You stop treating it as an asset. You record it as an expense. Two methods exist. The direct write-off method removes the AR when you confirm it won't be paid. The allowance method estimates bad debt each period and sets aside a contra-asset reserve. Most accrual-basis businesses use the allowance method for GAAP. Common trigger: an invoice 90 to 180 days past due. You've made at least 3 collection attempts. No response. ## Key Takeaways - **Two write-off methods** - direct write-off and allowance. Accrual books use the allowance method for GAAP. Cash-basis books often use direct write-off. - **90 to 180 days past due** - the typical threshold for calling an invoice uncollectible. You need documented collection attempts too. - **Books and taxes can differ** - the allowance method in your books doesn't set your tax deduction. Your CPA decides that. - **Dollar figures in this article are illustrative** - the $2,400 example is for illustration only. Your amounts will differ. - **Growthy categorizes write-offs.** It doesn't send invoices or collect on your behalf. ## What Is Bad Debt and When Is a Receivable Uncollectible Bad debt is money a customer owes you that you've given up on. It's not a slow-paying client who's 30 days late. It's a receivable you've pursued and believe you'll never collect. There's no universal rule for when an invoice crosses that line. Most businesses treat a receivable as bad debt after 90 to 180 days past due. Collection efforts have to be stalled too. Some industries set shorter or longer norms. Your CPA and industry data can help you set a consistent policy. ### Signs a Receivable Has Gone Bad Common signs that a receivable is no longer collectible: - The invoice is 90 to 180 days past due. No payment. No payment plan. - You've sent at least 3 follow-ups: email, phone, and a written demand. - The customer filed for bankruptcy or closed their business. - The customer disputed the invoice. You've decided not to pursue it. Take the $2,400 example used throughout this article. You did work for a landscaping client. They closed their business 5 months ago. You've called and emailed. Nothing. That's bad debt. Your [AR aging report](https://growthy.com/blog/accounts-receivable-aging-report) will show it in the 120-plus-day bucket. Once you confirm it's uncollectible, two methods exist to remove it from your books. ## Direct Write-Off vs. Allowance Method Both methods handle bad debt. They differ mainly in timing and GAAP compliance. ### Direct Write-Off Method The direct write-off method is simple. You confirm a receivable is uncollectible. You remove it from AR. You record it as bad debt expense. All in the period you decide it's bad, not when you earned the revenue. This method is common for: - Cash-basis businesses - Smaller companies with few receivables - Tax return treatment for many small businesses The downside: a timing mismatch exists. You recorded $2,400 of revenue last quarter. You write it off this quarter. Income looks too high in Q3 and too low in Q4. GAAP doesn't permit this for accrual books. It breaks the matching principle. That said, the direct write-off method is often fine for tax purposes. Many small businesses use it on their tax return regardless of what their books show. Keep this in mind when you talk to your CPA about tax filing. ### Allowance Method The allowance method estimates bad debt in the same period you earn the revenue. You set up a reserve called "allowance for doubtful accounts." This is a contra-asset. It offsets gross AR on your balance sheet. At period-end, you estimate what percent of your AR won't be collected. One common approach: apply your historical bad debt rate to open AR. Say 5% of your $48,000 in AR has historically gone uncollected. Your estimate: $2,400. This method is required for accrual-basis businesses under GAAP. It matches bad debt expense to the revenue period. How active your [collections process](https://growthy.com/blog/accounts-receivable-collections) is affects this estimate directly. ## Journal Entries for Each Method The entries below use the $2,400 illustrative example. These are for illustration only. Your CPA confirms the correct entries for your situation. ### Direct Write-Off Entry (ILLUSTRATIVE EXAMPLE) When you determine the $2,400 invoice will not be collected: | Account | Debit | Credit | | --- | --- | --- | | Bad Debt Expense | $2,400 | | | Accounts Receivable | | $2,400 | If the client later pays $800, record two entries. First, restore the AR and reverse the expense: | Account | Debit | Credit | | --- | --- | --- | | Accounts Receivable | $800 | | | Bad Debt Expense | | $800 | Then record the cash receipt: | Account | Debit | Credit | | --- | --- | --- | | Cash | $800 | | | Accounts Receivable | | $800 | ### Allowance Method Entries (ILLUSTRATIVE EXAMPLE) At period-end, estimate 5% of $48,000 in AR is uncollectible. That's $2,400: | Account | Debit | Credit | | --- | --- | --- | | Bad Debt Expense | $2,400 | | | Allowance for Doubtful Accounts | | $2,400 | Later, when you confirm a specific invoice won't be paid, write it off against the allowance: | Account | Debit | Credit | | --- | --- | --- | | Allowance for Doubtful Accounts | $2,400 | | | Accounts Receivable | | $2,400 | This entry doesn't hit the income statement. The expense was recognized when you made the estimate. That timing difference is why the allowance method is GAAP-compliant. ## The GAAP Note: Why Accrual Books Use the Allowance Method Two principles drive the allowance requirement for accrual-basis companies. **The matching principle.** Record expenses in the same period as the related revenue. You earned $2,400 in Q3. Estimate the bad debt in Q3. Don't wait until Q4 when you confirm the write-off. **The conservatism principle.** When you're unsure, recognize losses early. Estimating bad debt at period-end is the conservative move. GAAP prefers it. The allowance for doubtful accounts is a contra-asset. On your balance sheet, it reduces gross AR down to net realizable value. That's what you expect to actually collect. Investors, lenders, and your CPA see a more accurate number than raw gross AR. If you're a small cash-basis business, you may not need the allowance method in your books. But accrual businesses must use it for GAAP. ## The Tax Angle Books and taxes can diverge here. How you treat bad debt in your books and how you report it on your return are two separate things. Many small businesses use direct write-off on their tax return. Their books may use the allowance method. The two don't have to match. The IRS has its own rules for when a bad debt deduction is allowable. Some service-based businesses may qualify for the non-accrual-experience method. That's an alternative approach at the tax level. One line is enough on that topic here. Don't assume your book treatment sets your tax deduction. It doesn't. Your CPA reviews your facts and decides the correct tax-return position. A common scenario: your books use the allowance method for GAAP. Your tax return uses direct write-off. Both can be correct at the same time. They serve different goals. Your books show an accurate financial picture. Your tax return follows IRS rules for deductibility. Growthy is bookkeeping software, not a tax product. It categorizes your write-offs. It doesn't file your return or calculate your deduction. ## How Growthy Keeps Your Write-Off Trail Clean When you mark a transaction as bad debt in Growthy, it stays traceable in the categorization audit history. Growthy categorizes about 85% of transactions on first import. You review the rest. What Growthy does: keeps write-offs categorized, with an audit history of each categorization. What Growthy doesn't do: send invoices, run dunning sequences, or factor receivables. For those tasks, Bill.com, Invoiced, or Versapay are built for it. Clean, categorized write-offs make your CPA's job simpler. They make audits easier too. ## Frequently Asked Questions ### Can you write off bad debt if you're on cash basis? On cash basis, you record income when you receive payment. If a client never pays, you never recognized that income. So there's generally no bad debt expense to deduct in the traditional sense. The exact treatment depends on your facts. Talk to your CPA. ### What's the difference between bad debt expense and allowance for doubtful accounts? Bad debt expense is an income statement item. It reduces net income in the period you recognize it. The allowance for doubtful accounts is a balance sheet item. It's a contra-asset that offsets gross AR. It shows what you actually expect to collect. ### How old does an invoice have to be before I can write it off? There's no universal rule. Most businesses act after 90 to 180 days past due with documented collection attempts. Your industry, customer type, and tax rules all affect the answer. Ask your CPA what's supportable. ### Does writing off bad debt reduce my revenue? No. Revenue was recorded when you sent the invoice. The write-off removes the AR and records an expense. Under the allowance method, it draws down the reserve. It doesn't create a new income hit. Under direct write-off, the expense hits in the period of the write-off. ### Can I recover a written-off receivable? Yes. If a client pays after you've written it off, reverse the write-off and record the payment. The journal entries for both methods are in the section above. ### What records should I keep? Keep the original invoice, your collection attempt log (dates, methods, responses), and the decision to write it off. For the tax return, you'll need to show the debt was genuinely uncollectible. Your CPA tells you what's required for your return. ## Conclusion Bad debt happens. The $2,400 invoice that never gets paid, the client who goes silent, the customer who files for bankruptcy. The method you choose matters for your books and your reporting. Your CPA handles the return side. Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. [Get started with Growthy](/signup?utm_content=bad-debt-write-off) and keep your write-off categorizations ready for review. ### [Accounts Receivable Aging Report: How to Read and Use It](https://growthy.com/blog/accounts-receivable-aging-report): You sent 20 invoices last month. Revenue looks solid on paper. But cash is thin, and you're not sure why. The answer is probably sitting in your receivables. You sent 20 invoices last month. Revenue looks solid on paper. But cash is thin, and you're not sure why. The answer is probably sitting in your receivables. The tool that shows you exactly where the money is stuck is the accounts receivable aging report. This guide covers what the report contains, how to read each bucket, how to build one, and what to do with it. Whether you run a services business or manage books for clients, the AR aging report is the one snapshot that answers: "Who owes me money, and how long have they had it?" It's part of a broader [accounts receivable management](https://growthy.com/topics/accounts-receivable-management) workflow. But on its own, it's the fastest way to go from "I think we have a collections problem" to "here are the specific invoices and what each one needs." --- > **What is an accounts receivable aging report?** > > An accounts receivable aging report lists every open invoice you're owed, grouped by how long it's been outstanding. Standard buckets: Current (not yet due), 1-30 days past due, 31-60 days, 61-90 days, and 90+ days. The dollar total in each bucket shows how much of your AR is healthy, at risk, or close to lost. A business with $80,000 in open AR wants most of that sitting in Current, not in the 90+ column. ## Key Takeaways - **An AR aging report sorts every open invoice into five time buckets:** Current, 1-30, 31-60, 61-90, and 90+ days past due. - **The 90+ bucket is your bad-debt signal:** when it exceeds 15-20% of total AR, you need to set a reserve and escalate. - **Collection probability drops fast past 60 days:** that's when a polite email stops working and a phone call is required. - **The report is only as accurate as the ledger underneath it:** unapplied payments and duplicate invoices create phantom balances across every bucket. - **Run it weekly, not monthly:** cash flow surprises build in the 31-60 column over weeks before they become a crisis. - **Software or spreadsheet, the math is simple:** days outstanding equals today's date minus invoice date; sort by threshold, sum by bucket. ## What Is an AR Aging Report? An AR aging report is a real-time snapshot of every open invoice in your books, sorted by age. It's not a P&L. It's not a balance sheet. It answers one question: which customers owe you money, and how overdue are they? You can pull it in 60 seconds from most accounting software. It updates every time you record a payment or issue an invoice. Most business owners and bookkeepers treat it as their AR dashboard, the first view they pull before chasing receivables, approving new orders on credit, or estimating next week's cash flow. ### Why Every Business With Net Terms Needs One If you extend credit (Net 30, Net 60, or any custom terms), you have accounts receivable. And if you have AR, you need to track it by age. Without the aging report, you're working from a single total. That number tells you what's owed but nothing about whether any of it is actually collectible. It could include $12,000 that's been unpaid for three months and has a 30% chance of never coming in. ### Where It Lives in Your Books The aging report pulls from your AR subledger, not the general ledger. The GL shows a single "Accounts Receivable" line: one number. The AR aging breaks it down invoice by invoice: customer name, invoice date, invoice amount, and days outstanding. Every open balance appears. Every customer is listed. That's the difference between knowing your [accounts receivable turnover ratio](https://growthy.com/blog/accounts-receivable-turnover-ratio) (how fast you collect on average) and knowing which specific invoices are slowing it down. ## The Aging Buckets: What Each One Signals Every AR aging report uses the same five buckets. Here's what each one means. ### Current (Not Yet Due) These invoices are out but not overdue yet. Payment isn't late. The due date hasn't arrived. This is healthy. If a customer is on Net 30 terms, an invoice issued today sits in Current for 30 days. No action needed. This bucket should hold the largest share of your AR. ### 1-30 Days Past Due The due date passed but the invoice is recent. Most cases in this bucket are administrative: wrong billing contact, invoice went to spam, their AP team is running behind. Collection probability is still high. A polite reminder (email or a short phone call) resolves most of these. ### 31-60 Days Past Due This bucket needs direct attention. The customer has seen the invoice and hasn't paid. That's a choice, not an oversight. Common reasons: cash flow issue on their end, a dispute they haven't surfaced, or an internal approval that stalled. Don't send another email. Call them. Get a response on the specific invoice. ### 61-90 Days Past Due Serious. Past 60 days, collection probability drops meaningfully. This is where bad debt starts to form. An invoice here needs escalation, not just a follow-up from the AR person. Involve a principal or account manager. If the amount is significant, consider a payment plan conversation to recover something rather than waiting for all of it. For a full process on what to do here, see the guide on [accounts receivable collections](https://growthy.com/blog/accounts-receivable-collections). ### 90+ Days Past Due High risk. The longer an invoice sits in this bucket, the less likely you are to collect it in full. A growing 90+ balance is the one number to watch most closely on your aging report. It's also the primary input for setting a bad-debt reserve. Don't let it build without action. See [bad debt write-off](https://growthy.com/blog/bad-debt-write-off) for how to handle these when collection fails. ## How to Pull and Build the Report Three ways to get your AR aging report. ### From Accounting Software In QuickBooks Online, go to Reports and search "Accounts Receivable Aging Detail." In Xero, it's Reports > Aged Receivables. Set the aging date (today or last day of the month), pick bucket intervals (standard is 30 days), and run. The software calculates days outstanding for every open invoice automatically. This is the fastest path. ### From a Manual Export Export your AR subledger as a CSV. Add a column for days past due: today's date minus the invoice due date, not the invoice date. Group by customer and sort into the five buckets on that number (not yet due = Current, then 1-30, 31-60, 61-90, 91+). Sum each bucket. This is exactly what the software does. The math is straightforward. ### Why Data Quality Is the Real Variable The report is only useful if the data underneath it is accurate. Unapplied payments (cash received but not matched to an open invoice) create phantom balances. Duplicate invoices inflate totals. Miscategorized transactions put things in the wrong bucket. Garbage in, garbage aging. A clean, reconciled, categorized AR ledger is the prerequisite. Growthy keeps that ledger accurate: it categorizes transactions with 85% accuracy on first import, and you review the rest. When every payment is matched, the aging report reflects what's actually owed. That prerequisite has its own workflow. Matching deposits to open invoices, including lump-sum payments and deposits that arrive net of processor fees, is covered in the [payment reconciliation guide](/topics/payment-reconciliation). ## A Worked Example: Reading a Real Aging Report Let's say your business has $80,000 in total AR. Here's what the aging breakdown might look like: | Bucket | Amount | % of Total | | --- | --- | --- | | Current | $68,000 | 85% | | 1-30 days | $4,200 | 5.3% | | 31-60 days | $3,100 | 3.9% | | 61-90 days | $2,700 | 3.4% | | 90+ days | $12,000 | 15% | ### The Bucket Breakdown The Current bucket is healthy at 85%. Most of what you're owed isn't late yet. The 1-30 and 31-60 buckets are small. A few follow-up calls this week should resolve most of it. The 90+ bucket is the problem. $12,000 is 15% of total AR. That's meaningful. If you haven't actively worked those invoices, some of this may already be uncollectible. ### What the Numbers Tell You This report drives three immediate decisions. First, who gets a call this week (anything in 31-60 that hasn't had recent contact). Second, which accounts need escalation (the 61-90 group and the largest line items in 90+). Third, whether to set a bad-debt reserve against the 90+ balance. At 15% of total AR, the answer is probably yes. You'd also want to look at the 90+ bucket by customer, not just in aggregate. Is it one customer with a $12,000 balance, or six customers with $2,000 each? One customer is a relationship problem. Six customers is a systemic collections problem. ## The Decisions an Aging Report Drives The report is useful only if you act on it. Here are the three decisions it should drive. ### Follow-Up Cadence by Bucket Match intensity to age: - **Current:** No action. Monitor. - **1-30 days:** Send a reminder. Email is fine. Keep it short. - **31-60 days:** Call. Get a commitment on a payment date. - **61-90 days:** Escalate. A principal or account manager makes contact. Explore a payment plan if needed. - **90+ days:** Escalate further. Consider a formal demand letter or a collections referral for large balances. One action per bucket. Don't mix intensity levels. A polite reminder email to a 90+ invoice is a waste of time. ### Escalation Triggers Not every 60+ day invoice needs the same response. Some specific triggers worth setting: - Any single invoice over $1,000 past 60 days gets a call from a principal, not just an AR contact. - A customer with two or more invoices in the 31-60 bucket is a pattern. Address it before they go further. - A 90+ balance growing month over month (not shrinking) signals that collection isn't working. Change the approach. Set these triggers in writing. Don't leave them to judgment. ### Setting a Bad-Debt Reserve Your 90+ balance is the starting point for estimating bad debt. A common approach: reserve 25-50% of the 90+ total as doubtful accounts. On a $12,000 balance, that's $3,000 to $6,000. The exact percentage depends on your industry and customer mix. Service businesses often see higher default rates in 90+ than product businesses. Adjust the percentage based on historical collection rates if you have the data. For the accounting treatment when a receivable goes bad, see the guide on [bad debt write-off](https://growthy.com/blog/bad-debt-write-off). ## Three Errors That Fake a Past-Due Balance Before you chase an invoice, check that the balance is real. Three bookkeeping mistakes put money in the wrong bucket and send you after customers who already paid. One rule underneath all three: the buckets count days past the due date, not days since the invoice date. A Net 30 invoice issued October 1 comes due October 31. On November 15 it sits in the 1-30 bucket at 15 days late, not in the 31-60 bucket. ### Short-Pays Coded as Bad Debt A customer sends $940 against a $1,000 invoice. They took $60 off as a return or an adjustment. With no credit memo on file, the bookkeeper codes the $60 to Bad Debt Expense and marks the invoice paid. That $60 usually is not bad debt. It is a pricing dispute settled with a discount, a deduction the customer took without asking, or a real return that belongs in Sales Returns and Allowances. Coding it as bad debt overstates bad debt expense and understates the contra-revenue account. At tax time the deduction may not hold under IRC §166, because the debt was collected, just not in full. The fix: don't code a short-pay as bad debt without documentation. An unearned discount is a collections problem, not a write-off. An approved discount belongs in a Sales Discount account. ### Payments Misapplied Across Several Invoices A customer owes invoices #1021, #1022, and #1023. They send one check for the combined amount with no remittance advice saying which invoices it covers. The bookkeeper applies the whole thing to #1021. The other two stay open on the aging. A month later the customer calls about #1022 being past due. They believe it is paid. The check cleared their bank. Nobody is lying. The money arrived, it just landed on the wrong invoice. Missing remittance advice is the most common reason an aging report shows past due on invoices a customer thinks are settled. The fix is procedural. When a lump-sum payment arrives with no remittance, call before you post. Get the invoice breakdown, apply it, and note the call in the customer record. ### Aging Balances Accrued a Second Time at Year-End At year-end some bookkeepers see open invoices on the aging and also book accrued revenue for the same work. That counts the revenue twice. The line is clean. An open invoice on the aging is already billed and already recognized as revenue under accrual, sitting in AR as an unpaid balance. Accrued revenue is work performed but not yet invoiced, with no invoice in the system. If it is on the aging, it is already revenue. Don't accrue it again. This shows up most when a client invoices late: work done in December, invoice sent January 3. If the December invoice exists and sits open on the aging, the revenue is already on the books. ## Frequently Asked Questions ### How often should I run an AR aging report? Weekly is standard for businesses with meaningful receivables. Monthly is the bare minimum. The reason to run it weekly: the 31-60 bucket builds over two to four weeks before it becomes a problem. By the time you catch it on a monthly report, you've already lost time. Set a standing calendar block on Mondays to run the report and work the list. ### What's a healthy accounts receivable aging mix? There's no universal benchmark, but a practical rule: 80% or more in Current is healthy. When the 60+ days column (combining 61-90 and 90+) exceeds 20% of total AR, something's wrong. It could be your collections process, your customer creditworthiness screening, or your data quality. Diagnose the cause before assuming it's just a slow payer problem. ### What causes inaccurate aging reports? Four main causes: unapplied payments (cash received but not matched to an invoice), duplicate invoices, incorrect invoice dates, and miscategorized transactions. Any of these creates a gap between what the report shows and what's actually owed. If your aging report ever seems off, with customers disputing balances you think are open or totals that don't reconcile, start with the AR subledger and work backward. ### Can I run this report in QuickBooks or Xero? Yes. Both have it built in. In QuickBooks Online, search "Accounts Receivable Aging Detail" in the Reports section. In Xero, it's Reports > Aged Receivables. Run the Detail version for collections work: you need invoice-level data, not just customer totals. The Summary version is useful for a quick health check; the Detail version is what you need when you're working the list. ### When can I write off an AR balance as bad debt under IRC §166? Section 166 requires the debt to be actually worthless, not just slow. To support the deduction, document what you tried: emails, calls, demand letters, and any response from the customer. If they filed bankruptcy, keep that paperwork. A large 90+ balance on its own doesn't satisfy §166. You need evidence that collection is genuinely not possible. Send the client to their CPA before they take the deduction. ### What's the difference between an aging report and AR subledger reconciliation? They answer different questions. The aging report groups open invoices by how overdue they are. Subledger reconciliation compares the total of every open customer balance to the AR control account on the general ledger. Aging tells you how late the money is. Reconciliation tells you whether the books agree on the total. Run both every month. If the two totals don't match, a journal entry was posted straight to the AR account without a customer record. Find it and re-enter it as a customer transaction. ## Conclusion The AR aging report is simple in structure and high-leverage in practice. It takes a single balance sheet number and breaks it into actionable line items. Current means nothing to do. 90+ means act now. The catch: the report is only as good as the data behind it. Every open invoice needs to be real. Every payment needs to be matched. If your AR ledger has unapplied cash or duplicate entries, the aging report amplifies those problems rather than solving them. *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=accounts-receivable-aging-report) and keep your AR ledger clean so the aging report tells you what's actually owed. ### [Ecommerce Chart of Accounts: The Template QBO Doesn't Ship](https://growthy.com/blog/ecommerce-chart-of-accounts): You set up QBO for an ecommerce client. The default chart looks fine. Then the Shopify payout lands. You have one "Product Revenue" account. No line for Amazon fees. Sales tax in income where it has no place. You set up QBO for an ecommerce client. The default chart looks fine. Then the Shopify payout lands. You have one "Product Revenue" account. No line for Amazon fees. Sales tax in income where it has no place. The default chart is not wrong. It just isn't built for ecommerce. A service firm needs about 50 accounts. An ecommerce shop with three stores needs 20 more. Those 20 handle channel revenue, fees, and inventory. This piece shows what to add and gives you a chart template to copy. > **What is an ecommerce chart of accounts?** > > It is a GL account list built for online retail. It adds at least 20 accounts to the standard QBO set. Those 20 cover channel revenue, channel COGS, fee sub-accounts, clearing accounts, sales tax payable, inventory, landed cost, and refund credits. Without them, margin is hard to see and sales tax sits in income where it does not belong. ## Key Takeaways - **The default QBO chart is not wrong, just thin:** it works fine for a service firm. It breaks for ecommerce because it lacks channel splits, fee detail, and a tax liability account. - **Channel accounts are required for margin:** without a Shopify account and an Amazon account, you can't see which channel makes money. - **Fees need sub-accounts:** Amazon has 14 fee types. One "Fees" line hides true margin. - **One clearing account per channel:** this is the payout recon backbone. Sales credit in, fees debit out, net hits the bank. - **Sales tax is a liability:** book it to "Sales Tax Payable," not income. Not doing so is the most common mistake. - **Refunds go in contra-revenue:** booking them as an expense hides gross margin. ## Why the Default QBO Chart Isn't Wrong, Just Incomplete The standard QBO chart covers the basics. You get checking, AR, inventory asset, AP, owner's equity, product revenue, COGS, and expenses. About 50 accounts. That works for a service firm. Ecommerce breaks in three places. Multi-channel revenue needs separate accounts. Deposits come from settlement reports, not invoices. Inventory has landed cost. ### The ~50-account generic COA Here's what QBO ships by default: - **Assets:** Checking, Savings, AR, Inventory Asset - **Liabilities:** AP, Credit Cards - **Equity:** Owner's Equity - **Income:** Product Revenue - **COGS:** Cost of Goods Sold - **Expenses:** Advertising, Bank Fees, Office Supplies, Payroll Nothing there handles a Shopify payout that nets fees before the deposit. Nothing tracks sales tax collected but not yet remitted. Nothing splits Amazon revenue from Etsy revenue. ### What ecommerce adds Four things are missing. These are additions, not replacements: 1. Channel-level revenue and COGS accounts 2. Marketplace fee sub-accounts 3. Per-channel clearing accounts 4. Sales tax payable liability Each one is covered below with the account number. ## Revenue and COGS Split by Channel If Shopify and Amazon both land in one "Product Revenue" line, you can't see which channel makes money. You can't tell if Amazon pays after FBA fees. You need a revenue account per channel. You need a COGS account per channel too. ### Per-channel revenue accounts Add one account per store. These hold gross sales before fees come out: - `4100 · Shopify Revenue` - `4200 · Amazon Revenue` - `4300 · Etsy Revenue` - `4400 · Direct/Website Revenue` The clearing accounts (next section) handle the gap between gross sales and what the bank shows. ### Per-channel COGS Use the same split for COGS: - `5100 · Shopify COGS` - `5200 · Amazon COGS` - `5300 · Etsy COGS` - `5400 · Direct COGS` One timing note: COGS hits at the time of ship, not at the time of payout. A sale on Monday, ship on Wednesday, COGS on Wednesday. See [ecommerce inventory and COGS](https://growthy.com/blog/ecommerce-inventory-cogs) for how this works in full. ## Fee, Clearing, and Liability Accounts The default chart is thin in three spots. It lacks fee sub-accounts. It lacks a clearing account per channel. It lacks a sales tax liability account. Here is what to add. ### Marketplace fee sub-accounts One "Fees" line hides margin. Amazon has 14 fee types. You need each type in its own account. Put them under a parent `6100 · Marketplace Fees`: - `6110 · Amazon Referral Fees` - `6120 · Amazon FBA Storage Fees` - `6130 · Amazon FBA Fulfillment Fees` - `6140 · Amazon Advertising Fees` - `6150 · Shopify Transaction Fees` - `6160 · Shopify Payments Processing Fees` - `6170 · Etsy Listing Fees` - `6180 · Etsy Transaction Fees` Add more if you need them. Disposal fees, removal fees, and Shopify Capital costs each need a line. ### Per-channel clearing accounts A clearing account sits between gross sales and the bank. Each sale goes in as a credit. Each fee goes out as a debit. When the payout hits, the balance nets to zero. That is the recon backbone. Add one per channel: - `1500 · Shopify Clearing` - `1510 · Amazon Clearing` - `1520 · Etsy Clearing` See [Shopify bookkeeping](https://growthy.com/blog/shopify-bookkeeping) for a step-by-step look at how this works. ### Sales tax payable Sales tax at checkout is not your cash. The buyer paid it. You hold it. You owe it to the state. It goes on the balance sheet as a liability, not in income. - `2200 · Sales Tax Payable` If you have nexus in more than one state, add a sub-account per state: - `2210 · Sales Tax Payable - TX` - `2220 · Sales Tax Payable - CA` - `2230 · Sales Tax Payable - NY` Sales tax in income is the most common mistake. It inflates your P&L and hides what you owe. See [ecommerce sales tax nexus](https://growthy.com/blog/ecommerce-sales-tax-nexus) for when and where the tax applies. ## Inventory and Landed Cost The default inventory asset account works for a simple business. Ecommerce adds two gaps: goods in transit and landed cost. ### Inventory asset and landed cost - `1400 · Inventory Asset`: goods on hand - `1410 · Inventory in Transit`: goods shipped from supplier but not yet received - `5500 · Landed Cost`: freight, customs duties, and import fees Landed cost belongs in COGS. It's a cost of the product. Booking it to "Shipping Expense" understates COGS and inflates gross margin. ### Refunds as contra-revenue Refunds reduce revenue. They don't increase expenses. - `4900 · Refunds and Returns (contra-revenue)` This account carries a negative balance under income. It keeps gross revenue and net revenue both visible on the P&L. Most QBO defaults book returns as an expense, which distorts gross margin. ### The starter template Copy this table and adapt the channel names for your platforms: | Acct # | Account Name | Type | Use | | --- | --- | --- | --- | | 1400 | Inventory Asset | Asset | Goods on hand | | 1410 | Inventory in Transit | Asset | Shipped, not yet received | | 1500 | Shopify Clearing | Asset | Shopify payout recon | | 1510 | Amazon Clearing | Asset | Amazon payout recon | | 1520 | Etsy Clearing | Asset | Etsy payout recon | | 2200 | Sales Tax Payable | Liability | Tax held for the state | | 2210 | Sales Tax Payable - TX | Liability | State sub-account | | 4100 | Shopify Revenue | Income | Gross sales, Shopify | | 4200 | Amazon Revenue | Income | Gross sales, Amazon | | 4300 | Etsy Revenue | Income | Gross sales, Etsy | | 4400 | Direct Revenue | Income | Gross sales, direct | | 4900 | Refunds and Returns | Income | Contra-revenue; negative | | 5100 | Shopify COGS | COGS | Shopify channel cost | | 5200 | Amazon COGS | COGS | Amazon channel cost | | 5300 | Etsy COGS | COGS | Etsy channel cost | | 5500 | Landed Cost | COGS | Freight, duties, import fees | | 6110 | Amazon Referral Fees | Expense | Per-sale fee | | 6120 | Amazon FBA Storage | Expense | Monthly storage | | 6130 | Amazon FBA Fulfillment | Expense | Pick, pack, ship fee | | 6150 | Shopify Tx Fees | Expense | Per-sale fee | | 6160 | Shopify Card Processing | Expense | Card fee | | 6170 | Etsy Listing Fees | Expense | Per-listing charge | | 6180 | Etsy Sales Fees | Expense | Per-sale fee | Start here. Add sub-accounts for any fee or platform not on this list. One account per distinct cost category so your P&L shows where margin goes. ## Conclusion The default QBO chart is a fine place to start. It is not built for ecommerce. It does not know you run three stores, get net payout deposits, or hold sales tax you owe the state. The fix is not hard. Add one revenue account and one COGS account per channel. Add fee sub-accounts. Add a clearing account per channel. Add a sales tax payable account. Add landed cost in COGS. Book refunds as contra-revenue. That is it. Most ecommerce books with two or more channels end up at 25 to 35 accounts when you add all fee types and nexus states. Growthy has a firm-level COA template that goes into client books in one step. It tags 85% of transactions on the first import. You check the rest. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=ecommerce-chart-of-accounts) ### [Ecommerce Inventory and COGS: Tying Cost to Fulfillment, Not Payout Timing](https://growthy.com/blog/ecommerce-inventory-cogs): Most ecommerce sellers get paid two to three weeks after a sale. That delay is fine for cash flow planning. But many sellers let that same delay drive how they record costs. That's a much more expensive mistake. Most ecommerce sellers get paid two to three weeks after a sale. That delay is fine for cash flow planning. But many sellers let that same delay drive how they record costs. That's a much more expensive mistake. When you book cost of goods sold (COGS) at payout instead of fulfillment, profit looks higher in October and lower in November. That distortion compounds across thousands of SKUs. Your P&L misleads you on pricing, margins, and taxes. This article covers the four mechanics that fix ecommerce inventory accounting: ecommerce COGS timing, inventory valuation, returns, and units held at Amazon. None of it is complicated once you see the pattern. > **When do ecommerce sellers recognize COGS?** > > COGS is recognized when inventory is fulfilled (shipped to the customer), not when the platform pays out. Sell a $50 item on October 28. Amazon settles on November 14. The COGS entry belongs in October — the same period as the revenue. Booking it in November overstates your October margin and understates November's. A seller moving $10,000/month with a 40% cost ratio misallocates $4,000 in costs when there's a two-week payout delay. The fix is accrual-based COGS: match costs to the revenue they generate, not the bank transfer that arrives later. ## Key Takeaways - **COGS follows fulfillment, not payout:** The day inventory ships is the day cost hits your P&L, regardless of when the platform settles. - **Three events, two that matter:** Sale date (revenue), fulfillment date (COGS), and settlement date (cash) are separate. Only the first two affect your income statement. - **Landed cost belongs in inventory:** Freight and duties are part of inventory value, not a period expense. A $10 item with $2 freight should carry a $12 inventory cost. - **Returns reverse both sides:** A return reduces revenue AND restores (or writes off) inventory cost. Both entries need to move. - **FBA inventory is still your asset:** 300 units at an Amazon fulfillment center belong on your balance sheet until sold. Location doesn't change ownership. - **Reconcile monthly:** Cross-check your books against Seller Central reports every month. Catch shrinkage and unrecorded movements early. ## Why COGS Timing Is the Ecommerce Trap Here's the core issue: three things happen when you make a sale, and they almost never happen on the same day. ### The Three Events That Never Land on the Same Day **Event 1 (Sale):** The customer clicks Buy. Revenue is recognized. This is October 28. **Event 2 (Fulfillment):** The item ships from the warehouse. Inventory moves out of your account and COGS is recognized. This might be October 29. **Event 3 (Settlement):** Amazon, Shopify, or Etsy deposits money into your bank account. This is November 14. Accrual accounting matches revenue and cost in the same period. Event 1 and Event 2 need to land in the same month. Event 3 is irrelevant to your income statement. ### Why Booking at Payout Breaks Your Margin Report Say you sell 10 units at $50 each on October 28. Each unit cost you $22 to produce and ship. Your fulfillment center ships them October 29. The correct entries: - **October:** Revenue +$500, COGS +$220. Gross profit = $280. Margin = 56%. - **November:** Nothing related to this sale. If you book COGS when the platform pays (November 14): - **October:** Revenue +$500, COGS $0. Gross profit = $500. Margin = 100% (wrong). - **November:** COGS +$220 with no matching revenue. Gross profit = -$220 (wrong). You made 56% margin. Your books show 100% one month and negative the next. This distortion drives bad pricing decisions. It also means your tax liability calculations are off. You may overpay estimated taxes in Q4 and underpay in Q1. For context on how COGS fits into your broader ecommerce bookkeeping setup, see [ecommerce bookkeeping fundamentals](https://growthy.com/blog/ecommerce-bookkeeping). ## Inventory Valuation for Online Sellers Once you understand COGS timing, the next question is: how much does each unit cost? That depends on your valuation method. ### FIFO vs Weighted Average: Which One Fits Your Store Two methods dominate ecommerce bookkeeping: **FIFO (first in, first out):** The oldest inventory costs flow out first. Buy 100 units at $10 in January and 100 more at $12 in March. The first 100 you sell cost $10 each. The next 100 cost $12 each. FIFO works well for dated or seasonal goods. It also fits stores where supplier costs shift lot-to-lot. **Weighted average:** You pool all inventory at an average cost. If you have 200 units (100 at $10 and 100 at $12), the average cost is $11. Every unit sold costs $11, regardless of which physical unit ships. Weighted average is simpler for high-SKU operations where tracking lot-level costs adds more friction than value. One practical note: the IRS requires consistency. You can't switch methods year to year without filing Form 3115. Pick the one that fits your operation and stick with it. ### Landed Cost Belongs in Inventory Value, Not Period Expense This is where a lot of ecommerce sellers leak margin without realizing it. Landed cost covers everything to get a unit to a sellable state: purchase price, freight, duties, and prep fees. All of it belongs in the inventory cost of that unit, not expensed the period you paid it. A unit at $10 from the supplier plus $2 freight carries a $12 inventory cost. When it sells, $12 flows through COGS. The common mistake is booking freight as a period expense when the invoice arrives. That understates inventory value and overstates gross margin. You look more profitable than you are. For the right chart of accounts structure to handle landed cost correctly, see [ecommerce chart of accounts](https://growthy.com/blog/ecommerce-chart-of-accounts). ## Returns, Restocking, and Shrinkage Returns are a double-entry event, and most ecommerce sellers only do half of it. ### Reversing Both Revenue and COGS in the Right Period Say a customer returns a $50 item that cost you $22. Two things happen on your books: 1. Revenue drops by $50. 2. If the item is resellable, COGS drops by $22 and inventory goes back up by $22. Most sellers record the refund (revenue drop). Fewer reverse the COGS and restore inventory. Skip that step and your COGS stays high, making gross margin look worse than it is. When the item is damaged or unsellable, step 2 changes: you can't restore it to inventory. Instead, remove it from inventory at cost and record a $22 shrinkage loss. That loss sits below gross profit. It shouldn't be buried in your COGS figure. Partial refunds change only the revenue side. If you refund $40 of a $50 sale but keep the item, revenue drops $10 and COGS is unchanged. Timing matters here, too. The reversal goes in the period the return is processed, not the period of the original sale. ### Damaged and Unsellable Units Inventory shrinkage from theft, damage, or loss is not a COGS event. COGS requires a sale. When units disappear without a sale: 1. Remove them from your inventory account at cost. 2. Record the offset as an inventory shrinkage or loss expense. Running all inventory reductions through COGS inflates costs and hides the real issue. Shrinkage should be its own line so you can track it and spot patterns. ## Units Held at Fulfillment Centers This is the one that surprises FBA sellers the most. ### FBA Inventory Stays on Your Balance Sheet When you ship 500 units to an Amazon fulfillment center, you don't sell them to Amazon. You store them there. You still own every unit until a customer buys it. That means all 500 units belong on your balance sheet as an asset. If 200 have sold, 300 remain on the balance sheet at their inventory cost. Not at Amazon's selling price, not at zero. The ownership test is legal title, not physical location. A unit at a fulfillment center in Kentucky is still your asset if you own it. For a full breakdown of FBA-specific accounting entries, see [Amazon seller bookkeeping](https://growthy.com/blog/amazon-seller-bookkeeping). ### Reconciling Platform Inventory Reports Every month, cross-check your bookkeeping system against the Amazon Seller Central inventory report. Here's the process: 1. Pull the FBA inventory report from Seller Central (units currently in fulfillment). 2. Multiply units by your average cost per unit. 3. Compare that figure to your "FBA Inventory" account balance in your bookkeeping system. Discrepancies mean one of three things: unrecorded receipts, unrecorded sales, or shrinkage. Amazon may have lost or damaged units without logging it on your side. If you're setting up FBA inventory accounting, Growthy is 85% accurate on first import. You review the rest. ## Conclusion COGS follows inventory movement, not when the platform pays you. That's the single rule that makes all of this work. Get the timing right and your P&L becomes a reliable tool for pricing decisions. Tracking inventory cogs ecommerce sellers neglect is what makes the numbers honest. Get inventory valuation right and your unit economics reflect reality. Handle returns correctly and gross margin stops bouncing. Track FBA inventory as an asset and the balance sheet balances. None of it requires specialized accounting software or a CPA on call. It requires consistent methodology applied the same way every month. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=ecommerce-inventory-cogs) ### [Ecommerce Sales Tax Nexus: When a Single Store Triggers a Liability](https://growthy.com/blog/ecommerce-sales-tax-nexus): You open one Shopify store. You sell to buyers across the country. It feels like one business, in one place, with one ecommerce sales tax nexus problem. You open one Shopify store. You sell to buyers across the country. It feels like one business, in one place, with one ecommerce sales tax nexus problem. It isn't. A 2018 Supreme Court case changed the rule. A state can now require you to collect sales tax based on how much you sell into that state. You don't need an office there. You don't need a warehouse or a single employee there. Your sales volume alone can create the obligation. This guide is for the bookkeeper who just took on an ecommerce client, and for the founder reading their own profit and loss statement. It answers two questions. Where does a collection obligation start? And how do you record the money once you collect it? Tools like TaxJar and Avalara help you file. This guide covers something they don't: how a bookkeeper treats sales tax in the books. Thresholds vary by state, and they change often. So the goal here is the pattern, plus a pointer to the verified state guide, not 45 numbers to memorize. > **What is ecommerce sales tax nexus?** > > Nexus is a connection to a state strong enough to require you to collect its sales tax. Economic nexus is the newer kind: an obligation to collect once your sales into a state pass a threshold, even with no physical presence there. It comes from South Dakota v. Wayfair (2018). The most common revenue threshold is $100,000 in annual sales into a state, and many states use that as the only trigger. California sets a higher bar at $500,000, with no transaction test. Four states have no statewide sales tax at all: Delaware, Montana, New Hampshire, and Oregon. Collected sales tax is never your revenue. It is money you hold for the state, so it belongs in a liability account until you send it on. ## Key Takeaways - **Economic nexus starts with sales volume:** You can owe sales tax in a state once your sales pass its threshold, with no office or staff there (South Dakota v. Wayfair, 2018). - **$100,000 is the common trigger:** That annual sales figure is the most common revenue threshold, and many states use it as the only test. California is the high bar at $500,000. - **The transaction count is fading:** The old "$100,000 or 200 transactions" rule is being dropped. More than 16 states had cut the 200-transaction count by January 1, 2026. - **Marketplaces remit for you:** In every state with a sales tax, Amazon, Etsy, and Walmart must collect and remit on behalf of their third-party sellers. Your own Shopify store sales, you remit yourself. - **Collected tax is a liability, not revenue:** Book it in a Sales Tax Payable account. Sending it to the state reduces the liability to $0 on the remittance date. It's never an expense and never income. - **Four states have no statewide sales tax:** Delaware, Montana, New Hampshire, and Oregon. Alaska has none statewide either, but local areas can add one. ## What Economic Nexus Ecommerce Sellers Need to Know Nexus is the link between your business and a state that lets the state tax your sales. For decades, that link meant physical presence. You collected sales tax where you had a location, inventory, or people. If you had no footprint in a state, you owed it nothing. That rule broke in 2018. In South Dakota v. Wayfair, the Supreme Court allowed states to base the obligation on sales volume instead. This is economic nexus for ecommerce sellers: you can owe sales tax in a state once your sales into it cross a set amount, even with no physical presence there. For an online seller who ships everywhere, this is the whole game. ### Physical presence vs economic presence Physical nexus still exists. It comes from having something tangible in a state. A storefront counts. So does staff. So does inventory, which matters for ecommerce: if you use Amazon's fulfillment network, your stock can sit in a warehouse in a state you've never visited. That stored inventory can create physical nexus on its own. Economic nexus is different. It doesn't need anything tangible. It needs only enough sales into the state. The amount is the state's threshold, and crossing it switches on your duty to collect. ### Why thresholds differ by state Each state sets its own threshold. There's no single national number to learn. What you can learn is the common shape. The most common revenue threshold is $100,000 in annual sales into a state. Many states use that figure as the only trigger. California is the notable exception with a higher bar: $500,000 in sales, with no transaction test at all. Some states have no statewide sales tax, so there's no threshold to cross. Those are Delaware, Montana, New Hampshire, and Oregon. Alaska is a special case. It has no statewide sales tax, but its local jurisdictions can impose one, so sales there aren't always tax-free. Because each state's rule differs, you confirm the current threshold for each state against a maintained guide. The account side of this, where the collected money lands, comes later in this guide and in the [ecommerce chart of accounts](https://growthy.com/blog/ecommerce-chart-of-accounts) breakdown. ### One store, many states Here's the part that surprises new sellers. One online store sells into nearly every state. So in a single year, a growing seller can approach or cross ecommerce sales tax nexus thresholds in many states at once. That's why nexus isn't a one-time setup task. It's something you watch as you grow. We return to that monitoring problem at the end of this guide. ## Marketplace Facilitator Rules: Who Actually Remits For a seller on more than one channel, this is the most useful rule to get right: the marketplace collects and remits for you, but your own store doesn't. Get this wrong and you either pay twice or under-report. A marketplace facilitator is a platform that handles the sale on a seller's behalf. In every state that has a sales tax, marketplace facilitators must collect and remit sales tax for their third-party sellers. Amazon, Etsy, and Walmart all fall under this rule. ### What a marketplace facilitator collects and remits When you sell on Amazon, Etsy, or Walmart, the platform does the sales tax work for you. It calculates the tax, collects it from the buyer, and remits it to the state. This applies in every state that has a sales tax. For you, that tax is handled. You don't remit it again. Sending it a second time means paying the state money it already has. One nuance to watch: marketplace sales can still count toward a state's economic nexus threshold, even when the marketplace is the one remitting. Whether they count varies by state, so you verify each state's rule against the maintained guide rather than assume one national answer. ### Direct store sales and shopify sales tax: you remit Your own Shopify store works differently. Shopify isn't a marketplace facilitator for your own storefront. So on direct Shopify-store sales, you collect and remit the shopify sales tax yourself. This is where your own filing duty lives. There's one twist. Shopify's Shop App does act as a marketplace, and it collects and remits like one. So sales through the Shop App follow the marketplace rule, while sales through your own Shopify storefront don't. The step-by-step reconciliation of a Shopify payout, including how fees and tax flow through, lives in the [shopify bookkeeping](https://growthy.com/blog/shopify-bookkeeping) guide. ### Mixed channels mean split books Now put it together. Say you sell on Amazon and on your own Shopify store. Amazon remits the tax for its channel. You remit the tax for your Shopify channel. Two channels, two different rules. Your chart of accounts has to keep these apart. Marketplace-collected tax passes through; it's not yours to remit. Direct-sale collected tax is a real liability you owe the state. If the books mix them, you lose track of what you actually owe. The account setup that keeps them separate is in the [ecommerce chart of accounts](https://growthy.com/blog/ecommerce-chart-of-accounts) guide. ## The Accounting Treatment: A Liability, Not Revenue This is the part filing tools skip, and the part a bookkeeper owns. The rules are short. Read them once and apply them every time. Collected sales tax is a liability on the balance sheet. A good home for it is a Sales Tax Payable account. Sending the money to the state reduces that liability. It's not an expense. And money you've collected but not yet sent is never revenue. ### Why collected tax is not income When a buyer pays sales tax, you're holding the state's money. You didn't earn it. It's not yours to keep. So it doesn't belong on your profit and loss statement as income. If you book it as revenue, your top line looks bigger than it is, and your profit looks bigger than it is. The correct home is a liability account, such as Sales Tax Payable. The buyer's tax dollars sit there until you pass them to the state. ### The collect-then-remit lifecycle Walk the money through three steps. First, you collect. Cash comes in, and an equal amount is credited to Sales Tax Payable. The liability rises by the tax you took. Second, you hold. That liability sits on the balance sheet until the filing due date arrives. Third, you remit. You pay the state. Cash goes down, and the liability goes down by the same amount. The profit and loss statement is never touched. That last point is the one bookkeepers get wrong. Remittance isn't an expense. If you record the payment to the state as an expense, your profit drops for no real reason, and the liability on the balance sheet never clears. The payment simply settles a debt you were already carrying. ### Journal entries: what the transactions look like Two entries cover the full lifecycle. **When you collect sales tax on a sale** (say, a $100 product with $8 tax): - Debit Cash (or Accounts Receivable) $108 - Credit Revenue $100 - Credit Sales Tax Payable $8 The $8 goes straight to the liability, not revenue. It's the state's money from the moment it arrives. **When you remit to the state:** - Debit Sales Tax Payable $8 - Credit Cash $8 No income statement account is touched. The liability clears. That's it. If you see a "Sales Tax Expense" debit anywhere, the entry is wrong — remittance isn't an expense, it's settling a debt you were already carrying. ### When marketplace tax never hits your liability Tie this back to the channel rules. Tax that Amazon, Etsy, or Walmart collect and remit shouldn't sit in your Sales Tax Payable. You never owe that money to the state. The marketplace does. Only direct-sale collected tax becomes your liability. Keep the marketplace-collected amounts visible for reconciliation, often in a clearing or memo account, but never as a payable you plan to remit. For exactly where each amount belongs, see the [ecommerce chart of accounts](https://growthy.com/blog/ecommerce-chart-of-accounts) guide, and for how this fits the full monthly close, the [ecommerce bookkeeping](https://growthy.com/blog/ecommerce-bookkeeping) pillar. ## Tracking Ecommerce Sales Tax Nexus as You Grow A growing multi-channel seller needs a nexus monitor, not a year-end surprise. The thresholds you cross today set the states you must register in tomorrow. Miss one and you can owe back tax you never collected. ### Monitor sales by state, not just total Your total revenue tells you nothing about nexus. The signal is sales by destination state. You need a running total of what you sell into each state, so you can see which ones you're getting close to. This starts as a bookkeeping problem before it's a filing problem. The books have to tag revenue by the ship-to state. Without that tag, you're guessing. ### Know when to register Once your sales into a state cross its threshold, you register for a sales tax permit there before you start collecting. The order matters: register first, then collect, then remit. Registering in a new state also adds a new Sales Tax Payable sub-account to track that state on its own. This is the point where you confirm the specifics with a tax professional. A guide can teach the pattern. Your exact duties depend on your states, your products, and your sales, so check them with someone who can advise on your situation. ### The landscape keeps moving A static spreadsheet ages badly here. States are repealing the 200-transaction part of the old rule and moving to a revenue-only test. More than 16 states had dropped the 200-transaction count by January 1, 2026. Illinois dropped it on January 1, 2026. Utah dropped it on July 1, 2025. Alaska dropped it on January 1, 2025. Kentucky drops it on August 1, 2026. The trend is clear, but a shrinking number of states still count transactions, so you verify each state's current rule rather than assume the old formula. A threshold that was true last year may be gone this year. That's the case for a running view of per-state sales instead of a year-end scramble. Growthy tags and totals your sales by state as you grow, so the data is ready when a threshold gets close. ## Conclusion The pattern is the same across every state and every channel: economic nexus ecommerce rules create a collection obligation once sales volume crosses a threshold, physical presence is no longer required to trigger that duty, and those thresholds keep shifting as states repeal the old 200-transaction test. Who remits depends on the channel. Marketplace facilitators — Amazon, Etsy, Walmart — collect and remit on your behalf in every state with a sales tax. Your own Shopify store doesn't get that treatment. Direct-store sales are your filing duty, and the shopify sales tax you collect sits in your books as a liability until you send it on. The bookkeeping side comes down to one principle: collected sales tax is a liability, not revenue. It lands in Sales Tax Payable, clears when you remit, and never touches the profit and loss statement. Hold that structure firm and the accounting stays clean no matter how many states you're registered in. Verified against the Sales Tax Institute Economic Nexus State Guide and Avalara state-by-state guides on 2026-06-24. Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Ready to keep your ecommerce books clean as you expand across channels and states? [Get started with Growthy](/signup?utm_content=ecommerce-sales-tax-nexus) and track every sale by state from day one. ### [Shopify Bookkeeping: Payout Reconciliation That Actually Ties Out](https://growthy.com/blog/shopify-bookkeeping): Your Shopify payout hits the bank: $1,847.32. Your Shopify sales dashboard says $2,100.00. The gap isn't missing money. It's Shopify Payments fees, refunds you issued, and shipping you collected, all netted before the deposit hits. Your Shopify payout hits the bank: $1,847.32. Your Shopify sales dashboard says $2,100.00. The gap isn't missing money. It's Shopify Payments fees, refunds you issued, and shipping you collected, all netted before the deposit hits. The bank shows you the result. Bookkeeping requires you to show the work. That gap is where most Shopify bookkeeping breaks down. Merchants book the net deposit as revenue. Fees disappear. Refunds never make it to the books. The numbers look clean until the accountant asks why gross profit doesn't match sales reports. This guide walks one real Shopify payout from gross sales to net deposit, shows the journal-entry pattern that reconciles it cleanly, and explains why the calendar is the wrong unit for Shopify reconciliation. > **What is Shopify payout reconciliation?** > > Shopify payout reconciliation is the process of matching each Shopify payout to the specific sales, fees, refunds, and shipping charges that make up that deposit. Shopify Payments charges 2.4% to 2.9% plus $0.30 per transaction depending on your plan. Refunds, returns, and chargeback holds come out before the deposit. A $2,100 gross sales period might produce a $1,847.32 payout after $61.20 in fees, $87.50 in refunds, and a $104 shipping offset. The goal is a Shopify Clearing account that hits exactly $0.00 after each payout settles. If the balance is not zero, there is an open item that needs a name. ## Key Takeaways - **The deposit is not your revenue.** A $1,847.32 payout on $2,100 in gross sales means $252.68 in fees, refunds, and offsets came out first. - **Shopify Payments fees run 2.4% to 2.9% plus $0.30 per transaction.** On 30 transactions totaling $2,100, that is roughly $61.20. - **Shopify Capital advances are debt, not income.** A $10,000 advance is a loan repaid through a percentage of daily sales. Debit Cash, credit Loan Payable. - **Payout periods cross calendar months.** A payout initiated January 30 may settle February 1. Reconcile by payout period, not bank-feed date. - **The clearing account must hit $0.00 every payout period.** That zero balance is your tie-out signal. A non-zero balance means an open item. - **Connectors automate, bookkeepers review.** A2X-style connectors work for single-merchant owners. Multi-client bookkeepers need a different model. ## What Is Actually Inside a Shopify Payout The Shopify payout report is the source document for reconciliation. It is not the bank statement. The bank statement shows one number: $1,847.32. The payout report shows how Shopify got there. Here is what a real payout contains, using a single 30-day payout period as the example: | Line item | Amount | | --- | --- | | Gross sales | $2,100.00 | | Shopify Payments fees | ($61.20) | | Refunds issued | ($87.50) | | Shipping collected (net) | ($104.00) | | Chargebacks | $0.00 | | **Net deposit** | **$1,847.32** | Four deductions came out before the money moved. None of them appear as separate lines on the bank feed. Booking the deposit as revenue misses all four. ### Gross Sales vs. Net Deposit: The Four Deductions **Shopify Payments fees** are a percentage of each transaction plus a flat amount. On the Basic Shopify plan, that is 2.9% plus $0.30. On Shopify plan, 2.6% plus $0.30. On Advanced, 2.4% plus $0.30. The math on 30 transactions totaling $2,100 at 2.9% plus $0.30 per transaction: (0.029 × $2,100) + (30 × $0.30) = $60.90 + $9.00 = $69.90. The example uses $61.20 for a higher-tier plan. Always pull the exact figure from the payout report, not an estimate. **Refunds issued** reduce the payout for returns that settled during the period. A $87.50 refund during the period means $87.50 that already hit revenue now needs to come back out. If you booked the original sale, you need to book the refund. **Shipping collected** is money your customers paid for shipping that Shopify holds and disburses through the payout. This often nets close to zero because Shopify subtracts shipping label costs from what was collected. The net amount appears in the payout report. It is not revenue and it is not an expense. It is a pass-through. **Chargebacks and dispute holds** can appear in a current period or arrive in a later payout after the dispute window closes. A chargeback freezes the disputed amount for up to 75 days. The resolution shows up as an adjustment in a future payout. If you do not track dispute holds, that adjustment looks like unexplained income or expense when it finally clears. ### Shopify Capital: Financing, Not Revenue Shopify Capital advances appear in the payout dashboard as positive numbers. They are debt, not income. A $10,000 Shopify Capital advance is a loan Shopify recovers by taking a fixed percentage of your daily sales until the total is repaid. The entry is simple: debit Cash $10,000, credit Loan Payable $10,000. When Shopify recoups the daily percentage, debit Loan Payable, credit the cleared amount. None of this is revenue. Booking an advance as revenue inflates income and hides a liability on the balance sheet. If it shows up in the payout report, treat it as financing from the start. ## Why Calendar-Month Reconciliation Creates Gaps Shopify does not pay out once a month. Payouts run on a cycle tied to business days, typically every one to three business days depending on your bank. That schedule does not align with the calendar. A payout initiated on January 30 may not settle in your bank account until February 1 or February 2 depending on your bank's processing time. If you close your books on January 31 and match deposits to calendar month, that payout is either missing from January (if it hasn't hit yet) or double-counted in February (if you reconcile what lands in the bank each month without matching it back to the Shopify payout period). For clean reconciliation, you match by payout ID, not by deposit date. Shopify Admin → Finances → Payouts lists every payout with a unique ID, the date range it covers, and the gross and net amounts. That report is the anchor. The bank feed is the confirmation. ### Payout Period vs. Bank-Feed Date Here is the practical difference: Payout #98765 covers sales from January 28 through January 30. It initiates January 30 and settles in the bank on February 1. If you reconcile by calendar month, you have two choices, both wrong: include it in January (it hasn't settled) or include it in February (it belonged to January sales). The right approach: reconcile Payout #98765 as a January payout because that is the period it covers. Match the payout ID from the Shopify report to the $1,847.32 bank deposit dated February 1. Note the settlement date. Move on. The payout ID is the reconciliation anchor. The deposit date is the confirmation. ### Cross-Month Payout Splits Some payouts cover sales that span two calendar months. A payout period from January 29 through February 1 includes sales from two different months. For cash-basis bookkeeping, book it on the deposit date and note the period. For accrual-basis, split the gross sales by the dates they occurred, match fees proportionally, and book the revenue in the right month. Document which payout period each line covers. You will not remember in March what the split looked like in January. This is why looking at a [bank feed alone misses most of the ecommerce bookkeeping picture](https://growthy.com/blog/ecommerce-bookkeeping). The feed shows one number on one date. The reconciliation is in the payout report. ## The Journal-Entry Pattern That Ties Out The mechanics of a clean Shopify close use three entries per payout period. All three route through a Shopify Clearing account, which is a current asset account set up specifically to hold the in-transit amount between recording sales and recording the bank deposit. The clearing account should hit $0.00 after the third entry. That zero is the signal that everything reconciled. Using the example from the first section: $2,100.00 in gross sales, $61.20 in fees, $87.50 in refunds, $104.00 shipping net, $1,847.32 net deposit. ### Step 1: Record Gross Sales When the payout period closes (or at the time of sale for accrual-basis), record the full gross revenue: ``` Debit Accounts Receivable $2,100.00 Credit Sales Revenue $2,100.00 ``` For cash-basis bookkeeping, this entry records when the payout initiates rather than when each individual sale occurs. Either way, record the full $2,100.00 — not the net deposit amount. ### Step 2: Record Fees and Refunds as Contra Entries Record the deductions that Shopify took before paying: ``` Debit Shopify Fees Expense $61.20 Debit Sales Returns & Allowances $87.50 Debit Shopify Clearing $1,847.32 Credit Accounts Receivable $2,100.00 Credit Shipping Collected (liability) ($104.00 already netted in Clearing) ``` The Shopify Clearing account now has a debit balance of $1,847.32. It represents the money Shopify owes you: the payout that has not hit the bank yet. The fees and refunds are now on the books separately as expenses and contra-revenue. Note: the shipping collected line nets to near zero in this example. Include it explicitly in your chart of accounts so it does not hide inside revenue or clearing. If shipping collected exceeds shipping costs, the net goes to a Shipping Revenue account. ### Step 3: Record Net Deposit and Clear the Account When the deposit hits the bank account: ``` Debit Checking Account $1,847.32 Credit Shopify Clearing $1,847.32 ``` After this entry, the Shopify Clearing account balance is $0.00. ### The Tie-Out Signal A $0.00 clearing account balance after payout settlement means every dollar reconciled. Every deduction has a named entry. The bank deposit matches the books. A non-zero balance after settlement means something does not have a name yet. A $0.03 balance is usually fee-calculation rounding between Shopify's math and your books. A $47.00 balance is an open item that needs investigation. Common causes: a refund that was issued but not booked, a chargeback hold that released in this period, or a shipping collected offset that landed in the wrong account. The clearing account tracks the in-transit amount between the payout period and the bank settlement. When it does not zero, the work is not done. Connecting this entry pattern to the broader [ecommerce inventory and COGS cycle](https://growthy.com/blog/ecommerce-inventory-cogs) gives you the complete close: revenue decomposed from payouts, cost matched to units sold, and the balance sheet telling you what you have and what you owe. ## Tooling: Connector vs. Workflow Two practical approaches exist for Shopify bookkeeping automation, and they serve different use cases. ### Connector Tools: A2X and Similar Connector tools like A2X map Shopify payout data directly to QuickBooks Online or Xero. They automate the journal entries described above by pulling from the Shopify payout report and writing to the GL on a schedule. For a merchant keeping their own books on one or two Shopify stores, this is a reasonable automation. The tradeoff: connectors generate entries automatically, but someone still needs to review them. Fee categorizations can drift. Refund entries can land in the wrong period. The automation reduces manual entry but does not eliminate the need to understand what the entries mean. Pricing and features change; verify directly with the vendor. For a comparison of how different tools handle ecommerce bookkeeping, [this guide to ecommerce accounting software](https://growthy.com/blog/best-ecommerce-accounting-software) walks through the category. ### Firm-Level Workflow: Managing Multiple Shopify Clients Bookkeepers managing 10 or 20 Shopify clients in the same period need a model that does not require per-store manual entry for every payout. The connector model built for individual merchants does not scale when you are running the same close across multiple stores with different payout schedules and different plan tiers. Growthy is built for this workflow. The import layer handles payout-level data for multiple stores. Accuracy on first import is 85%. You review the rest. That means a bookkeeper spends time on the 15% that needs judgment, not on entering the 85% that follows the same pattern every period. This is the one place Growthy belongs in this article. If you are a merchant keeping your own books, a connector tool or a clean spreadsheet approach works. If you are a bookkeeper running multiple Shopify clients, Growthy is designed for that volume. ## Conclusion Every Shopify payout reconciliation comes down to the same question: does the Shopify Clearing account balance return to $0.00 after settlement? If it does, every deduction has a name. Revenue is gross. Fees are in the right expense account. Refunds are contra-revenue. The deposit ties to the payout report. The books match. If it does not, there is an open item. The most common causes are a refund that was not booked, a chargeback hold that released in the current period, or a fee-rounding difference. The size of the balance tells you how urgent the investigation is. The payout report is the source document. The bank feed confirms settlement. The clearing account bridges the two. Get that pattern working on one payout period and it repeats the same way every period after. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.* [Get started with Growthy](/signup?utm_content=shopify-bookkeeping) ### [PayPal Bookkeeping: Reconcile Balance, Fees & Withdrawals](https://growthy.com/blog/paypal-bookkeeping): PayPal bookkeeping done right: treat PayPal as a bank account, record sales gross, book fees separately, and reconcile transfers so the books tie out. A sale comes in. Your PayPal balance goes up. Then the deposit hits your bank account days later, and it's smaller than the sale. That gap is where PayPal bookkeeping goes sideways for most businesses, and it's the first thing clean [payment reconciliation](https://growthy.com/topics/payment-reconciliation) has to fix. The fix isn't complicated. But it requires treating PayPal the same way you treat a checking account: as its own bank account in your books, not a passthrough. > **What is PayPal bookkeeping?** > > PayPal bookkeeping means treating your PayPal account as a separate bank account in your general ledger. Every sale is recorded at the gross amount when it hits your PayPal balance. Fees are recorded separately as merchant service charges. Transfers from PayPal to your checking account are recorded as transfers between asset accounts, not new income. That three-part split (gross sale, fee expense, transfer) is what makes PayPal reconciliation clean. Without it, you'll understate revenue, lose the fee deduction, and wonder why your bank balance never lines up with your books. ## Key Takeaways - **PayPal is a bank account in your books.** Set it up as a current asset account, not a revenue passthrough. - **Sales land in your PayPal balance first.** The bank deposit is a separate transfer that comes later and is smaller. - **Fees run 2.99%–3.49% + $0.49 per transaction** depending on which PayPal product processed it. Record them as merchant service charges. - **Use a clearing account.** It lets you record gross revenue and book the fee separately while keeping the bank transfer clean. - **Cross-month refunds and eCheck holds** are the two most common reconciliation breaks. Timing matters. - **The 1099-K threshold is $20,000 and 200 transactions** for tax year 2025 forward. Taxable income is taxable either way. ## Two Steps, Not One: How PayPal Money Actually Moves Most people think of PayPal like a credit card terminal: customer pays, money shows up in the bank. That's not how it works. Here's the actual flow: 1. Customer pays $100. That $100 hits your**PayPal balance**, not your bank account. 2. You initiate (or schedule) a transfer to your checking account. 3. PayPal sends**$96.52** to your bank 1–3 business days later. Those are two separate events. Two separate accounting entries. Your PayPal account is an asset account. The bank is a different asset account. The transfer between them is a **transfer**: not income, not expense. Recording it as income is one of the most common PayPal bookkeeping errors, and it inflates revenue every time you move money. This same principle applies when you're reconciling [lump-sum bank deposits from payment processors](https://growthy.com/blog/reconcile-lump-sum-deposits-payment-processors). The deposit amount never equals the sale amount because fees came out first. ## The PayPal Bookkeeping Net-vs-Gross Trap (With Real Numbers) Here's the scenario that breaks most PayPal setups. You close a $200 sale through PayPal Checkout. PayPal charges 3.49% + $0.49. The fee comes to $7.47. Your bank receives $192.53. **The wrong approach:** record $192.53 as revenue. Your income is understated by $7.47. Your books show no fee expense. Your P&L is clean but wrong. **The right approach:** use a clearing account. Here's how it works. Set up a "PayPal Clearing" account as a current asset account. **Step 1: Record the sale** | | Account | Amount | | --- | --- | --- | | Dr | PayPal Clearing | $200.00 | | Cr | Sales Revenue | $200.00 | **Step 2: Record the fee** | | Account | Amount | | --- | --- | --- | | Dr | Merchant Fees Expense | $7.47 | | Cr | PayPal Clearing | $7.47 | **Step 3: Record the bank transfer** | | Account | Amount | | --- | --- | --- | | Dr | Bank Checking | $192.53 | | Cr | PayPal Clearing | $192.53 | After those three entries, your PayPal Clearing account nets to $0. Revenue shows $200. Fees show $7.47. Clean. For a deeper look at why gross vs net recording matters across all payment processors, see [gross vs net accounting for payment processors](https://growthy.com/blog/gross-vs-net-accounting-payment-processors). And if you want to know exactly where merchant fees belong in your chart of accounts, [payment processor fee classification](https://growthy.com/blog/payment-processor-fee-classification) covers it. ## Recording PayPal Fees PayPal's fee structure varies by product. The fixed per-transaction fee of $0.49 is consistent. The percentage depends on which PayPal product processed the payment: - **Goods & Services (standard domestic):** approximately 2.99% + $0.49 - **PayPal Checkout / Invoicing:** often 3.49% + $0.49 Because the rate depends on your product mix, the safest habit is to pull your PayPal monthly statement (available around the 10th of each month) and reconcile fees against the statement directly. Don't rely on estimates. In your chart of accounts, these go under **Merchant Service Charges** or **Payment Processing Fees**, not as deductions from revenue. Keeping them in an expense account gives you a clear view of processing costs and a deductible line on the books. For a full breakdown of how to classify these fees, see [payment processor fee classification](https://growthy.com/blog/payment-processor-fee-classification). ## Holds, Reserves, and Refunds ### Holds and Reserves PayPal holds funds for a few reasons: new accounts, high-volume spikes, and open disputes. A held balance sits in your PayPal account but can't be transferred. Track it in a sub-account or note so you don't treat it as available cash. When a hold releases, nothing changes on the income side. It's still a transfer when it moves to the bank. ### Refunds Record refunds against the original sale account. On the fee side, PayPal doesn't hand your full processing fee back when you refund a sale. It keeps at least the fixed $0.49 per transaction, and whether the percentage portion comes back isn't guaranteed. So a refund costs you the original fee. Leave the fee expense you already booked in place, and if PayPal does credit a portion back, reconcile that actual amount from your monthly statement instead of assuming. **Cross-month refunds** are where things get messy. A December sale refunded in January means the income and the refund land in different accounting periods. On accrual-basis books, you'll need a reversing entry in January that offsets the December income. On cash basis, the refund hits January. Either way, tie it back to the original transaction. ### Chargebacks and Disputes Don't remove the original income entry when a chargeback is filed. Create a "disputed transaction" holding account and move the funds there while the dispute is open. - If you**lose**: debit Sales Revenue (or the holding account) and credit the customer's refund path. - If you**win**: release the hold. No income entry changes. ## Multi-Currency: A Brief Note If you sell internationally, PayPal converts the foreign currency to USD at their exchange rate before sending the transfer. The USD you receive may differ from the sale amount at the rate you quoted. Book the difference as a foreign exchange gain or loss. Keep an FX Gains/Losses account if you process meaningful non-USD volume. PayPal includes a monthly FX statement. Reconcile against that, not against spot-rate estimates. ## Keeping Your PayPal Bookkeeping Current One of the messier parts of PayPal bookkeeping is volume. A busy month can produce dozens of fee lines, transfer entries, refunds, and holds, all mixed in with actual sales. That's where categorization becomes the bottleneck. Growthy suggests categories for your transactions. On first import, it's 85% accurate. You review the rest. When something's uncertain (a partial fee refund, a cross-month timing mismatch, a held-then-released amount) it asks instead of guessing. It runs as a standalone general ledger or connects over your existing QBO books. No migration required on day one. [Connect your PayPal account and see how many transactions actually need you.](/signup?utm_content=paypal-bookkeeping) The Stripe setup follows the same two-step logic described here. See [Stripe reconciliation guide for bookkeepers](https://growthy.com/blog/stripe-reconciliation-guide-bookkeepers) for a side-by-side comparison. ## Frequently Asked Questions **How do I set up PayPal as a bank account in QuickBooks?** Go to Chart of Accounts, create a new account, and select Bank as the account type. Name it "PayPal" or "PayPal Business Account." Connect the PayPal bank feed if available, or import transactions from PayPal's monthly statement CSV. Once it's a bank account, transfers to your checking account will be recorded as transfers, not income. That's the core of how to reconcile PayPal in QuickBooks: set it up as a bank account, then match it to the monthly statement. **Should I record PayPal income gross or net?** Gross. Record the full sale amount as revenue, then record the PayPal fee as a separate merchant service charge expense. Recording only the net amount understates your revenue and eliminates the fee deduction. **What account do PayPal fees go in?** Merchant Service Charges or Payment Processing Fees: an operating expense account. Don't net them against revenue. Keeping fees in their own expense category makes your processing costs visible and keeps your revenue line clean. **How do I reconcile PayPal when the transfer doesn't match the sales total?** Use a clearing account (see the journal entries above). The transfer to your bank will always be smaller than the sum of sales because PayPal deducted fees before sending it. The clearing account absorbs that difference so both accounts (PayPal and bank) can reconcile to their statements independently. **Does PayPal send a 1099-K?** Yes, if you exceed $20,000 in payments and 200 transactions in a calendar year (the threshold for tax year 2025 and forward under the One Big Beautiful Bill). Below that threshold you may not receive a 1099-K, but your income is still taxable. Keep your own records regardless. **How do I handle a PayPal refund in my books?** Debit Sales Revenue (or a refunds expense account) and credit PayPal Clearing for the gross sale amount. Leave the original fee expense in place: PayPal keeps at least the fixed $0.49 per transaction on a refund, so the fee is a real cost you've already booked. If any fee portion is credited back, record that actual amount from your statement. If the refund crosses a month boundary on accrual-basis books, post a reversing entry in the period the refund occurs. Reconciling PayPal balances, fees, and withdrawals is coming to [Growthy's monthly close](/features/monthly-close). [Categorization](/features/transaction-categorization) sends uncertain entries to your review today. ## References - PayPal Business Fees (official):[PayPal business fees](https://www.paypal.com/us/business/paypal-business-fees) (as of 2026-06-23) - NerdWallet, "PayPal Fees (2026)":[NerdWallet’s PayPal fees guide](https://www.nerdwallet.com/business/software/learn/paypal-fees) (as of 2026-06-23) - IRS, "IRS Issues FAQs on Form 1099-K Threshold Under the One Big Beautiful Bill":[IRS Form 1099-K FAQ](https://www.irs.gov/newsroom/irs-issues-faqs-on-form-1099-k-threshold-under-the-one-big-beautiful-bill-dollar-limit-reverts-to-20000) (as of 2026-06-23) --- ### [Bookkeeping With Square: Reconcile Payouts to Gross Sales](https://growthy.com/blog/square-bookkeeping): You ring up $1,200 in sales on Monday. Tuesday morning, $1,167.60 hits your bank account. Where did $32.40 go? Here's how to do Square bookkeeping right. You ring up $1,200 in sales on Monday. Tuesday morning, $1,167.60 hits your bank account. Where did $32.40 go? Square took it. That gap is processing fees, and if you just record the bank deposit as revenue, your books are wrong from day one. Revenue is understated, fees vanish, and month-end never ties out. Good Square bookkeeping means recording the full $1,200 as revenue, the $32.40 as an expense, and making sure the two entries balance. This article shows you exactly how, with journal entries you can use right now. It's part of the [payment reconciliation](https://growthy.com/topics/payment-reconciliation) cluster on proper processor accounting. ## How do you do bookkeeping with Square? Record each Square sale at its full gross amount as revenue, using a Square Clearing account. When the bank transfer lands, record the net deposit as cash and the processing fee as an expense, and credit the clearing account for the gross. Clearing returns to zero, and your books match both your sales and your bank statement. Here is the longer version. Square bookkeeping is the process of recording your Square transactions so gross sales hit your revenue account at full value and Square's processing fees land as a separate expense. Square never deposits the full sale amount. Its fees are deducted before funds are transferred to your linked bank account, with transfers as soon as the next business day, so what lands is the net amount (gross sales minus fees, and minus anything else netted out of that transfer). To keep the books accurate, you use a clearing account: record gross sales into the clearing account when they process, then record the bank deposit plus the fee expense when the transfer arrives. The clearing account zeros out after each settlement. Done right, your P&L shows real sales, real fee costs, and your bank balance matches your statement. ## Key Takeaways - **Square deposits the net amount, not gross sales.** The difference is Square's processing fee, plus anything else netted out of the transfer. - **In-person card transactions cost 2.6% + $0.15 per tap, dip, or swipe** on the Square Free plan. - **Online and invoiced card transactions cost 3.3% + $0.30** on the Square Free plan. - **A clearing account is the right fix.** Record gross sales to the clearing account, then match the bank deposit against it when the transfer lands. - **Square transfers as soon as the next business day.** Sales from Friday and the weekend often don't hit your bank until Monday, which creates open items at month-end. - **Retail sellers need COGS entries too.** Fee reconciliation and cost-of-goods are two separate journal entries, not one. --- ## Why Your Square Payout Never Matches Your Sales Every Square transaction costs you a fee. The exact rate depends on how the card is processed. On the Square Free plan: - **In-person (tap, dip, swipe):** 2.6% + $0.15 - **Online payments and invoices:** 3.3% + $0.30 (Square lists a separate Online API rate of 2.9% + $0.30) - **Keyed entry and card-on-file:** 3.5% + $0.15 Square pulls these fees before the transfer leaves, and it takes them out of the total amount of each transaction, including tax and tip. The deposit to your bank is the leftover. Cash, check, and other tender payments carry no Square fee. Square Plus and Square Premium list different card rates. See [how to classify payment processor fees](https://growthy.com/blog/payment-processor-fee-classification) if you want the full breakdown of where these line items belong in your chart of accounts. --- ## The Square Bookkeeping Net-vs-Gross Trap: Dollar Example and Journal Entries This is where most Square bookkeeping breaks down. People record the deposit. That makes the books look tidy, but it's wrong. ### A concrete example Say you have a busy Monday: eight in-person card sales totaling $1,200.00. Square's fee on each transaction: 2.6% + $0.15. On $1,200 across 8 transactions: - Percentage fee: $1,200 × 0.026 =**$31.20** - Per-transaction fee: 8 × $0.15 =**$1.20** - Total fee:**$32.40** - Net payout to your bank: $1,200.00 − $32.40 =**$1,167.60** If you record $1,167.60 as revenue, your income is $32.40 short. Do that every day for a month and the distortion compounds. Your P&L looks fine. Your bank reconciliation doesn't. ### The clearing account fix Use a "Square Clearing" account (set it up as a current asset). Here's how the entries flow. **Entry 1: Record gross sales when transactions process:** | | Account | Amount | | --- | --- | --- | | Debit | Square Clearing (Asset) | $1,200.00 | | Credit | Sales Revenue | $1,200.00 | **Entry 2: Record the bank deposit when Square transfers the funds:** | | Account | Amount | | --- | --- | --- | | Debit | Bank | $1,167.60 | | Debit | Square Processing Fees (Expense) | $32.40 | | Credit | Square Clearing (Asset) | $1,200.00 | After Entry 2, Square Clearing is at zero. Bank shows real cash. Revenue shows the full $1,200. Fees show the real cost. Everything ties. This is the same method used for Stripe and other processors. For a side-by-side comparison of the Stripe version, see [Stripe reconciliation for bookkeepers](https://growthy.com/blog/stripe-reconciliation-guide-bookkeepers). And if Square ever batches multiple days into one transfer, the [lump-sum deposit reconciliation](https://growthy.com/blog/reconcile-lump-sum-deposits-payment-processors) guide covers how to split it. For more on why recording gross vs net matters across every payment processor, see [gross vs net accounting for payment processors](https://growthy.com/blog/gross-vs-net-accounting-payment-processors). --- ## Square Settlement and Payout Timing for Your Books Square offers transfers as soon as the next business day. Process sales on Monday, and the money can land Tuesday. The timing issue that bites bookkeepers: month-end. Say the last business day of a month is a Friday and you process sales that day. That transfer lands the following Monday, in the next month. The sale belongs in the first month. The cash belongs in the second. Your clearing account handles this naturally. The debit to Square Clearing sits open until the bank transfer arrives. At month-end, your clearing account balance tells you exactly what's in transit. Don't close the period until you've verified those items, or record them as "outstanding transfers" so the balance sheet is accurate. Make it a monthly habit: match each Square transfer on your bank statement to the corresponding clearing account entry, and list whatever is still open. --- ## Cash, Tips, and Sales Tax Collected ### Cash sales If you accept cash through Square's POS, the recording is simpler. There's no payout timing gap and no processing fee. Record cash sales directly to your bank or petty cash account, then to revenue. ### Tips Square's close of day and team member shift reports show team member tip payouts. Tips you collect for your staff need separate treatment from your own sales. Confirm how to book them with your tax preparer before you post the entries. ### Sales tax collected Sales tax you collect from customers is not your revenue and not your expense. It's a pass-through. One catch: Square's processing fee is figured on the total transaction, including the tax, so the fee on that portion is still your expense. Record the tax to a Sales Tax Payable liability when collected. When the tax is remitted to the state, debit Sales Tax Payable and credit the bank. That account returns to zero and never touches your income statement. If you're syncing Square to QuickBooks or Xero, see [Square QuickBooks and Xero integration](https://growthy.com/blog/square-quickbooks-xero-integration) for how the data maps and where the sync typically breaks down. --- ## COGS for Retail Square Sellers The fee reconciliation above handles the payment side. If you sell physical products, you also need to record cost of goods sold. When a product sells, two things happen at once: revenue goes up, and inventory goes down. | | Account | Amount | | --- | --- | --- | | Debit | COGS | cost of item | | Credit | Inventory | cost of item | Keep these entries separate from your clearing account entries. They're two different accounting events: one tracks what you earned, the other tracks what it cost you to earn it. Square's close of day reports show category and item sales, so you can see what sold and in what quantity. That report is your source for COGS entries if you don't have inventory software feeding them automatically. --- ## A Faster Way to Handle Square Bookkeeping The clearing account method is correct. It's also manual work, especially once you're processing dozens or hundreds of transactions a day. Growthy scores its confidence on every categorization. You review the ones it's uncertain about, so the hard calls get a human decision. It pulls bank feeds through Plaid and syncs categorizations both ways with QuickBooks Online. Every categorization keeps an audit history, so you can see what changed and when. Keep using the clearing account entries from this guide in QuickBooks Online. Growthy handles the categorization side of the work. See how [transaction categorization](/features/transaction-categorization) fits into your [month-end close](/features/monthly-close). **Start recording Square payouts correctly today:** [Get started with Growthy](/signup?utm_content=square-bookkeeping) --- ## Frequently asked questions ### How do I do bookkeeping with Square? Record each sale at its gross amount to a clearing account, with the credit going to revenue. When Square's transfer hits your bank, debit the bank for the net deposit and debit a fee expense for the difference. Credit the clearing account for the gross. It should zero out after each settlement. ### Why does my Square deposit not match my sales? Square deposits the net amount. Its processing fees are deducted before funds are transferred to your bank, and anything else netted from the transfer lowers it further. Record gross sales to a clearing account, then match the bank deposit and fee expense against it when the transfer arrives. ### What Square processing fees should I use in my books? Use the rates from your Square account. Square's published Square Free rates are: tap, dip, or swipe, 2.6% + $0.15; online and invoices, 3.3% + $0.30; manual entry or card on file, 3.5% + $0.15. Your actual fees differ if you're on Square Plus or Square Premium, which list different rates. ### Does Square issue a 1099-K? The One, Big, Beautiful Bill retroactively reinstated the pre-2021 threshold, per IRS news release IR-2025-107. Third party settlement organizations don't have to file a Form 1099-K unless the gross amount of reportable payments to you exceeds $20,000 and the number of transactions exceeds 200. Either way, build your books from Square's own sales reports, not from the 1099-K. ### How do I record Square tips in my books? Square's close of day and team member shift reports show team member tip payouts, so each one is easy to find. Tips you collect for your staff need separate treatment from your own sales revenue. Don't guess at the entries. Confirm how to book them with your tax preparer, and keep the Square tip reports with your monthly records so the numbers are easy to check. ### What is a Square clearing account? A clearing account is a temporary account, usually set up as a current asset, that holds your gross sales amount between the transaction date and the bank transfer date. When Square's transfer hits your bank, you debit the bank, debit the fee expense, and credit the clearing account. It should zero out after every settlement cycle. ### Can I sync Square with QuickBooks or Xero instead? You can sync through a connector. How well it handles the gross-vs-net split depends on the connector you use. Review [Square QuickBooks and Xero integration](https://growthy.com/blog/square-quickbooks-xero-integration) before assuming the sync records fees correctly. If it doesn't split fees from gross sales, you still need the clearing account entries from this guide. --- ## References - Square Pricing:[Square pricing](https://squareup.com/us/en/pricing) - NerdWallet, "Square Fees 2026":[NerdWallet’s Square fees guide](https://www.nerdwallet.com/business/software/learn/square-fees) - Beacon Payments, "Square Is Increasing Their Online Processing Fees":[Beacon Payments’ Square processing-fee analysis](https://www.beaconpayments.com/blog/square-is-increasing-their-online-processing-fees-why-now-is-the-right-time-to-re-evaluate-your-processing-costs-with-beacon-payments) - IRS FAQ, Form 1099-K Threshold Under the One Big Beautiful Bill (IR-2025-107):[IRS Form 1099-K FAQ](https://www.irs.gov/newsroom/irs-issues-faqs-on-form-1099-k-threshold-under-the-one-big-beautiful-bill-dollar-limit-reverts-to-20000) --- ### [Ecommerce Bookkeeping: The Complete Guide](https://growthy.com/blog/ecommerce-bookkeeping): A $18,432 deposit lands in your bank from Shopify. It looks like a great month. It isn't income, and the difference is what ecommerce bookkeeping is really about. A $18,432 deposit lands in your bank from Shopify. It looks like a great month. It isn't income, and the difference is what ecommerce bookkeeping is really about. That number is what's left after Shopify took its processing fees, after refunds went back to customers, after a chargeback, and after the sales tax your buyers paid. That tax is money you now owe a state, not money you earned. The deposit hides all of it. One line on your bank feed, six different things bundled inside. That gap is the whole job. Ecommerce bookkeeping isn't "sales in, expenses out." It's taking apart every payout, tracking inventory as it turns into cost of goods sold, and handling sales tax across the states you sell into. Then doing it again next payout, on every channel. This guide is for two people. The first is the seller keeping their own books for the first time. The second is the bookkeeper running 10 to 30 ecommerce clients who needs a method that repeats. Each of you can skip to the sections that fit. The seller wants the method per platform. The bookkeeper wants the repeatable close. Both start with the same idea: the deposit is not the sale. > **What is ecommerce bookkeeping?** > > Ecommerce bookkeeping is the practice of recording an online store's money correctly. You break each platform payout into its parts (gross sales, processing fees, refunds, shipping, and sales tax collected), track inventory as it becomes cost of goods sold, and manage sales tax across every state where you have nexus. It differs from regular bookkeeping in one way that drives everything else: platforms like Shopify and Amazon deposit net settlements, not revenue. A single bank deposit can bundle hundreds of orders and six kinds of deductions. Good ecommerce bookkeeping takes those deposits apart, posts each piece to the right account, and keeps the books matched to what actually happened. Done right, your profit and loss shows real margin and your balance sheet ties out. ## Key Takeaways - **One deposit is not one sale** - a single Shopify payout can bundle 100 or more orders, fees, refunds, and sales tax into one bank line that hides all of it. - **Payouts are net, revenue is gross** - booking the $18,432 you received as revenue understates your real sales and buries fees in the wrong place. - **Inventory forces accrual thinking** - cost of goods sold belongs to the month you sell a unit, not the month you bought it, so cash basis hides your true margin. - **Sales tax collected is a liability, not income** - the tax your buyers pay is money you owe a state, and economic nexus can reach you in many states from one store. - **Clearing accounts are the method** - route every payout through a per-processor clearing account and decompose from there. If it doesn't return to zero, something's missing. - **Growthy categorizes, you confirm** - 85% accurate on first import, and you review the rest. It's a third option next to spreadsheets and the standard A2X-to-QuickBooks stack. ## What Makes Ecommerce Bookkeeping Different Bookkeeping for ecommerce breaks from regular small-business bookkeeping in two structural ways. Get these two right and most of the rest follows. The first is payout reconciliation. A brick-and-mortar shop runs one register. One day of sales becomes one deposit, and the deposit roughly equals the sales. An online store works nothing like that. The platform holds your money for a payout period, nets out its fees, subtracts refunds, and sends you what's left. The deposit and the sales are two different numbers. Your job is to rebuild the sales number from the deposit. The second is fee decomposition. Every platform deducts before it pays. Shopify takes a processing fee. Amazon takes a referral fee, a fulfillment fee, storage, and more. Stripe and PayPal take a percentage plus a fixed amount per charge. None of it shows on your bank statement as a separate line. It's already gone by the time the money moves. If you don't pull it back out, your revenue is wrong and your expenses are invisible. Two more traits make ecommerce harder. Inventory means your cost of goods sold and your cash leave at different times, which we cover below. And multi-channel selling means one business can have four payout streams with four fee structures, all landing in the same bank account. Here is the contrast in one table. | | Brick-and-mortar | Ecommerce | | --- | --- | --- | | One deposit equals | One day of sales | A payout period of many orders, net of fees | | Fees | Card fee, visible | 2 to 6 fee types, deducted before payout | | Revenue source | Register total | Platform settlement report, not the bank | | Sales tax | One state, usually | Many states, by economic nexus | | Inventory | Often simple | Drives COGS timing and margin | This is why a good ecommerce bookkeeper doesn't start from the bank feed. They start from the platform's settlement report and work toward the deposit. The rest of this guide is the method for doing that, platform by platform. For the wider picture of statements, software, and firm-level setup, see our guide to [ecommerce accounting](/topics/ecommerce-accounting). This piece stays on the bookkeeping: the actual entries. ## Cash vs Accrual: Which Method for an Ecommerce Business Most new sellers start on cash basis because it's simple. Money in, money out. For a service business with no inventory, that's often fine. For an ecommerce business that holds stock, cash basis lies to you. Here's why. Say you buy $40,000 of inventory in March and sell it over April, May, and June. On cash basis, March shows a $40,000 expense and almost no sales. March looks like a disaster. Then April through June look amazing because the cost already cleared. Neither picture is real. You didn't lose money in March, and you weren't pure profit in June. Here's the swing, assuming you sell that inventory for $70,000 spread evenly across the three months. | Month | Cash basis profit | Accrual profit | | --- | --- | --- | | March | ($40,000) | $0 | | April | $23,333 | $10,000 | | May | $23,333 | $10,000 | | June | $23,333 | $10,000 | Cash basis swings from a $40,000 loss to three huge months. Accrual shows the truth: about $10,000 of profit each month you actually sell, because COGS rides along with the sale. Accrual fixes the timing. Under accrual, the $40,000 sits on your balance sheet as inventory, an asset. As you sell each unit, its cost moves from inventory into cost of goods sold, matched to the sale that earned the revenue. Now each month shows real margin. Inventory is the thing that forces accrual thinking, because cash and cost separate the moment you stock up. ### When the IRS lets you choose For tax, the rules give small businesses room. Under the gross receipts test in Section 448(c) of the tax code, a business is a "small business taxpayer" for tax year 2026 if its average annual gross receipts for the prior three years are $32,000,000 or less. That figure is inflation-adjusted each year. It is **$32 million for 2026**, set by Revenue Procedure 2025-32. Do not rely on older articles that say $25 million or $30 million. Under that threshold, two related rules help ecommerce sellers. Section 471(c) lets a small business skip formal inventory accounting and treat inventory as non-incidental materials and supplies. Section 263A lets the same business skip the uniform capitalization rules that would otherwise pull more overhead into inventory cost. In plain terms: a small online store may be allowed to use the cash method for tax and still get a reasonable inventory result. That's the tax method. It is a separate question from how you run your own books. Here's the practical split: | Your situation | Internal books | Tax method | | --- | --- | --- | | New, low volume, little or no inventory | Cash is fine | Cash, if under the threshold | | Holding real inventory, want true margin | Accrual | Cash may still be allowed, but accrual gives a cleaner match | | Scaling, raising, or near $32M receipts | Accrual | Accrual likely required | The honest answer most sellers need: run accrual on your internal books once you hold inventory, because that's the only way to see real margin, and let your CPA decide the tax election. Changing your tax accounting method is a formal filing, usually Form 3115, not something you flip in a spreadsheet. Confirm the election with your accountant before you rely on it. ## Chart of Accounts for an Ecommerce Business The chart of accounts is what makes payout reconciliation possible. Build it wrong and every deposit becomes a guessing game. Build it right and decomposition is mechanical. Five things matter for an ecommerce chart of accounts. Separate income accounts. Keep gross product sales apart from shipping income. Use a contra-income account for discounts and refunds so they reduce revenue instead of hiding as expenses. A clearing account per processor. This is the linchpin. Create one holding account for each payment source: Shopify Payments Clearing, Amazon Settlement Clearing, Stripe Clearing. Payouts land in clearing, you decompose from there, and clearing returns to zero. More on this in the next section. Cost of goods sold, separate from inventory. Inventory is an asset on the balance sheet. COGS is the expense that records when you sell. They are different accounts, and the movement between them is the heart of inventory accounting. Merchant fees and shipping, split correctly. Processing fees are an expense. Shipping you charge customers is income. Shipping you pay carriers is an expense. Keep all three apart or your margin blurs. Sales tax payable, as a liability. The tax you collect is never income. It's a liability you hold until you remit it to the state. A single wrong setup here, booking collected tax as sales, is one of the most common and most expensive mistakes in ecommerce books. If you sell on more than one channel, set up class or location tracking now, before the volume grows. It costs nothing today and saves a rebuild later. Here's a starter chart of accounts for an ecommerce store. Adjust names to your platform, but keep the structure. | Type | Account | | --- | --- | | Income | Product Sales | | Income | Shipping Income | | Contra-income | Sales Refunds and Discounts | | Income | Amazon Reimbursements | | Asset | Inventory | | Asset | Shopify Payments Clearing | | Asset | Amazon Settlement Clearing | | Asset | Stripe Clearing | | Asset | Amazon Reserve | | Expense | Cost of Goods Sold | | Expense | Merchant Processing Fees | | Expense | Amazon Referral Fees | | Expense | FBA Fulfillment and Storage Fees | | Expense | Advertising | | Expense | Shipping Expense | | Liability | Sales Tax Payable | | Liability | Tips Payable | | Liability | Gift Card Liability | For a deeper account-by-account walkthrough, see our [chart of accounts](https://growthy.com/topics/chart-of-accounts) reference and the platform setup notes in [categorize Shopify transactions](https://growthy.com/blog/categorize-shopify). ## Payout Reconciliation, Platform by Platform This is the method every competitor names and almost none shows. It is also where ecommerce books are won or lost. We're going to walk three platforms with real numbers and the actual entries. The fee rates below are illustrative, because platforms change them and they vary by plan and category. Check your current rates in your own dashboard. The method does not change. The pattern is always the same. The payout lands in a clearing account. You post the gross sales and every deduction against that clearing account. The clearing account returns to zero. If it doesn't, you missed something, and that missing piece is usually the whole point. ### Shopify Payments Start with the $18,432 deposit from the top of this guide. That is one Shopify payout. Its period closed on Shopify's own schedule, which is not your calendar month. (Reconciling Shopify by calendar month is a common source of gaps, because the payout cycle and the month rarely line up.) Pull the Shopify payout report for that period. It shows the real components. Here is what made up the $18,432. | Component | Amount | | --- | --- | | Gross product sales | $17,950 | | Shipping charged to customers | $980 | | Sales tax collected | $1,420 | | Total charged to customers | $20,350 | | Less: refunds | ($900) | | Less: Shopify processing fees | ($858) | | Less: a chargeback | ($160) | | Net deposit to bank | $18,432 | The customer paid $20,350. You received $18,432. The $1,918 difference is refunds, fees, and a chargeback, and none of it is on your bank feed. Book the deposit as revenue and three things break. You record $18,432 of sales when your real product and shipping revenue was $18,930. You hide $858 of fees that never reach your books as an expense. And you bury $1,420 of sales tax that you owe a state, not income you earned. Now the entries, using the Shopify Payments Clearing account. Three steps. Step 1, record the sales activity from the payout report into clearing. | Account | Debit | Credit | | --- | --- | --- | | Shopify Payments Clearing | $20,350 | | | Product Sales | | $17,950 | | Shipping Income | | $980 | | Sales Tax Payable (liability) | | $1,420 | Step 2, record the deductions against clearing. | Account | Debit | Credit | | --- | --- | --- | | Sales Refunds (contra-income) | $900 | | | Merchant Processing Fees | $858 | | | Chargebacks | $160 | | | Shopify Payments Clearing | | $1,918 | Step 3, record the bank deposit. | Account | Debit | Credit | | --- | --- | --- | | Cash (bank) | $18,432 | | | Shopify Payments Clearing | | $18,432 | Now check the clearing account. It was debited $20,350 and credited $1,918 plus $18,432, which is $20,350. It nets to zero. That zero is your proof the payout is fully decomposed. Every dollar is in the right account: real revenue in sales, fees in fees, the tax you owe in a liability, and the cash in the bank. One more Shopify trap. Shopify Capital advances are a loan. They land in your bank looking like a deposit, but they are a liability, not revenue. Book them to a loan account, not to sales. ### Why Shopify bookkeeping breaks on calendar months Shopify bookkeeping has one timing quirk worth naming on its own. Payout periods don't line up with your calendar month. A payout might cover sales from the 28th through the 3rd, straddling month-end. Force every payout into the month it deposited and you split a sale from its fees, or land revenue in the wrong month. The fix is to reconcile by payout period, then make one month-end adjustment for sales that happened in the month but haven't paid out yet. Those sit in your Shopify Payments Clearing account at month-end as a positive balance, which is correct: the sale is earned, the cash just hasn't arrived. That clearing balance is your in-transit revenue, and it clears when the next payout lands. ### Amazon FBA Amazon FBA bookkeeping is the hardest of the three, and the rule that saves you is simple: build the books from the settlement report, not the bank statement. Amazon settles roughly every 14 days and the settlement report is the source of truth. The bank deposit is just the leftover. A single FBA settlement can carry six or more fee types: referral fees, fulfillment fees, storage fees, advertising, refunds, and reserves. Here's one settlement decomposed. | Component | Amount | | --- | --- | | Product sales | $24,600 | | Shipping credits | $310 | | Promotional rebates | ($140) | | Referral fees | ($3,690) | | FBA fulfillment fees | ($2,210) | | Storage fees | ($180) | | Advertising (sponsored products) | ($1,050) | | Refunds | ($620) | | Reserve held by Amazon | ($1,500) | | Net deposit to bank | $15,520 | The entries run through Amazon Settlement Clearing, same pattern as Shopify. | Account | Debit | Credit | | --- | --- | --- | | Amazon Settlement Clearing | $24,910 | | | Product Sales | | $24,600 | | Shipping Income | | $310 | Then the deductions: | Account | Debit | Credit | | --- | --- | --- | | Promotional Rebates (contra-income) | $140 | | | Referral Fees | $3,690 | | | FBA Fulfillment Fees | $2,210 | | | Storage Fees | $180 | | | Advertising Expense | $1,050 | | | Sales Refunds | $620 | | | Amazon Settlement Clearing | | $7,890 | The reserve is not an expense and not lost. It's cash Amazon is holding that you'll get later. Move it to a reserve account, an asset. | Account | Debit | Credit | | --- | --- | --- | | Amazon Reserve (asset) | $1,500 | | | Amazon Settlement Clearing | | $1,500 | Finally the deposit: | Account | Debit | Credit | | --- | --- | --- | | Cash (bank) | $15,520 | | | Amazon Settlement Clearing | | $15,520 | Check clearing: debited $24,910, credited $7,890 plus $1,500 plus $15,520, which is $24,910. Zero again. Two more lines show up on Amazon settlements that sellers fumble. Reimbursements come when Amazon loses or damages your inventory in its warehouses. A reimbursement is income, but it isn't a product sale, so book it to its own account (Amazon Reimbursements) instead of burying it in sales. The reserve releases on a later settlement. The $1,500 Amazon held this period usually comes back over the next settlement or two. When it does, you reverse it: debit cash, credit the Amazon Reserve asset. That account should trend toward zero. If it climbs and never releases, dig in. Now the cost Amazon never shows you. Say you shipped 300 units this settlement at a landed cost of $14 each. That's a separate $4,200 entry, tied to the units that left the warehouse, not to the payout. | Account | Debit | Credit | | --- | --- | --- | | Cost of Goods Sold | $4,200 | | | Inventory | | $4,200 | Two things sellers get wrong here. The reserve balance is not cash you can spend, so don't treat it as available funds. And notice what's missing from the whole settlement: cost of goods sold. COGS isn't on the Amazon report at all. It follows the units you shipped, recorded from your inventory records, not from the payout. We handle that next. ### Stripe, PayPal, and Square These processors share one trait that makes the net-vs-gross trap sharpest: they deposit net of a percentage fee plus a fixed amount per transaction, and the deposit looks clean. It's tempting to just book it as revenue. Don't. Take a month of Stripe charges. | Component | Amount | | --- | --- | | Gross charges (about 200 transactions) | $12,000 | | Less: Stripe fees | ($408) | | Less: refunds | ($300) | | Net deposited | $11,292 | If you book $11,292 as sales, you've understated revenue by $708 and you have no record of the $408 you spent on processing. Over a year that's thousands of dollars of fees that never hit your profit and loss. The entries fix it through a Stripe Clearing account. | Account | Debit | Credit | | --- | --- | --- | | Stripe Clearing | $12,000 | | | Product Sales | | $12,000 | | Account | Debit | Credit | | --- | --- | --- | | Stripe Fees | $408 | | | Sales Refunds | $300 | | | Stripe Clearing | | $708 | | Account | Debit | Credit | | --- | --- | --- | | Cash (bank) | $11,292 | | | Stripe Clearing | | $11,292 | Clearing nets to zero: $12,000 in, $708 plus $11,292 out. PayPal works the same way, with its own fee structure and the added wrinkle that PayPal balances can sit in PayPal before you sweep them to your bank, so the PayPal account itself is a cash account you reconcile. Square adds two things. It batches daily, so you reconcile by batch, not by month. And it handles tips and cash-versus-card splits, where tips are usually a passthrough liability, not your revenue. Here's the Square tip handling. A customer pays $50 plus a $10 tip. The $10 isn't your income. It's money you owe an employee, so book it as a liability. | Account | Debit | Credit | | --- | --- | --- | | Square Clearing | $60 | | | Product Sales | | $50 | | Tips Payable (liability) | | $10 | PayPal carries its own trap. Money can sit in your PayPal balance for days before you move it to your bank. Treat the PayPal account itself as a cash account, reconcile it like a bank account, and record the sweep to your bank as a transfer between two cash accounts, not as new revenue. This net-versus-gross handling is exactly the "Difficult 20%" that trips up automated tools. For a deeper look, see [gross vs net accounting for payment processors](https://growthy.com/blog/gross-vs-net-accounting-payment-processors) and the [Stripe reconciliation guide for bookkeepers](https://growthy.com/blog/stripe-reconciliation-guide-bookkeepers). ## Inventory and COGS for Ecommerce Inventory is the bucket most sellers get wrong, and it costs them real money in tax and in decisions. The core rule is one sentence: cost of goods sold records when you sell a unit, not when you buy it. When you buy stock, the money leaves your bank, but the cost does not become an expense yet. It sits in inventory, an asset. Only when a unit sells does its cost move from inventory into COGS, matched against the sale. This is the same accrual idea from earlier, applied to stock. Buy 1,000 units in one month and sell them over six, and your COGS spreads over those six months, not the one you bought in. ### FIFO vs weighted-average When you buy the same product at different prices over time, you need a rule for which cost goes to COGS first. The two common methods are FIFO and weighted-average. They give different numbers, and the difference is your reported profit. Say you bought 1,000 units in three lots as prices rose: | Lot | Units | Cost per unit | Total | | --- | --- | --- | --- | | 1 | 400 | $10 | $4,000 | | 2 | 300 | $12 | $3,600 | | 3 | 300 | $15 | $4,500 | | Total | 1,000 | | $12,100 | You sell 600 units at $25 each, which is $15,000 in revenue. Watch what each method does to your margin. FIFO (first in, first out) sends the oldest costs to COGS first: 400 units at $10 plus 200 units at $12, which is $6,400. Your gross profit is $15,000 minus $6,400, or $8,600. Ending inventory is $5,700. Weighted-average uses the blended cost of $12.10 per unit ($12,100 divided by 1,000). COGS is 600 times $12.10, or $7,260. Your gross profit is $15,000 minus $7,260, or $7,740. Ending inventory is $4,840. | Method | COGS | Gross profit | Margin | | --- | --- | --- | --- | | FIFO | $6,400 | $8,600 | 57.3% | | Weighted-average | $7,260 | $7,740 | 51.6% | Same units, same sales, $860 difference in reported profit. In a rising-cost period, FIFO shows higher profit because it expenses the older, cheaper units first. Weighted-average smooths the cost. Neither is wrong. You pick one, you stay consistent, and you understand which one you're reading. ### Recording the COGS entry The method numbers above aren't just for reading. They become a journal entry. When you sell the 600 units under FIFO, you move $6,400 from inventory to cost of goods sold. | Account | Debit | Credit | | --- | --- | --- | | Cost of Goods Sold | $6,400 | | | Inventory | | $6,400 | This entry is separate from every payout entry earlier in this guide. None of the Shopify, Amazon, or Stripe payouts touched COGS. The payout records the sale and the fees. This entry records the cost of the goods that sale consumed. Two different events, often on two different days. Tie them to the same sale and your margin is real. Skip this entry and your profit and loss shows revenue with no cost behind it, which is the fastest way to think you're more profitable than you are. ### Three more things that change your COGS Periodic vs perpetual. Periodic means you count inventory at the end of a period and back into COGS. Perpetual means you update inventory with every sale. Most ecommerce tools support perpetual, which gives you live margin. Periodic is simpler but you fly blind between counts. Landed cost. Your unit cost is not just the product price. It includes freight in, duties, and inbound handling. Buy a unit at $10 but pay $2 in freight and duty, and your real cost is $12. Sellers who book only the $10 overstate their margin by 20% and never know it. Always cost inventory at landed cost. Returns and shrinkage. Returned units that go back into sellable stock reverse the COGS and restore the inventory. Damaged, lost, or stolen units are shrinkage, a real expense. Both have to hit the books or your inventory balance drifts away from what's on the shelf. ### Returns, restocks, and in-transit inventory A return has two halves. The refund reverses the revenue, and if the item comes back sellable, you also reverse its cost: move it from cost of goods sold back into inventory. Skip the second half and your inventory count is short while your COGS is overstated. If the returned item is damaged and can't be resold, the refund still reverses revenue, but the cost stays in COGS as a real loss. In-transit inventory is stock you've paid for but haven't received. You wire a supplier $20,000 for goods on a boat. That's not an expense and it's not on your shelf yet. Book it to an in-transit inventory account, an asset, and move it to regular inventory when it lands. Sellers who expense the wire the day it leaves understate inventory and overstate costs for a month or more. Bundles and kits need their own handling. If you sell three products as one kit, the kit's cost of goods sold is the sum of its components' costs, and your inventory has to relieve each component, not a single bundle SKU. Stores that track only the bundle lose sight of which components are running low and miscount what's on the shelf. For tax method and inventory rules, the IRS covers this in Publication 334 and Publication 538, and the small-business inventory treatment comes from Section 471(c) discussed earlier. The valuation methods themselves (FIFO and weighted-average) come from generally accepted accounting principles. Inventory is also the area where a quick call with your CPA pays for itself, because the method choice has a tax effect and is not always free to change later. ## Sales Tax and Economic Nexus for Ecommerce Sales tax is the part of ecommerce bookkeeping most likely to create a real liability you didn't see coming. It is also the area where the rules change the most, so treat every number here as a starting point and verify your own states. The rule that created the problem is the 2018 Supreme Court case, South Dakota v. Wayfair. Before Wayfair, you owed sales tax only in states where you had a physical presence. After Wayfair, states can require you to collect based on economic activity alone. That's "economic nexus." Cross a state's sales or transaction threshold and you have to register, collect, and remit there, even if you've never set foot in the state. Here is the part that surprises sellers. Thresholds vary by state, and they're moving. Most states use a $100,000 sales threshold. Many states used to add an "or 200 transactions" rule, but a growing number have dropped that transaction count because 200 small orders is not the same burden as $100,000 in sales. As of early 2026, more than a dozen states have removed the transaction-count prong, including Illinois (effective January 1, 2026) and Alaska (2025), with Kentucky following in August 2026. Because this keeps changing, do not rely on a universal "$100k or 200 transactions" number. Check each state's current rule. A maintained reference like the Sales Tax Institute economic nexus state guide (accessed June 2026) is a good starting point, but your state's department of revenue is the final word. One Shopify store selling nationwide can cross economic-nexus thresholds in a dozen or more states in a single year. Each one is a separate registration and filing obligation. Marketplace facilitator laws change the math for some channels. In most states, Amazon and Walmart are "marketplace facilitators," which means they collect and remit sales tax on your behalf for sales made through their marketplace. Your direct sales, like your own Shopify store, are still yours to handle. So you can owe nothing on your Amazon sales in a state while still owing on your Shopify sales there. Track the two separately. The workflow is register, then collect, then file on the state's cadence (monthly, quarterly, or annually based on volume). Tools that help include Stripe Tax, TaxJar, Anrok, and Avalara, named here without endorsement. None of them removes your responsibility to know where you have nexus. ### Recording collected tax and remitting it Sales tax moves through your books as a liability, start to finish. Remember the $1,420 of tax in the Shopify payout above. When you booked the payout, that $1,420 went to Sales Tax Payable. It never touched income. When you remit it to the state, you clear the liability. | Account | Debit | Credit | | --- | --- | --- | | Sales Tax Payable | $1,420 | | | Cash (bank) | | $1,420 | The balance in Sales Tax Payable at any moment is what you owe states but haven't paid yet. If that account is growing and you haven't filed, that's a red flag, not extra cash. Sellers who book collected tax as sales make their revenue look bigger and then have nothing set aside when the filing comes due. This is genuinely a "talk to a sales-tax professional" area, especially once you're selling in many states. Getting it wrong builds a liability quietly, with interest and penalties, until a state notices. For a related deep dive, see our explainer on [how economic nexus works](https://growthy.com/blog/sales-tax-nexus-for-saas-startups). ## Multi-Channel Attribution Most growing stores end up on more than one channel. One business might sell on Shopify, Amazon, Etsy, and wholesale at the same time. That's four payout streams, four fee structures, and four reconciliation cadences, all landing in one bank account. If all of it dumps into a single "sales" account, you lose the one number that matters most: channel-level margin. A channel can look fine in the blended total and still lose money once its fees come out. Amazon's referral and FBA fees can run 25% to 40% of the sale price. Your Shopify margin on the same product can be much higher. Blend them and the strong channel hides the weak one. Here's the same $40 product sold three ways. Watch the margin move. | | Shopify | Amazon FBA | Wholesale | | --- | --- | --- | --- | | Sale price | $40.00 | $40.00 | $22.00 | | Product cost (COGS) | $14.00 | $14.00 | $14.00 | | Processing fee | $1.46 | | | | Referral fee | | $6.00 | | | FBA fulfillment | | $5.50 | | | Net profit per unit | $24.54 | $14.50 | $8.00 | | Margin | 61% | 36% | 36% | Same product, same cost, three different outcomes. Blended into one sales account, you'd see an average and miss that Amazon keeps barely more than half of what Shopify does after fees. With class tracking, this table is just a filtered profit and loss, and it tells you where to send inventory and ad spend. The fix is class or location tracking, one class per channel. Tag every sale, every fee, and every refund to its channel. Now your profit and loss can show Amazon, Shopify, and wholesale side by side, each with its own real margin. That's how you decide where to push inventory and ad spend, and which channel to fix or drop. This is also the point where doing it by hand stops scaling. Four channels times monthly payouts times every fee type is a lot of decomposition. You need a system that keeps each channel separate without you rebuilding the work every month. ### A note on selling internationally If you sell in more than one currency, each sale records in your home currency at the exchange rate on the day it happened. When the payout converts and lands, the rate has usually moved, and that difference is a foreign-exchange gain or loss, a separate line, not a change to your sales. Platforms also charge a currency-conversion fee, which is another processing cost. The rule holds: the sale, the fee, and the exchange difference are three different things, and each belongs in its own account. ## DIY vs Software vs Bookkeeper vs Growthy There's no single right way to keep ecommerce books. There's a right way for your stage. Here are the real options, honestly. ### Spreadsheets Free, flexible, and fine at very low volume. They break the moment payouts get complex or channels multiply. If you're reconciling settlement reports by hand in a spreadsheet, you've outgrown it. ### Ecommerce bookkeeping software: the standard stack The common answer the industry recommends is a connector like A2X, Link My Books, or Synder feeding into QuickBooks Online or Xero. The connector pulls the platform settlement, splits it into sales, fees, and refunds, and posts a clean summary to your general ledger. This works, and for many sellers it's the right setup. We link to a fuller [ecommerce accounting software](https://growthy.com/blog/best-ecommerce-accounting-software) comparison for the details. ### Ecommerce bookkeeping services: done-for-you A bookkeeper or agency does it all for a monthly fee. The right call when you'd rather run the business than the books. The cost is real, often several hundred dollars a month and up, and the quality varies a lot, so know what you're buying. ### Where Growthy fits Growthy is a third mechanism, not another connector. It suggests categories for your transactions and you review the rest. It's 85% accurate on first import. You can run it as a layer over QuickBooks Online, or as a standalone general ledger if you'd rather not keep QuickBooks at all. The point isn't "set it and forget it." It tells you what it isn't sure about and asks. Think of it through one lever: cut errors at the same cost, or cut cost at the same quality. You choose which. See current [pricing](https://growthy.com/pricing). ### When to hire an ecommerce bookkeeper You've outgrown DIY when reconciling payouts eats hours you should spend on the business, when you've fallen behind on sales-tax filings, or when you can't answer "what's my margin by channel" without a half-day of work. When you hire an ecommerce bookkeeper, make sure they already know the things in this guide. A good one talks fluently about settlement reports, clearing accounts, and economic nexus before you bring them up. The red flags: they reconcile from the bank statement instead of the platform report, they book deposits as revenue, or they can't explain how they track your inventory. Those are the exact mistakes that quietly wreck ecommerce books. If you run a firm and want a tool built for many clients, see our notes on [bookkeeping software for multi-client firms](https://growthy.com/blog/best-bookkeeping-software-multi-client-firms). ## For Bookkeepers: Running Ecommerce Clients at Scale Most bookkeepers hit a ceiling around 15 to 25 clients. It's not a skill limit. It's a time limit. And ecommerce clients are the most time-expensive ones you have, because every client means payout decomposition, times every channel, times every month. Three ecommerce clients can eat the hours of ten simple service businesses. That's the labor wall. The way through it is a repeatable method, not more hours. Here's a per-client monthly close that works the same way every time. 1. Confirm the feeds. Bank, Shopify, Amazon, Stripe, and any other channel are connected and current. 2. Pull the settlement and payout reports for the period. Not the bank statements. The platform reports are the source of truth. 3. Reconcile each payout through its clearing account. Decompose to sales, fees, refunds, and tax collected, the same way we did above. Confirm each clearing account returns to zero. 4. True up inventory and COGS. Record units shipped at landed cost. 5. Review sales tax. Collected tax is a liability, and check whether the client crossed nexus anywhere new. 6. Categorize the rest and flag what's unclear instead of guessing. 7. Scan the balance sheet. A clearing account that never returns to zero is the tell that a payout is half-recorded. Standardize the chart of accounts across all your ecommerce clients. Same account names, same clearing-account structure, same class setup. When every client's books look the same, the close becomes muscle memory, and you can hand parts of it to a junior without rebuilding from scratch. This is also where the right tool breaks the ceiling instead of raising your hours. The slow part of an ecommerce close is categorizing hundreds of transactions per client, every month. Growthy suggests categories for the routine work, and you review what it flags. As one bookkeeper put it, "the tell is always the same: clearing accounts that never return to zero." A tool that gets the routine right lets you spend your time on the clearing accounts that don't. ### Onboarding a new ecommerce client The first month is where the time goes, so make it a checklist, not a discovery. Connect every channel and bank feed. Pull three months of history to learn the patterns. Set up the standard chart of accounts, with a clearing account for each processor the client uses. Map each platform's payout report to the right accounts once, so the mapping repeats every month after. Run a first reconciliation and find the clearing accounts that don't zero, because the prior bookkeeper almost certainly left some open. Fixing those is often where you prove your worth in week one. ### The time math Here's why this matters to your practice. Say an ecommerce client takes four hours a month to close by hand: pulling reports, decomposing payouts, chasing the pieces that don't tie. Fifteen clients at four hours is sixty hours a month, and that's your ceiling. Cut the routine categorization and the repeated decomposition to one hour a client, and the same sixty hours covers far more clients. The ceiling was never your skill. It was the clicking. Move the clicking and the ceiling moves. ## Common Ecommerce Bookkeeping Mistakes (the Difficult 20%) Six mistakes account for most broken ecommerce books. Each one has a one-line fix. 1. **Net vs gross.** Booking the deposit as revenue. It understates sales and hides fees. Fix: decompose every payout through a clearing account. 2. **Transfers booked as income.** Owner draws, loans, inter-account transfers, and Shopify Capital advances all land as deposits and all look like sales. Fix: flag and classify each by what it actually is. 3. **COGS by payout timing.** Expensing inventory when you buy it, or when cash moves, instead of when the unit sells. Fix: move cost from inventory to COGS at the sale. 4. **Sales tax collected booked as income.** The most expensive setup error. Fix: collected tax is a liability you owe a state, never revenue. 5. **Ignoring reserves and holdbacks.** Treating an Amazon reserve as spendable cash. Fix: book reserves to an asset account, not income, and not available cash. 6. **Reconciling by calendar month.** Payouts close on platform cycles, not your month, so month-end forcing creates gaps. Fix: reconcile by payout period. The reason these hide so well is the same in every case. The profit and loss can look fine while the balance sheet quietly rots underneath. A clearing account that never zeroes, a reserve treated as cash, a sales-tax liability booked as sales: none of it screams on the P&L. It shows up on the balance sheet, which is exactly why you check the balance sheet last in every close. ## Your Monthly Ecommerce Bookkeeping Close (for the DIY Seller) If you keep your own books, run the same steps in the same order every month. It turns a dreaded catch-up into a 90-minute routine. 1. Pull every payout and settlement report for the month. Shopify payouts, your Amazon settlements, Stripe and PayPal balance reports. 2. Decompose each payout through its clearing account. Sales, shipping, fees, refunds, and collected tax, each to the right account. Confirm every clearing account returns to zero. 3. Record cost of goods sold for the units you sold, at landed cost. 4. Update inventory for what you bought, what's in transit, and what came back. 5. Check sales tax. Collected tax sits in the liability, and note any new state where you may have crossed nexus. 6. Categorize the rest. Anything you're unsure about, flag it rather than guess. 7. Reconcile your bank and each processor balance to the statements. 8. Open the balance sheet. Clearing accounts near zero, reserve trending down, inventory matching your count. If something's off, it's hiding here, not on the profit and loss. Do this monthly and you never face a year-end cleanup. Skip it for six months and you'll pay a bookkeeper to untangle it, which costs far more than the routine would have. ## Deposits, Gift Cards, and Other Liabilities A few ecommerce balances are money you hold but don't own yet. Book them as liabilities, not income, or your revenue inflates and your balance sheet misleads you. Gift cards and store credit. When a customer buys a $100 gift card, you got $100 in cash but earned nothing yet. The sale happens when they redeem it. | Account | Debit | Credit | | --- | --- | --- | | Cash (bank) | $100 | | | Gift Card Liability | | $100 | When they redeem the card for products, you move that $100 from the liability into revenue, the same way deferred revenue releases. Unredeemed balances sit on your balance sheet as a liability, sometimes for years. Customer deposits and pre-orders. Money taken before you ship is a liability until the product goes out. Pre-order revenue booked the day the cash arrives is the same mistake as booking an annual contract upfront. It counts money you haven't earned. Tips and shipping you owe. Tips collected at checkout are passthrough, a liability until paid out. Shipping you collect is income, but the labels you owe a carrier are an expense, and the two are easy to net by accident. The thread through all of these is the payout method again. The cash hitting your account is not the measure of what you earned. Sort each dollar into the right account and the books tell the truth. ## Reading Your Ecommerce Financials Once They're Right Clean books exist to answer questions. Here's what good ecommerce books let you see that messy ones hide. Real gross margin. With revenue gross, fees in their own accounts, and COGS tied to units sold, your gross margin is the true number: revenue minus COGS, before operating costs. Sellers running net deposits as revenue can be off by ten points or more and never know which products actually make money. Margin by channel. With class tracking, your profit and loss splits by Shopify, Amazon, and wholesale. This is where most sellers find a surprise. A channel that drives volume can lose money once its fees come out, while a quieter channel carries the business. A balance sheet that ties out. This is the test that catches everything. Every clearing account should sit near zero between payouts. The reserve account should trend down as Amazon releases funds. Sales Tax Payable should match what you owe and haven't filed. Inventory should match a physical count. When the balance sheet ties, the profit and loss can be trusted. When clearing accounts drift and the reserve climbs forever, the profit and loss is fiction no matter how good it looks. Cash you can actually spend. Reserves, gift card balances, and sales tax you owe are all sitting in or around your cash. Clean books separate the money you've earned from the money you're only holding. That's the difference between a confident decision and an overdraft. This is the real payoff of the method in this guide. Not tidy books for their own sake, but numbers you can run the business on. Get the payouts right and everything downstream rests on numbers that are true: your real margin, your tax position, the timing of your next inventory order. Get them wrong and every decision after inherits the error. ## Conclusion Ecommerce bookkeeping comes down to one habit: never trust the deposit. Take every payout apart through a clearing account, match cost of goods sold to the units you actually sold, and keep sales tax in the liability where it belongs. Do that on each channel, every month, and your books tell the truth. The next payout that hits your bank is the place to start. Decompose it, tie the clearing account back to zero, and build the rest of the month from there. ## Frequently Asked Questions ### Do I need accrual accounting for my ecommerce business? If you hold inventory, accrual gives you real margin, because it matches cost of goods sold to the sale instead of to when you bought stock. For tax, a small business under the $32 million gross-receipts threshold may use cash accounting with a simplified inventory method. Run accrual on your internal books once you carry inventory, and let your CPA set the tax election. ### How do I record a Shopify payout in QuickBooks? Don't book the deposit as sales. Route the payout through a Shopify Payments Clearing account. Post gross sales, shipping, and collected sales tax as credits, post fees, refunds, and chargebacks as debits, then record the bank deposit against clearing. When clearing returns to zero, the payout is fully recorded and your revenue and fees are both correct. ### Is sales tax collected income? No. Sales tax you collect is a liability. It's money you hold for the state until you remit it. Book it to a Sales Tax Payable account, never to revenue. Booking collected tax as income overstates your sales and leaves you with nothing set aside when the filing comes due, which is one of the most expensive ecommerce bookkeeping errors. ### How do I account for Amazon FBA fees? Build the entry from the 14-day settlement report, not your bank statement. The settlement lists each fee type: referral, fulfillment, storage, advertising, and more. Post gross sales to an Amazon Settlement Clearing account, then post each fee as an expense against clearing. The reserve Amazon holds is an asset, not an expense. Cost of goods sold is recorded separately, from your inventory records. ### Cash or accrual for a new online store? If you're small, low-volume, and carry little inventory, cash is simple and usually fine, and it may be allowed for tax under the $32 million threshold. The moment you hold real inventory, switch your internal books to accrual so you can see true margin. The two questions, internal books and tax method, are separate. Confirm the tax election with your accountant. ### Do I owe sales tax in every state I ship to? Not automatically. You owe where you have nexus, which now includes economic nexus after the 2018 Wayfair decision. Most states set the bar around $100,000 in sales, and many have dropped the old "200 transactions" rule. Thresholds vary and keep changing, so check each state. Marketplaces like Amazon often collect and remit for you, but your direct store sales are still yours. ### What's the difference between ecommerce bookkeeping and accounting? Bookkeeping is the recording: decomposing payouts, posting entries, tracking inventory, reconciling accounts. Accounting is the layer on top: interpreting the books, choosing methods, tax strategy, and financial statements for decisions. This guide is the bookkeeping. For the wider view, see our [ecommerce accounting](/topics/ecommerce-accounting) guide. You need clean books before accounting can tell you anything true. ### What is a clearing account and why do I need one? A clearing account is a temporary holding account for a payment processor, like Shopify Payments Clearing. The payout lands there, you decompose it into sales, fees, refunds, and tax, then record the bank deposit against it. When it returns to zero, the payout is fully recorded. It's the one mechanism that makes payout reconciliation reliable, and a clearing account that never zeroes is the clearest sign something's wrong. ### How do I handle refunds and chargebacks? A refund reduces revenue, so book it to a contra-income account, not as an expense. A chargeback is a disputed charge reversed by the bank, often with a fee, and it usually comes out of a processor payout. Record both against the same clearing account as the original sale. If the refunded item returns to sellable stock, reverse its cost of goods sold too. ### What reports do I need to do ecommerce bookkeeping? Start with the platform settlement and payout reports (Shopify payouts, the Amazon 14-day settlement, Stripe balance reports), because those are your source of truth, not the bank statement. Add your inventory records for cost of goods sold and a sales-tax report by state. The bank statement is the last check, confirming the net deposit matches what your decomposed entries say it should. ### When should I hire an ecommerce bookkeeper? Hire when reconciling payouts eats hours you need for the business, when you've fallen behind on sales-tax filings, or when you can't see margin by channel without a half-day of work. Make sure they already understand settlement reports, clearing accounts, and economic nexus. If they reconcile from the bank statement or book deposits as revenue, keep looking. ### FIFO or weighted-average for my inventory? Either is acceptable under GAAP. Weighted-average is simpler and smooths cost swings, which suits most small stores. FIFO tracks actual cost layers and, in a rising-cost period, reports higher profit and higher ending inventory. Pick one, apply it consistently, and know that switching methods later can have a tax effect, so confirm with your CPA before you change. ### How do I track profit by sales channel? Set up class or location tracking, with one class per channel, and tag every sale, fee, and refund to its channel. Your profit and loss can then split by Shopify, Amazon, and wholesale, each with its own margin after fees. Without it, a high-fee channel can quietly lose money while the blended total looks healthy. ### If Amazon collects sales tax for me, do I still need to track it? Yes. Record the tax Amazon collects and remits so your books match the settlement, even though you don't owe it separately. And marketplace collection only covers marketplace sales. Your own Shopify or direct sales in that state are still yours to track, register for, and remit. Keep the two streams separate. ### How do I value inventory at year-end? Count what's physically on hand and value it at cost using your chosen method, FIFO or weighted-average, at landed cost. That number is your ending inventory on the balance sheet, and it sets your cost of goods sold through one formula: beginning inventory plus purchases minus ending inventory equals COGS. An accurate year-end count is the single biggest driver of an accurate tax return for an inventory business. Your books are only as good as the method behind every payout. If you'd rather not categorize hundreds of transactions by hand every month, [start with Growthy and let it categorize your ecommerce transactions while you review the rest](/signup?utm_content=ecommerce-bookkeeping). It tells you what it isn't sure about. ## Sources - IRS, Revenue Procedure 2025-32, 2026 inflation-adjusted amounts. Section 448(c) gross-receipts threshold is $32,000,000 for tax year 2026. Accessed June 23, 2026. - Internal Revenue Code Sections 471(c) and 263A, small-business inventory and uniform-capitalization exceptions. - IRS Publication 334 (Tax Guide for Small Business) and Publication 538 (Accounting Periods and Methods). - South Dakota v. Wayfair, Inc., 585 U.S. 162 (2018), the economic-nexus standard for sales tax. - Sales Tax Institute, Economic Nexus State Guide. Accessed June 23, 2026. State thresholds vary and change; confirm with each state's department of revenue. - Shopify Help Center, Shopify Payments payout and fee documentation. Accessed June 23, 2026. - Amazon Seller Central, settlement report and FBA fee documentation. Accessed June 23, 2026. - Generally accepted accounting principles (GAAP), inventory valuation methods (FIFO and weighted-average). Fee rates and platform mechanics in this guide are illustrative and change over time. Verify current rates in your own platform dashboards. Tax thresholds verified against tax-thresholds-2026 on June 23, 2026. This guide is general information, not tax or legal advice for your specific situation. ### [What Counts as COGS for a SaaS Startup (and Why Your Gross Margin Is Probably Wrong)](https://growthy.com/blog/saas-cogs-gross-margin): An investor looks at your deck and asks one question. "What's in your COGS?" If your answer is "not much," your 90% gross margin is about to shrink in front of the whole room. ## Introduction An investor looks at your deck and asks one question. "What's in your COGS?" If your answer is "not much," your 90% gross margin is about to shrink in front of the whole room. Most founders get SaaS COGS wrong in the same direction. They leave costs out. Hosting sits in a generic "software" bucket. Support salaries sit in payroll. API bills sit in "tools." The result is a gross margin that looks amazing and means nothing. Here is the plain version. COGS is the set of costs that rise and fall with the customers you serve. If a customer canceling would make a cost go down, that cost probably belongs in COGS. Opex is everything you would pay anyway. Rent, sales salaries, and your own engineering payroll stay in opex whether you have 10 customers or 1,000. SaaS has no warehouse and no widgets, so "cost of goods sold" feels like someone else's problem. It isn't. Your product is a running service. The servers, the support team, and the per-call API fees that keep it running for paying customers are the goods. This guide walks the four cost buckets founders argue about most. It gives you a clear call on each one, shows a worked example with real dollars, and ends with the gross margin bands investors actually use. > **Definition Box:** COGS (cost of goods sold) for SaaS means the direct costs of delivering your service to paying customers, such as production hosting, customer support, and per-use API fees. Gross margin is revenue minus COGS, divided by revenue. Costs that don't move with customer count, like sales and engineering payroll, stay in operating expenses. ## Key Takeaways - **COGS is the serve-the-customer slice.** Production hosting, support, and in-product API costs belong there. Sales, marketing, and R&D stay in opex. - **Hosting splits in two.** Production infrastructure serving customers is COGS. Dev and staging environments are R&D opex. - **Support counts, success usually doesn't.** Reps answering customer tickets are COGS. A success team focused on upsells is a sales cost. - **AI inference is the new blind spot.** Per-call model and API costs inside the product path are COGS, and they're getting big. - **Benchmarks have teeth.** Healthy SaaS gross margin runs 75-80% or better. Below 60% reads as a services business, and the valuation follows. ## Hosting and infrastructure Start with the easiest call. Are hosting costs COGS? For production, yes. The AWS, GCP, or Azure spend that serves live customer traffic is the clearest COGS line a SaaS company has. The nuance is the split. Not all cloud spend serves customers. Say your total cloud bill is $14,000 a month. Production workloads run $11,000 of it. The other $3,000 covers dev and staging environments your engineers use to build. That $11,000 is COGS. The $3,000 is R&D opex. Most founders book the whole $14,000 to one account and move on. That single habit distorts both your gross margin and your R&D picture. Tag your cloud accounts by environment once, and the split maintains itself. A few related lines ride along with hosting. CDN fees, database hosting, monitoring tools that watch production, and backup storage for customer data all serve live customers, so they sit in COGS too. If you prepay for reserved instances or a committed-use discount, the spend still follows the same split. The discount changes the price, not the classification. ## Customer support Support is the bucket where the test earns its keep. Ask what the person actually does all day. A support rep answering tickets from existing customers is delivering the service. Customers expect help as part of what they pay for. That salary is COGS. If you doubled your customer count, you'd need more reps. The cost climbs as you add customers, which is the whole definition. Customer success is different when the role is really sales. A CSM whose goals are expansion revenue and upsells is growing revenue, not delivering the service. That salary belongs in sales and marketing opex. Plenty of teams blend the two roles. Split the cost by time if you have to. A rough 70/30 split that follows reality beats a clean 100% that doesn't. Put numbers on it. Say you pay one blended support-and-success person $72,000 a year, or $6,000 a month. She spends about 70% of her week in the ticket queue and 30% running expansion calls. Book $4,200 to COGS and $1,800 to sales opex. Write the split down somewhere you'll find it later, and revisit it when the role changes. Auditors and analysts don't mind estimates. They mind estimates nobody can explain. The same logic covers the software your support team runs on. Your help desk tool and the chat widget your customers use are part of delivering support, so they belong in COGS with the salaries they support. ## Third-party APIs and data costs This is the bucket AI-era SaaS gets most wrong, and the dollars are growing fast. The rule: if the cost sits in the product path, it's COGS. OpenAI tokens that power a feature your customers use? COGS. Plaid calls that pull your customers' bank data? COGS. Twilio messages your app sends on a customer's behalf? COGS. A data license that feeds content into the product? Same answer. Internal tools are not in the product path. Slack, Linear, Notion, and your CRM are opex. Your customers never touch them. Model inference deserves a hard look. Teams shipping AI features can watch per-call costs climb to one of the biggest lines on the income statement. Founders who bury inference in a "tools" account are reporting a SaaS gross margin that no longer reflects the cost of goods sold. SaaS companies with heavy inference loads have real unit-economics questions, and hiding the line doesn't make those questions go away. ## Payment processing fees Stripe takes 2.9% plus 30 cents on every transaction. Where does that go? Two answers are defensible. You can net fees against revenue, which is the contra-revenue approach. Or you can book them in COGS. GAAP practice varies, and both choices show up at diligence without raising eyebrows. Pick one and stay consistent. The wrong answer is the common one. Burying processing fees in general opex flatters your gross margin by the full fee load. On $1.2 million of card-collected annual revenue, that's roughly $35,000 of cost pretending to be overhead. An analyst will find it in about ten minutes. ## What stays in opex Don't over-rotate and stuff everything into COGS. These stay out: - **Engineering salaries.** Building the product is R&D, not delivering it. (The cloud bill for production is COGS; the people writing code are not.) - **Sales and marketing.** Ads, sales salaries, commissions, and the upsell-focused success team. - **Rent and G&A.** Office, legal, insurance, and accounting. You'd pay these with zero customers. COGS is the serve-the-customer slice. Nothing more. ## The benchmarks, with a worked example Here are the SaaS gross margin benchmarks investors carry into every meeting. Healthy SaaS runs 75-80% gross margin or better. The strongest products clear 80%. Below 70%, expect questions. Below 60%, investors stop reading the margin as software. The business looks like a services company wearing a SaaS valuation, and the revenue multiple drops to match. Why so much weight on one ratio? Because SaaS valuations are built on revenue multiples, and those multiples assume software-grade margins. Every point of gross margin moves what the company is worth. There's a second reason the band matters: gross margin sets the ceiling on everything below it. Whatever survives COGS has to fund sales, marketing, R&D, and overhead, and still leave something over. A company at 78% gross margin has 78 cents of every revenue dollar to work with. A company at 55% has 55 cents, and no amount of new revenue fixes the gap. That's why an investor reads the margin line before reading your roadmap. Now the worked example. A startup at $100,000 MRR reports a 92% gross margin. Its COGS line holds almost nothing: $8,000 of miscellaneous infrastructure. Then the books get classified correctly: - Production hosting: $14,000 a month - Support team: $6,000 a month - In-product API and inference costs: $4,000 a month True SaaS COGS is $24,000 a month. Gross margin lands at 76%. Same company, same product, same cash in the bank. The honest number sits inside the healthy band, and it holds up when someone checks. The reusable test: if a customer canceling would make this cost go down, it's probably COGS. One more habit keeps the number honest over time. Reclassify once, then close your books on the same rules every month. A margin that jumps from 76% to 88% because someone recoded the hosting account mid-year looks worse in diligence than either number on its own. Consistency is half the credibility. ## Conclusion The cost of goods sold SaaS founders report is usually too thin, and the inflated margin it produces is a liability with a delay on it. Classify the four buckets honestly. Production hosting in, dev environments out. Ticket support in, upsell success out. Product-path APIs in, internal tools out. Processing fees netted or in COGS, never buried. Then recompute your gross margin and compare it to the 75-80% band. If the honest number is lower than the deck number, fix the deck now. A 76% margin you can defend beats a 92% margin that dies in diligence. This is exactly the kind of classification work that should not depend on a founder remembering the rules at midnight. [Get started with Growthy](https://growthy.com/signup/?utm_content=saas-cogs-gross-margin) — it categorizes your SaaS COGS lines automatically, and you review and approve every call before it syncs. Walk into your next investor meeting with a gross margin you can defend. ### [Bank Feed Reconciliation: Why 'Matched' Isn't 'Reconciled'](https://growthy.com/blog/bank-feed-reconciliation): Every transaction in the feed shows a green checkmark. The client's books still don't tie to the bank statement. Off by $1,240. If you run bank feed reconciliation for 15 or 20 clients, you've hit this exact moment. The feed says done. ## Introduction Every transaction in the feed shows a green checkmark. The client's books still don't tie to the bank statement. Off by $1,240. If you run bank feed reconciliation for 15 or 20 clients, you've hit this exact moment. The feed says done. The statement says otherwise. Here's the claim this article stands on: matching transactions in a bank feed is not reconciliation. They're different jobs. One pairs transactions. The other proves your books are complete. > **Definition Box:** Bank feed reconciliation is a two-part discipline. Part one: match imported feed transactions to entries in your books. Part two: tie the account's cleared activity to the bank statement's closing balance. Only part two proves the books are right. A feed with every transaction matched can still hide duplicates, gaps, and missing entries. By the end you'll have a month-end checklist that catches what the feed misses. It takes about 15 minutes per account once it's a habit. ## Key Takeaways - **Matched is not reconciled:** bank feeds pair transactions; reconciliation proves the account ties to the statement balance. - **Feeds fail silently:** duplicates, dropped transactions, and month-boundary timing all hide behind green checkmarks. - **QBO:** the Banking screen is feed matching; the Reconcile module is where the real tie-out happens. Audit auto-add rules quarterly. - **Xero:** the "Reconcile" tab is matching too. The Reconciliation report against the statement balance is the proof. - **Monthly discipline:** 8 steps, about 15 minutes per account, with the bank statement as the truth source every time. ## Body The bank feeds vs reconciliation confusion is the most common bookkeeping gap we see in QBO and Xero files. Here's how it happens, where it bites, and how to close it. ### What bank feeds actually do (and don't) A bank feed pulls transactions from the bank and suggests matches. That's it. It's a data pipe with a matching assistant on top. The feed does three things well. It imports transactions so you don't key them by hand. It suggests matches against existing entries. It remembers your categorization patterns. Here's what it doesn't do. It doesn't prove completeness. A feed can drop transactions during an outage and never tell you. It doesn't catch duplicates from a reconnected connection. And it doesn't compare your book balance to the bank's closing balance. Matching is per-transaction. Reconciliation is account-level proof. We've broken down the [automated vs manual payment reconciliation](https://growthy.com/blog/automated-vs-manual-payment-reconciliation) trade-off separately; this article is about what neither mode can skip. Think of it like counting cars in a parking lot by checking tickets. Every ticket can match a car. You still haven't counted the cars without tickets. The distinction matters because the two jobs fail differently. A bad match is visible: you can click it, review it, and fix it. A missing transaction is invisible until you compare totals against the bank's own record. Feeds make the visible work faster. They do nothing for the invisible work. That's not a flaw in QBO or Xero. It's the design: feeds were built to cut data entry, not to audit completeness. ### Where "matched" goes wrong Four failure modes show up over and over. **Duplicate entries.** A bank connection breaks and gets reconnected. The feed re-imports two weeks of transactions. Now there are 3 duplicate deposits sitting in the books, and revenue is overstated by $4,800. Every one of them shows as matched or added. **Missing transactions.** Feed outages leave silent holes. The bank posted 212 transactions in March. The feed delivered 207. Nothing in QBO or Xero flags the missing 5. Only the statement tie-out finds them. **Bank-initiated items that never hit the feed.** Adjustments, reversed fees, and some wire corrections post at the bank but arrive late or never. Your books drift without a single unmatched transaction. **Month-boundary timing.** A deposit posts on the 31st at the bank and the 1st in the feed. Matched? Yes. In the right month? No. That's a clean-looking feed and a wrong P&L. Lump-sum processor deposits make this worse: see [how to reconcile lump-sum deposits from payment processors](https://growthy.com/blog/reconcile-lump-sum-deposits-payment-processors), and why [Stripe bookkeeping](https://growthy.com/topics/stripe-bookkeeping) deserves its own workflow. ### QBO bank feed matching: what to check QBO bank feed matching runs through the Banking screen. Green checkmarks, Match buttons, and auto-add rules. It feels like progress. Three traps to check. First, auto-add rules create entries without review. A rule that says "anything from Amazon goes to Office Supplies" will happily file a $2,100 equipment purchase as supplies. Rules add speed and remove eyeballs. Audit your rules quarterly. Second, QBO's suggested matches run about 50% accurate in real client files. The other half need a human call. Accepting suggestions in bulk is how a client's loan payment ends up matched to a vendor bill. Third, the Banking screen is not the Reconcile module. Clearing the feed queue does not reconcile the account. Open Accounting, then Reconcile. Enter the statement ending balance and ending date. Work to a $0.00 difference. That screen, not the feed, is where reconciliation happens in QBO. Two QBO details trip people up in that module. Undeposited Funds can make a clean feed look wrong: payments sit in the holding account while the bank shows one combined deposit, so match deposits to grouped payments before you start the tie-out. Our [payment reconciliation guide](https://growthy.com/blog/payment-reconciliation-guide) walks that matching flow step by step. And QBO lets you finish a reconciliation with a difference by forcing an adjustment entry. Don't. A forced adjustment is an unknown error with a journal entry on top. Find the gap or leave the reconciliation open with a note. ### Xero bank reconciliation: same trap, different UI Xero bank reconciliation has a sharper naming problem. Xero's main screen literally says "Reconcile" on the feed-matching tab. You can click OK on every line and Xero calls the account reconciled. It isn't. That tab is feed matching. The real check in Xero is the statement balance comparison. Open the bank account, then Reconciliation report. Compare the statement balance to the balance in Xero as of the statement date. If the feed dropped transactions, this report is where the gap shows. Two Xero-specific checks. Watch for manually added statement lines, which can double up against feed imports. And run the Bank Reconciliation Summary monthly. Unreconciled statement lines older than 30 days are a red flag, not a backlog item. Xero's cash coding screen deserves the same caution as QBO's rules. Bulk-coding 80 lines in one pass feels great on a Friday afternoon. It also files 80 judgment calls in 4 minutes. Keep bulk coding for true repeaters like bank fees and card processor payouts, and slow down on anything with a varying amount or a new payee. ### The month-end tie-out: reconcile to the statement, not the feed The discipline is one equation. Opening balance plus cleared activity equals the statement closing balance. Every account, every month. If the mechanics are new, our [bank reconciliation guide](https://growthy.com/blog/bank-reconciliation) covers the full walkthrough; this section is the bank-feed-specific layer. The feed is an input. The statement is the truth source. When you reconcile bank feed transactions, you're checking the feed's work against the bank's record, not the other way around. The bank's PDF wins every dispute. This matters most when you carry a full client list. A bookkeeper with 14 clients and 3 accounts each has 42 tie-outs a month. Skip them for a quarter and you're not behind on a chore. You're carrying unknown errors in 42 accounts, and clean-up billing conversations are no fun. One more habit worth building: reconcile in the same week the statement drops. Most banks post statements within 3 business days of month close. A tie-out done on the 5th catches a feed gap while the bank's support team can still explain it. A tie-out done in October for a March statement turns a 15-minute fix into a forensic project. ### A month-end bank-feed reconciliation checklist Run this per account. Budget 15 minutes once it's routine. 1. Pull the bank statement PDF for the month. Not the feed export. The statement. 2. Clear the feed queue first. Match or add every imported transaction so the queue is empty. 3. Open the reconcile screen (QBO: Reconcile module; Xero: Reconciliation report) and enter the statement ending balance and date. 4. Tie out to $0.00. Opening balance plus cleared activity must equal the statement close. 5. Investigate every gap by type: duplicates first, then missing transactions, then timing items. 6. Count transactions. Statement count vs feed count. A mismatch means a silent feed gap. 7. Check for stale uncleared items. Anything uncleared over 60 days needs a decision, not another month of waiting. 8. Save the reconciliation report to the client file. The report is your proof when the feed misbehaves later. Print it, pin it, or build it into your close template. The order matters: a noisy feed queue makes step 4 impossible to read. If you close full sets of books monthly, fold these steps into the [month-end close checklist](https://growthy.com/blog/month-end-close-checklist-for-saas-founders) so reconciliation lands in sequence with billing and accruals. ## Conclusion The feed queue at zero feels like a finished job. It's half the job. The statement tie-out is the half that protects you, because it's the half that catches what the feed never shows. If you run books for 10, 20, or 30 clients, the math is simple. The matching half is hours of clicking. The proving half is minutes per account. Automation should eat the clicking so your time goes to the proof, the review, and the judgment calls clients actually pay for. That's the split Growthy is built for: software handles [automated expense categorization](https://growthy.com/blog/automated-expense-categorization) and the matching grunt work, you review and approve. Put your hours into the half of reconciliation that needs a professional. [Get started with Growthy](https://growthy.com/signup/?utm_content=bank-feed-reconciliation). ### [5 Ways Bookkeepers Grow Their Client Base Without Burning Out](https://growthy.com/blog/5-ways-bookkeepers-grow-their-client-base): Five concrete ways pro bookkeepers grow without working more nights. Productize intake, tier pricing, niche down, sell advisory, and use AI on coding. ## Introduction You run a typical pro-bookkeeper book of clients. You know the work cold. The ceiling is hours, not skill. Most bookkeeper marketing advice tells you to post more on social, buy ads, or send cold pitches. That works to a point. The harder problem is what happens after a prospect says yes. Adding more clients at your current price and your current workflow just adds nights and weekends. Hiring a junior helps, then it brings its own review load. Dropping clients hurts revenue. There is a third path. Grow revenue per client. Grow client count without grinding more data-entry hours. Senior judgment stays the asset. The five tactics below all amplify it. ### The Hours Ceiling Problem The pattern is the same in most practices we talk to. Client count grows. Hours grow faster. Margin per client shrinks because the work eats into your evenings. When you set out to grow bookkeeping practice revenue, the reflex is to add volume. More clients, same prices, same workflow. That path tops out fast because every new client costs you onboarding hours, monthly close hours, and ad hoc reply hours. The better path: rebuild what you sell, what you charge, who you sell it to, and how much of the production work you actually do by hand. Productize what you sell. Price for scope, not time. Pick a niche where bookkeeper client acquisition gets easier with every win. Let software handle the categorization grind so your senior hours go to advisory. Here are the five moves. ## Body ### Tactic 1: Productize the Intake So New Clients Onboard in a Week, Not a Month Most bookkeepers rebuild onboarding for every new client. Custom emails. Ad-hoc document requests. Scattered logins. Each new client takes 8 to 15 hours of partner time before you book a single transaction. That is the single biggest hidden tax on bookkeeping practice growth. Productize it. One intake form. One checklist of every doc you need. Bank logins via Plaid. QBO invite. Prior-year trial balance. Payroll provider login. AR and AP aging at the cutover date. One Loom walkthrough that shows the new client how you work. Same package every time. The mechanism: predictable scope means a predictable price, which means a faster yes from the prospect. It also means a fast handoff. Most bookkeepers who do this cut onboarding hours by half within the first month. When a prospect asks how you onboard, you send the intake form and the Loom on the same call. That is the fastest way to find bookkeeping clients who fit your scope and pay on time. ### Tactic 2: Tier Your Pricing to Scope, Not Hours Hourly billing punishes you for getting faster. The better you get, the less you make per client. Fixed monthly pricing tied to scope rewards the senior judgment that makes you fast. Three tiers is enough. Call them Starter, Growth, and Advisory. Each tier adds a scope dimension, not just more hours. | Tier | Scope | Monthly | | --- | --- | --- | | Starter | Up to 100 transactions, one bank, no payroll | $400 to $600 | | Growth | Up to 400 transactions, two banks, payroll, AR or AP | $900 to $1,500 | | Advisory | Growth scope, plus monthly KPI review and quarterly tax check-in | $1,800 to $3,000 | A $400 client and a $1,800 client both take you 4 to 6 hours. The scope tier sets the price. The judgment you bring sets the perceived value. ### Tactic 3: Pick One Niche, Then Let Referrals Compound Generalist bookkeepers compete on price. Niche bookkeepers compete on fit. Clients in a niche talk to each other. Pick one. Real estate flips. E-com on Shopify and Amazon. SaaS with Stripe. Restaurants. Agencies. Freight. Dental practices. Then rebuild your intake checklist, your chart of accounts template, and your sample monthly report for that niche. The mechanism: referral velocity goes up because every client knows ten other operators with the exact same chart of accounts and the exact same software stack. You stop selling. The niche does it for you. Most niche-focused bookkeepers close referrals in one or two calls instead of three or four. ### Tactic 4: Upsell Advisory From the Clean Data You Already Produce The monthly close is the asset. You already know the client's gross margin trend, their AR aging, and their cash burn. Package that into three advisory tiers on top of bookkeeping. A 30-minute monthly KPI review runs $150 to $300. A quarterly cash-flow and tax-coordination session runs $500 to $800. An annual budget with a few scenario models runs $1,500 to $3,000. The mechanism: the clean books are sunk cost for you and a high-value input for the client. The same hour billed at advisory rates is three to five times the bookkeeping rate. This is where the per-client revenue ceiling lifts. ### Tactic 5: Let AI Handle the Categorization Grind So Senior Hours Go to Higher-Margin Work Transaction coding is the single biggest hours-eater for a typical pro-bookkeeper book of clients. It is also the part of the work that benefits most from pattern matching. AI-assisted categorization cuts coding time noticeably without losing judgment calls. The senior bookkeeper still owns the chart of accounts. The senior bookkeeper still reviews exceptions: uncategorized, transfers, owner distributions, intercompany, fixed assets. The senior bookkeeper still signs off on the close. The mechanism: AI handles the 80 percent of coding that is pattern matching. The senior bookkeeper handles the 20 percent that needs judgment, plus the advisory work in Tactic 4. Senior bookkeepers stay more valuable in this model, not less. Junior staff still have a clear role: ownership of exception review and client communication on the close cycle. Growthy is one option here. It is a workflow tool that sits over QBO, designed for pro bookkeepers managing multiple client books. Every AI suggestion gets queued for senior review before it posts. ## Key Takeaways The shift is from selling hours to selling scope, niching for referral velocity, and using AI to free senior judgment for advisory work. None of the five tactics needs you to hire. None needs you to drop clients. Senior bookkeepers stay more valuable in this model, not less. If you want more of this kind of practice-growth thinking, Bobby's newsletter, [Scaling Clients](https://scalingclients.com), covers it every week. The order matters too. Tactic 1 and Tactic 2 set the floor. Tactic 3 grows the top of the funnel. Tactic 4 raises revenue per client. Tactic 5 is the lever that frees the senior hours you need to actually deliver Tactic 4 without burning out. Pick one tactic. Run it for 30 days. Track the hours and the revenue. Then add the next. ## Conclusion You do not need to run all five tactics at once. Pick the one that maps to your biggest pain. If onboarding eats your weeks, start with Tactic 1. If your evenings disappear into transaction coding, start with Tactic 5. If your top clients are already buying advice over coffee, start with Tactic 4. Run that one tactic for the next 30 days. Track the hours you save. Track the revenue you add. Then layer in the next one. Growthy is AI bookkeeping built for pro bookkeepers. [Get started with Growthy](https://growthy.com/signup/?utm_content=5-ways-bookkeepers-grow-their-client-base). ### [The Month-End Close Checklist for SaaS Founders: A 7-Step Sequence](https://growthy.com/blog/month-end-close-checklist-for-saas-founders): A 7-step month-end close checklist built for SaaS founders. Deferred revenue, MRR roll-forward, prepaid expenses, and accruals, in order. ## Introduction It's 11pm. The board update is due in the morning. You open your books and the numbers look off. Cash is up, but so is the deferred revenue account. Your MRR chart in Stripe says one thing. Your P&L says another. > **Definition Box:** The month-end close for SaaS is a fixed 7-step sequence (cash, billing, deferred revenue, prepaid expenses, accruals, MRR roll-forward, final reconciliation) that produces a board-ready P&L, balance sheet, and cash flow each month. The order matters because each step depends on the one before it. ## Key Takeaways This closing checklist is the value. Here is the 7-step recap, which is the core of SaaS accounting. 1. **Reconcile cash first.** Every step needs clean cash. 2. **Apply paid invoices.** Flag billing leaks before MRR accounting starts. 3. **Book deferred revenue.** Spread annual prepays across the right months. 4. **Amortize prepaid expenses.** Spread annual tools on the expense side. 5. **Book accruals.** Match each cost to the month it happened. 6. **Roll forward MRR.** Tie MRR accounting to revenue and ARR. 7. **Reconcile and report.** Run the tie checks, then sign off. Run them in this order each month. Skipping a step costs you on the next one. If you've felt this, you're not alone. SaaS accounting is its own world. Annual prepays sit on the balance sheet. Tools you paid for in January expense across all twelve months. AWS bills hit two weeks late. Your accountant learned this in school. You're learning it at midnight. This guide gives you the order to close your books each month. Not the textbook order. The order SaaS bookkeepers actually use. Each step builds on the one before it. Skip a step, and the next step breaks. By the end, you'll have clean numbers you can share with your board. You'll trust your MRR chart. And you'll know your runway is real. ## Body Here is the 7-step month-end close sequence for SaaS founders. ### Step 1. Reconcile Cash and Bank Feeds Pull your bank, Stripe, and Mercury feeds. Match every transaction to the general ledger. Clear pending items. Mark uncleared checks. Do this first. Every later step assumes your cash is right. Watch for Stripe timing. A charge on March 31 may land in your bank on April 2. The charge is March revenue. The payout is April cash. Many founders book the payout date and lose a day of revenue. ### Step 2. Verify Customer Billing and Apply Cash to Invoices Match each invoice to the cash you got. Flag any customer who used the product but did not get a bill. Flag duplicate charges. Flag failed payment retries that need a manual nudge. Only billed-and-paid revenue moves to the next step. Unbilled usage is a leak you fix now, not next month. ### Step 3. Calculate and Book Deferred Revenue This is the SaaS step that trips up most founders. Annual plans get paid up front. You can't book all the cash as revenue today. Example. A customer pays $1,200 on January 1 for a 12-month plan. You recognize $100 each month. The other $1,100 sits in a liability account called deferred revenue. Each month, you move $100 from the liability to revenue. Here are the journal entries. ``` At sale (Jan 1): Debit Cash 1,200 Credit Deferred Revenue 1,200 Each month (Jan, Feb, ... Dec): Debit Deferred Revenue 100 Credit Revenue 100 ``` The most common mistake. Booking the full $1,200 as January revenue. That overstates your top line by $1,100 and skips a real liability. Your P&L looks great in January. It looks broken in February. ### Step 4. Amortize Prepaid Expenses This is the mirror of Step 3. Tools you pay for up front (HubSpot, Notion, Linear, insurance) get spread across the months you use them. Keep a one-tab spreadsheet of every annual prepay. Columns. Vendor. Amount. Start date. End date. Monthly amount. Each close, post the monthly amount to expense. Common prepays to track. 1. Annual software (HubSpot, Notion, Linear, Figma) 2. Insurance (D&O, general liability) 3. Retainers (legal, fractional CFO, design) 4. Annual hosting credits ### Step 5. Book Accruals (Expenses Without an Invoice) You used AWS in March. The bill arrives April 5. The cost belongs to March, not April. Book an accrual. Estimate the AWS cost. Post it as a March expense and a March liability. When the real invoice lands, reverse the accrual and book the actual. Skip this step and your March margin looks too high. You'll use that fake margin to set pricing or fund a hire. Then April lands and the truth shows up. Common accruals. 1. AWS, Vercel, and cloud usage 2. Contractor work delivered but not billed 3. Bonuses earned but not paid ### Step 6. Roll Forward MRR and Tag Movements Tie out the four MRR moves. New. Expansion. Contraction. Churn. Total MRR this month equals last month's MRR plus new and expansion, minus contraction and churn. Net new MRR should match the revenue you booked in Step 3 (annual plans get spread, so you'll need to map them). Tools that auto-tag MRR. Chargebee. Stripe Billing. ProfitWell. Pick one and let it do the math. Do not maintain MRR in a spreadsheet by hand. You will mis-tag a downgrade as a churn and your dashboard will lie. If your MRR roll-forward does not tie to your revenue, you have a bookkeeping bug. Find it now. ### Step 7. Reconcile Final Numbers and Generate Reports Last step. Pull the P&L, balance sheet, and cash flow. Run these tie checks. 1. Revenue ties to deferred revenue moves plus net new MRR 2. Cash on the balance sheet matches the bank, plus or minus uncleared items 3. Total liabilities include the current deferred revenue and accruals 4. Variance against last month makes sense (and if it doesn't, find out why before you publish) Sign off. Save a PDF of the closed P&L. Lock the period in your accounting tool so no one back-dates an entry. Most accounting tools call this a period lock or a soft close. Now you can share the numbers with your board. ### A Quick Word on Tools Most founders try to close in QuickBooks alone. That works for the first year. Then the deferred revenue schedule grows. The prepaid expense list grows. MRR tags pile up. At some point, a spreadsheet stops being the right answer. Tools like Chargebee, Maxio, and Sage Intacct exist for this. Pick a tool when your close starts costing more than the tool does. The 7-step order does not change. The tools just do more of the math for you. ### When to Get Help Closing books in-house is the right call early on. You learn the business. You catch the leaks. You build the muscle. At some point, the cost of your time on closing books crosses the cost of an outside bookkeeper. Track your closing hours. Once you're above 8 hours a month on the close, get help. Your time is worth more than that. ## Conclusion It's 11pm again. Board update due in the morning. This time you open the books, run the 7 steps, and trust the output. Closing books should not take all night. If you're still piecing together MRR in a spreadsheet, your time is going to the wrong place. Growthy categorizes automatically. You review and approve. Done before lunch. [Get started with Growthy](https://growthy.com/signup/?utm_content=month-end-close-checklist-for-saas-founders). ### [Sales Tax Nexus for SaaS Startups: How to Stay Compliant Without Hiring a Tax Team](https://growthy.com/blog/sales-tax-nexus-for-saas-startups): A founder's guide to SaaS sales tax: economic vs physical nexus, post-Wayfair state thresholds, and a 90-day plan to get compliant without hiring a tax team. ## Introduction You launched a SaaS. You picked up paying customers in 30 states inside a year. Then someone on Twitter said "Wayfair" and your stomach dropped. Here is the founder reality on SaaS sales tax. That $0.99 seat plan now triggers a tax obligation in states you have never set foot in. Back taxes plus penalties can wipe a year of runway in one notice. The good news: this is solvable in a single quarter, and you do not need a CPA on payroll to do it. This piece covers three things. First, the two flavors of nexus and how each one shows up for SaaS. Second, what changed after Wayfair and the post-Wayfair state thresholds, with at least five named state values. Third, a 90-day checklist you can run yourself to get registered, collecting, and filing where you owe. Let's get into it. ## Body ### Economic vs Physical Nexus, With SaaS-Specific Examples Two things create sales tax nexus. Physical nexus comes from a foothold in the state. Economic nexus comes from the size of your sales into the state. Physical nexus is the older rule. It shows up when you have an office, an employee, a server, a contractor, or inventory in the state. One remote engineer living in Colorado creates Colorado physical nexus from day one. One 1099 contractor in California does the same in California. A leased desk in Austin does it in Texas. Economic nexus is the newer rule. It triggers when your sales into a state cross a revenue or transaction count, even with zero people or property there. A self-serve SaaS that books $110K through New York or $120K through Washington crosses economic nexus in those states. Here is the trap most founders miss. Cloud hosting on AWS does not create nexus by itself. Your code sitting in an AWS region is not your code in that state. But a single contractor there does, and so does a single full time hire who moved last quarter. Map your team and your billing footprint before you map anything else. Both kinds of nexus stack. ### Post-Wayfair: What Actually Changed South Dakota v. Wayfair (2018) is the line in the sand. Before Wayfair, you needed physical presence to owe sales tax. After Wayfair, revenue or transaction count alone is enough. Most states wrote their own thresholds within 18 months. Most copied the South Dakota template: $100K in sales or 200 transactions, whichever you hit first. Some states picked a higher floor. A few dropped the transaction count entirely. For SaaS, the consequence is real. A Delaware C corp with one office can owe filings in 20+ states by year three, with zero hires outside the HQ. There is a second question that trips up founders. The nexus question is "do I owe filings here?" The taxability question is "is SaaS even taxable here?" Those are not the same question, and the answers vary by state. A few quick examples of how SaaS taxability splits across states. New York taxes SaaS. California does not. Texas taxes SaaS as a "data processing service," and only 80 percent of the price is taxable. Ohio taxes B2C SaaS but exempts most B2B SaaS. The pattern is messy on purpose, and you have to check each state on its own. ### State-by-State Threshold Ranges (5+ Specific States) Thresholds cluster around two numbers: $100K of revenue or 200 transactions. The exact rule and the SaaS taxability swing wide. Here are six named states to anchor the picture. **California.** $500K of revenue, no transaction count. SaaS is not generally taxable, so the threshold matters only if you also sell taxable goods or services. Threshold is high; tax exposure is often low. **New York.** $500K of revenue AND 100 transactions, both required. SaaS is taxable. If you sell to a lot of New York customers, you will cross both lines. **Texas.** $500K of revenue, no transaction count. SaaS is taxable as a "data processing service" at 80 percent of price. Big state, real exposure. **Washington.** $100K of revenue, no transaction count. SaaS is taxable. The low floor catches a lot of early stage SaaS. **Florida.** $100K of revenue, no transaction count (effective 2021). SaaS is not generally taxable, so the threshold mostly affects sellers of taxable goods. Filing duties can still apply. **Illinois.** $100K of revenue OR 200 transactions. SaaS is not generally taxable in most cases, though digital products are. A few patterns to take away. Thresholds cluster at $100K or $500K. A 200 transaction tripwire shows up in many states. Crossing a threshold does not always mean you owe tax, but it can still trigger a filing duty. State tax thresholds also change. Kansas removed its $100K floor in 2021. Louisiana dropped the 200 transaction trigger in 2023. Always verify the current state rule before you register or file. Bookmark each state's Department of Revenue page. ### The 90-Day Founder Action Checklist You can run the full play in one quarter. Here is the week by week. **Days 1-14: Pull the data.** Export 12 months of invoices from Stripe, Chargebee, or whatever bills your customers. Group by ship-to state, or by billing state if you do not capture ship-to. Build a simple table: state, revenue, transaction count. This is your raw exposure map. **Days 15-30: Map nexus exposure.** For each state with more than $50K of revenue or more than 150 transactions, look up the current threshold. Flag every state where you are at 80 percent or higher of either threshold. Flag every state you have already crossed. **Days 31-45: Determine taxability.** For each flagged state, look up whether SaaS is taxable there. TaxJar's state guides and Avalara's free SaaS taxability matrix are the two fastest references. Do not buy software yet. The goal here is a yes/no per state. **Days 46-60: Register where required.** Use each state's Department of Revenue portal. Register only where you have crossed the threshold AND SaaS is taxable. Registration is free in most states and takes under an hour per state. **Days 61-75: Set up collection.** Configure your billing tool to charge sales tax in the states you registered. Stripe Tax, Paddle, and Chargebee all handle this. Stripe Tax is the cheapest path under roughly $5M of ARR. **Days 76-90: File and decide on automation.** File your first returns. Decide whether to keep filing by hand (works fine under 10 states) or buy a tool. TaxJar, Avalara, and Anrok are the common picks once filings cross 10 jurisdictions. One last note for SaaS tax compliance. If you are already 18 months past threshold in a state with no registration, look up voluntary disclosure agreements (VDAs) before you walk in the front door. A VDA caps back taxes to a fixed look back, usually three or four years, and waives penalties. Going in cold can mean ten years of back taxes. ## Key Takeaways - **Two flavors of nexus:** physical (office, contractor, hire, server, inventory) and economic (revenue or transactions per state). - **Wayfair changed the game in 2018:** revenue or transaction count alone is now enough; physical presence is no longer required. - **Thresholds cluster at $100K or $500K of revenue,** with a 200 transaction tripwire common across many states. - **Threshold trip does not always mean tax owed:** SaaS taxability varies by state (NY taxes it, CA does not, TX taxes 80 percent of it as data processing). - **A 90-day plan covers the full path** from "I have no idea" to "I am registered, collecting, and filing where I owe." - **Use a VDA if you are already over threshold and unregistered:** it caps back taxes and waives penalties. ## Conclusion The back tax bill that wipes runway is avoidable. The states are not going to forget about you. They are already cross referencing Stripe data and 1099-K filings to spot unregistered SaaS sellers, and the notice cycle has gotten faster every year since 2020. The cost of getting ahead of it is one focused quarter and a spreadsheet. The cost of waiting is six figures of back tax exposure plus penalties plus interest, and the awkward call to your investors about why net burn just spiked. Pull the data this week. Map your exposure next week. You can be registered, collecting, and filing by the end of the quarter, with no surprise letters in your mailbox. Growthy categorizes automatically. You review and approve. Done before lunch. [Get started with Growthy](https://growthy.com/signup/?utm_content=sales-tax-nexus-for-saas-startups). ### [Cash Burn and Runway for Early-Stage SaaS: How to Calculate, Extend, and Survive](https://growthy.com/blog/cash-burn-runway-for-early-stage-saas): Calculate gross burn, net burn, and runway with a worked example. Pull monthly burn from QBO and Stripe. Three tactics to extend runway by months. ## Introduction Runway is the one number that decides whether your next six months are about building or scrambling. Founders who track cash burn weekly raise on their own terms. Founders who guess get a forced bridge round at terms they hate. This article walks through gross burn, net burn, and runway with a single worked example you can map to your own numbers. It shows how to pull monthly burn from QBO and Stripe. Then it walks three tactical levers to extend runway: a cost cut, a pricing change, and a bridge round. The numbers below use one fictional SaaS company so the example stays continuous and easy to track. The Growthy signup at the end of this piece gives you a live runway view, so the close is not a cold ask. ## Body ### Gross Burn, Net Burn, and Runway: Definitions with Worked Examples Gross burn is total cash going out the door each month. Rent, payroll, software, contractors. Every dollar that leaves your bank account, regardless of what comes in. Net burn is gross burn minus cash collected that month. It is the real hole you are filling. Runway is your cash balance divided by net burn. It tells you how many months you have at the current pace before the bank account hits zero. Meet Northwind Analytics. A fictional early-stage SaaS at $42K MRR, $135K monthly opex, and $90K monthly cash collected, with $540K in the bank. **Gross burn = $135K.** Total opex out the door. **Net burn = $135K minus $90K = $45K.** That is the monthly hole. **Runway = $540K divided by $45K = 12 months.** Twelve months to break even, raise, or shut down. Here is the trap. Gross burn looks scary in isolation. But the only metric an investor underwrites is net burn against runway. A high gross burn paired with strong cash-in is a different story than the same gross burn with weak collections. ### How to Derive Monthly Burn from QBO and Stripe You need two numbers each month: total cash out (gross burn) and total cash in. QBO gives you the first one cleanly. Stripe validates the second. From QBO, pull the Profit and Loss report filtered to the last completed month. The total expenses line is your gross burn input. Then pull the Statement of Cash Flows, or simply sum the bank-feed cash-in entries, for total cash collected that month. From Stripe, go to Reports, then Balance, then Payout reports for the same month. The net cash settled to your bank account is the Stripe-side cash-in figure. Cross-check it against the QBO bank-feed total. They should match within a few percent. Two common discrepancies will trip you up. First, Stripe payouts cross month boundaries. A payment captured on the last day of the month often settles two business days later, so it lands in the next month's cash-in. Second, refunds and chargebacks. If you record gross revenue without netting refunds, your cash-in will look higher than what hit the bank. The fix is simple. Always use cash actually settled, not invoiced revenue, when computing net burn. Invoiced revenue is for the P&L. Cash settled is for runway. ### Three Tactical Scenarios to Extend Runway Back to Northwind Analytics. Twelve months of runway. The CEO wants 18. Here are three levers and the math each one buys. #### Cost-Cut Scenario Pause two non-essential tools and one contractor. Drop a $1.5K per month BI tool you barely use. Pause a $3K per month PR retainer that has not driven a single qualified lead. End a $3.5K per month contract designer once the current sprint ships. Total savings: $8K per month. New net burn: $45K minus $8K = $37K. New runway: $540K divided by $37K = 14.6 months. You bought 2.6 months for a Saturday morning of decisions. The trade-off is real, though. Pulling growth spend can also pull pipeline. If the PR retainer was driving any signal at all, you will feel the gap in 60 days. #### Pricing-Change Scenario Raise list price on new logos by 15 percent. Existing contracts honor old pricing through renewal. The blended ARPU lifts from $42K MRR to roughly $46K MRR over 90 days as new deals close at the new rate. New net burn at $46K MRR collected: $135K minus $96K (after a 90-day ramp) = $41K. New runway: $540K divided by $41K = 13.2 months. Pricing changes show up slowly because of the renewal cycle. Grandfathering existing customers is a trust move with a measurable ARR cost. You give up some short-term revenue to keep the relationship clean. Worth it most of the time. #### Bridge-Round Scenario Raise $250K at flat terms from an existing investor. A SAFE or convertible note keeps the round light on legal cost. Cash balance jumps from $540K to $790K. At the unchanged $45K net burn, runway extends from 12 to 17.6 months. A bridge buys time but does not fix the engine. The burn is still $45K. If the next 6 months do not move the metrics that justified the bridge, you are back at the table with a smaller story. Founders forget this. The bridge clock starts the day the wire hits. ### What the Numbers Do Not Catch Two distortions to watch. Annual SaaS prepays inflate a single month of cash-in when they land. A $30K annual contract paid up front makes that month look great and the next 11 months look thin. Seasonality matters too. Q1 collections often lag as buyers reset budgets. Q4 deals get pulled forward to hit the year. A single-month snapshot taken in either window can mislead. Use a 3-month trailing average of net burn as your operating number. Use the single-month figure as your early-warning signal. When the single month diverges 20 percent or more from the trailing average, that is the moment to look closer. ## Key Takeaways **Gross burn is total cash out. Net burn is cash out minus cash in. Runway is cash divided by net burn.** **Pull gross burn from your QBO P&L. Pull cash collected from QBO bank feeds, cross-checked against Stripe payout reports.** **Cost cuts, pricing changes, and bridge rounds each buy months. Model the new runway before you commit to the move.** **Use a 3-month trailing average for operating decisions. Use single-month figures as your early-warning signal.** ## Conclusion Runway is a forecast, not a fact. Founders who survive treat it as a weekly review item, not a quarterly board deck slide. The Northwind Analytics CEO who models all three scenarios on a Saturday morning bought herself a 2026 she otherwise would have spent fundraising. The math is not hard. The discipline of doing it weekly is what separates the founders who choose their next move from the founders who get cornered into one. Pick your version of Northwind. Pull the numbers. Run the scenarios. Then decide. Growthy categorizes automatically. You review and approve. Done before lunch. [Get started with Growthy](https://growthy.com/signup/?utm_content=cash-burn-runway-for-early-stage-saas). ### [Restaurant Bookkeeping Software: What Actually Works for Bookkeepers (Not In-House GMs)](https://growthy.com/blog/restaurant-bookkeeping-software): Managing 8 restaurant clients? See how Toast, Square, and QBO integrations stack up for external bookkeepers — and what to look for beyond Restaurant365. Restaurant Bookkeeping Software: What Actually Works for Bookkeepers (Not In-House GMs) Your client's Toast POS rings up $4,200 in sales on a Saturday. What hits their bank account on Tuesday is $3,847.18. That $352.82 gap is card processing fees, tips collected on behalf of employees, one voided entrée, and a partial refund on a bottle of wine someone complained about. You have to account for every dollar of it, correctly, every week, for every restaurant client on your roster. That's the real job. Not recipe costing. Not labor scheduling. Not 86-ing menu items when food costs spike. The external bookkeeper's job is getting daily POS activity into QBO accurately, reconciling deposits, and keeping tip liability off the income statement. Most "restaurant accounting software" content is written for the restaurant operator or controller, someone embedded in one location trying to run a tighter kitchen. This article is written for you: the bookkeeper managing 5, 8, maybe 12 restaurant clients, each running a different POS system, each with their own sales mix and quirks. > **What is the best restaurant accounting software for bookkeepers?** > > For external bookkeepers managing multiple restaurant clients, the best setup combines QuickBooks Online with a POS-specific integration layer (Shogo, Bookkeep, or native exports) rather than an all-in-one platform like Restaurant365. Restaurant365 runs $199-$350/month per location and is built for in-house operators running inventory and labor scheduling, not for external bookkeepers who need clean, consistent journal entry automation across a mixed client roster. The right answer depends on which POS systems your clients run and whether you're optimizing for automation, cost, or accuracy. ## Key Takeaways - **Restaurant365 is excellent software built for the wrong buyer:** it's an operator platform, not a bookkeeper workflow tool, and the per-location pricing model doesn't work for multi-client practices - **The $352.82 deposit gap is the core reconciliation problem:** tips, card fees, voids, and split tender create a daily mismatch between POS sales and bank deposits that manual exports don't solve cleanly - **Tip pool accounting is the most commonly mishandled item:** tips collected through POS are a liability, not revenue, until distributed; misclassifying them inflates income - **Shogo and Bookkeep are the two purpose-built QBO bridges** for restaurant POS data, running $10-$15/client/month vs. native integrations that break on edge cases - **8 restaurant clients at 3-4 hours each = 24-32 hours/month** in manual reconciliation at the current baseline; the right integration layer recovers most of that - **Fast onboarding matters more in restaurants than most verticals.** Restaurants churn faster than other SMBs; your setup process needs to be repeatable in under 2 hours --- ## The Restaurant Bookkeeping Problem Nobody Talks About The deposit reconciliation problem is more annoying than it sounds on paper. Toast and Square both produce daily sales summary reports. In theory, you pull the report, build a journal entry, done. In practice, the daily POS report shows gross sales. The deposit is net of card processing fees, which post separately on a different schedule. Tips appear in the gross sales figure but they're not revenue. They're a pass-through liability that clears when tip-out runs. Voids reduce the gross figure, but they may or may not show as a credit on the settlement report depending on when the void was processed. If a table paid with two cards and one was declined and retried, the settlement log may show three transactions for one $84 check. None of this is complicated accounting. It's just tedious, and the volume compounds across clients. Three restaurant clients at 3-4 hours of reconciliation each is a part-time job. Eight clients is a full-time problem. The software question isn't "which platform is best." It's simpler: which workflow eliminates the most manual matching, while keeping everything inside QBO? --- ## What Restaurant Accounting Actually Involves (Beyond P&L) Most restaurant clients don't have a controller. They have you, a stack of POS exports, and a bank feed. Here's what you're actually tracking: **Daily sales journal entries.** Every operating day ideally produces one journal entry. Debit Undeposited Funds for the net deposit amount. Credit Food Sales, Beverage Sales, and Alcohol Sales by category. Credit Gift Card Liability for redemptions and Sales Tax Payable for collected tax. The entry has to balance to the penny before you touch the bank rec. **COGS as a percentage of revenue.** Restaurants live or die on food cost percentage (target: 28-32%) and beverage cost (18-24%). You're not doing recipe costing. That's the chef's job. But you need COGS properly split so the client can read their P&L. Lumping food and liquor into one cost line makes the numbers useless. **Tip pool accounting.** Tips collected via POS run through a specific flow that most bookkeepers get wrong. When a card tip is collected, it's not income. It's a liability owed to staff. The entry: debit Tips Receivable (or Undeposited Funds net of tip), credit Tips Payable. When payroll runs and tips are distributed, debit Tips Payable, credit cash (or payroll clearing). If you record the POS gross as revenue without separating tips, you're overstating income. **Sales tax by category.** Food is taxable in most states, but there are carve-outs for certain categories. Alcohol is taxed differently in some jurisdictions. Gift card sales aren't taxable at purchase. They're taxable at redemption. This varies by state, but the QBO setup needs to handle it. **Gift card breakage.** Gift cards that are never redeemed become income eventually, under state breakage rules. The liability sits on the books until it's either redeemed or broken. Most small restaurant clients don't have a massive gift card liability, but it needs to live somewhere other than Deferred Revenue forever. **Comps and voids.** A voided check removes a sale before it's finalized. A comp reduces revenue after. Both need to be tracked (not just zeroed out), because comps in particular are a key metric restaurant operators watch for theft prevention. --- ## The Big Players (and Who They're Actually Built For) **Restaurant365 ($199-$350/month per location)** R365 is genuinely good software. It handles [accounts payable](https://growthy.com/blog/accounts-payable), inventory management, recipe costing, labor scheduling, and daily sales entry, all tightly integrated with the POS. If you're the controller at a 4-location bar group and you spend your days managing food costs and vendor invoices, R365 is worth every dollar. If you're an external bookkeeper with 8 restaurant clients, R365's model doesn't work. The pricing is per location per month. At the low end, 8 clients runs $1,592/month in software just for your restaurant book. R365 assumes you're embedded in the operations. It's not designed for a bookkeeper who touches each client once or twice a week and needs clean data in QBO. **Toast (POS only)** Toast is a POS system, not accounting software. It produces daily sales exports and has a QuickBooks integration, but the native QBO connector is limited. It maps sales to income accounts adequately but handles tips, voids, and split tenders inconsistently. The integration works if your client's sales mix is simple. It breaks when it encounters the edge cases that show up in every restaurant. **Square for Restaurants and Clover Dining** Same situation. Both produce accountable export files. Both have QBO integrations of varying quality. Neither is designed with the external bookkeeper's workflow in mind. Clover's reporting UI is particularly difficult to navigate if you're not logging in as the restaurant operator. **MarginEdge and xtraCHEF by Toast** These are operator-focused tools for food cost management and vendor invoice capture. MarginEdge runs $300+/month. xtraCHEF is built into the Toast ecosystem. If your client is sophisticated enough to be tracking recipe costs and managing invoices digitally, these are worth evaluating. They're operator tools, and you'd be advising the client to adopt them, not using them as a bookkeeper platform. --- ## QuickBooks + POS Integration Options The most practical architecture for external bookkeepers is QBO as the GL with a dedicated middleware layer handling POS translation. Here are the main options: **Shogo ($10-$15/client/month)** Shogo is a restaurant-specific QBO integration that pulls daily sales data from Toast, Square, Clover, and a few others, maps it to your QBO chart of accounts, and creates the daily journal entry automatically. It handles tip separation, gift card liability, and category splits better than native connectors. The per-client pricing model actually works for a bookkeeper practice. Setup takes 45-60 minutes per client once you have the COA template built. **Bookkeep ($10-$20/client/month depending on plan)** Bookkeep covers a wider range of POS systems (including Shopify POS, which Shogo doesn't support) and handles Square and Toast. It generates daily summary journal entries with more flexibility in how you map categories. Some bookkeepers prefer Bookkeep's COA mapping interface over Shogo's. Both are worth testing on one client before committing. **Manual CSV import** If your client's POS produces a clean daily summary export, you can build a template and import manually. This works for 1-2 clients. It doesn't scale, and it creates reconciliation errors when file formats change after POS updates. Option Best For Monthly Cost/Client Handles Tips Edge Cases Shogo Toast, Square, Clover clients $10-15 Yes Good Bookkeep Mixed POS, Shopify $10-20 Yes Good Native Toast-QBO Simple sales mix only Included Partial Weak Native Square-QBO Simple sales mix only Included Partial Weak Manual CSV 1-2 clients, simple setup $0 Manual On you Restaurant365 In-house operators $199-350 Yes Excellent --- ## The Multi-Client Bookkeeper Workflow The economics of restaurant bookkeeping only work if your per-client setup is standardized and your monthly workflow is repeatable. Start with a COA template. Create a QBO template company for restaurant clients and clone the chart of accounts for each new client. Your accounts should include: Food Sales, Beverage Sales, Alcohol Sales, Gift Card Liability, Tips Payable, Sales Tax Payable, Merchant Processing Fees, and separate Cost of Goods for food and beverage. If you build this once, you're mapping Shogo or Bookkeep to the same account structure every time. The daily journal entry pattern should be locked. The debit is always Undeposited Funds (net of fees, matching the bank deposit). Credits go to each revenue category and liability account. Merchant fees hit their own expense line. Tips clear through Tips Payable. Once this entry runs automatically through your middleware layer, you're looking at a 15-20 minute weekly review per client instead of 3-4 hours of manual reconciliation. That net-of-fees deposit pattern is the same one online sellers face. If a restaurant client also sells online, the [ecommerce bookkeeping](https://growthy.com/blog/ecommerce-bookkeeping) guide walks the payout decomposition for Shopify, Amazon, and Stripe. Fast onboarding is a competitive advantage in restaurant bookkeeping specifically. Restaurant owners churn bookkeepers more than most small business categories. The business is operationally intense, and they're often unhappy with their current setup. If you can get a new client operational in under two hours (POS connected, COA mapped, first weekly review done), you can acquire and retain at a rate that makes the segment profitable. --- ## What to Look For in Restaurant Bookkeeping Software If you're evaluating tools for a restaurant client roster, here's what actually matters: **Daily sales journal entry automation.** The tool should create one balanced entry per day, per location, automatically. If you're touching every transaction manually, it's not automation. It's a different kind of data entry. **Correct tip liability handling.** Tips go to Tips Payable, not revenue. If the software can't separate collected tips from sales and route them to a liability account, you'll spend time fixing the P&L every month. **Revenue category splitting.** You need food, beverage, and alcohol broken out. Not one "Sales" line. Your client needs this for food cost %. Their accountant needs it for alcohol license compliance. And you need it to make the reconciliation work. **Deposit reconciliation.** The daily entry should match the bank deposit net of fees. If the tool doesn't account for merchant processing fees in the mapping, you're left with an unexplained variance every time. **QBO-native operation.** Your clients are on QBO. You're not moving them off QBO. The right tool works within QBO, not alongside it. Anything requiring a separate login, separate reporting, or data re-entry in two systems is a liability. **Per-client pricing.** Restaurant365 doesn't work for external bookkeepers because it prices per location, not per bookkeeper. You need a model where adding a client costs $10-20/month, not $200-350. See our [QuickBooks integrations hub](https://growthy.com/topics/quickbooks-integrations) for more on building a QBO-first workflow across different POS and commerce platforms. --- ## Bottom Line If you're the in-house controller at a single restaurant group managing multiple locations, Restaurant365 is the best-in-class option. Its depth in inventory, labor, and vendor management is built for that exact role. If you're an external bookkeeper with 8 restaurant clients each running Toast, Square, or Clover, you don't need that depth. You need accurate daily journal entries, clean deposit reconciliation, and a setup process you can replicate in under two hours. Shogo and Bookkeep solve that problem at a price point that makes restaurant clients profitable to serve. The honest answer isn't one winner. It's matching the tool to the use case. Restaurant365 wins for operators. For external bookkeepers, a QBO-plus-middleware model wins on cost, scalability, and the ability to maintain a standardized workflow across a mixed-POS client roster. For bookkeepers also managing clients in ecommerce, retail, or other point-of-sale environments, see our [ecommerce accounting hub](https://growthy.com/topics/ecommerce-accounting) and the companion piece on [best ecommerce accounting software](/blog/best-ecommerce-accounting-software) for how the same reconciliation problems show up in different commerce contexts. --- Restaurant books are uniquely messy because POS data arrives in formats that don't map cleanly to QBO without intervention. Growthy's [dual-mode review queue](https://growthy.com/ai-bookkeeping) handles daily sales categorization before you close the month. It runs in workflow mode on QBO or Xero, or as a standalone GL. POS deposits get triaged correctly so the corrections that used to take 45 minutes per client shrink to the handful of transactions that genuinely need your judgment. [Get started with Growthy](/signup?utm_content=restaurant-bookkeeping-software), built for bookkeepers managing multi-client workflows. ### [Best Ecommerce Accounting Software (2026): Honest Comparison](https://growthy.com/blog/best-ecommerce-accounting-software): Compare ecommerce accounting software: A2X, Webgility, Xero, Bench, and Growthy. See which tool fits a merchant doing their own books and which fits a bookkeeper with many ecommerce clients. You sold $47,000 on Shopify last month. Stripe deposited a single $43,812.44 lump sum. Somewhere in that gap: platform fees, refunds, chargebacks, PayPal holds, and three partial payouts from Amazon. Your accountant is asking for a P&L. Your books show one line item labeled "deposit." That's the ecommerce accounting problem in one paragraph. Regular accounting software handles invoices and expenses just fine. It wasn't built for payout reconciliation, multi-channel sales, or inventory COGS that moves every time someone buys a $22 candle. This comparison covers the tools that solve these problems and is honest about which tool is right for which buyer. Spoiler: the best tool for a Shopify merchant handling their own books isn't the best tool for a bookkeeper managing 12 ecommerce clients. ## What is ecommerce accounting software? Ecommerce accounting software connects your sales channels, like Shopify, Amazon, and Etsy, and your payment processors, like Stripe and PayPal, to your accounting system. It splits each payout into sales, fees, refunds, and tax. Your books then match what happened in your store. It sits between your channels (Shopify, Amazon, Etsy, WooCommerce), your payment processors (Stripe, PayPal, Shop Pay), and your accounting system (QuickBooks, Xero). It handles the translation work in between. That means splitting a single bank payout into its component transactions, categorizing marketplace fees, tracking COGS against inventory, and flagging sales tax nexus across states. Without it, you reconcile by hand, one settlement report at a time. ## Key Takeaways - **A2X is the best payout reconciliation tool for Shopify and Amazon merchants** (clean settlement logic, native QBO/Xero integration, from $29/month per sales channel) - **Webgility is the right call if inventory sync is your primary headache** (50+ integrations, strong order management, $69–299/month billed annually) - **Xero's native ecommerce connectors work well for single-platform businesses** moving off QuickBooks - **Bench is a done-for-you service**, not software: from $199/month (up to $250K revenue) or $399/month standard, for business owners who want to hand off bookkeeping entirely - **Growthy is built for bookkeepers managing multiple ecommerce clients**: per-client pricing that scales with a practice, not per-store fees that multiply across every client you add --- ## What Ecommerce Accounting Software Actually Does Standard accounting tools (QuickBooks Online, Xero, Wave) record money in and money out. That's enough for a service business with clean invoices. It breaks down fast for ecommerce. Here's why: Shopify doesn't deposit your sales revenue. It deposits a net payout after subtracting its 2.9% + $0.30 per transaction, any refunds processed, shipping label costs, and Shopify Capital repayments if you have a loan. Amazon is messier: FBA fees, storage fees, referral fees, reimbursements, and A-to-z claims all come out before you see a dollar. A $43,000 monthly payout from a single bank deposit needs to be split into: - Gross sales by product category - Platform fees (expensed) - Refunds (revenue reduction) - Shipping costs (COGS or expense depending on method) - Sales tax collected (liability, not income) Good ecommerce accounting software does this split automatically. It reads the detail from the sales channels and payment processors, not from the bank feed. Beyond that, better tools also handle: - **COGS tracking tied to inventory**: when you sell a product, cost of goods sold should flow automatically from your purchase history - **Multi-channel consolidation**: Shopify + Amazon + Etsy in one P&L, without manual export-and-paste - **Sales tax nexus flags**: economic nexus thresholds vary by state; the software should surface when you've crossed a threshold - **Marketplace fee categorization**: Amazon referral fees, Etsy transaction fees, and Shopify app fees each need a home in your chart of accounts Selling into more than one country adds multi-currency work on top: the sale, the conversion, and the fee all have to land in the currency your books use. Tools differ in which problems they prioritize, who they're built for, and what they charge. The software automates the work. For the manual method behind the entries (payout decomposition, clearing accounts, COGS), see [ecommerce bookkeeping](https://growthy.com/blog/ecommerce-bookkeeping). --- ## The Two Buyers (and Why They Need Different Software) Before comparing tools, get clear on which buyer you are. The wrong frame leads to the wrong choice. **Buyer 1: The merchant doing their own books.** You sell on Shopify, Amazon, or Etsy. Maybe both. You do your own bookkeeping or have a bookkeeper who works exclusively on your business. You need software that makes your ecommerce data clean enough to run a P&L and hand to a CPA at tax time. **Buyer 2: The bookkeeper managing multiple ecommerce clients.** You have 8, 12, or 20 ecommerce clients. Each one is on a different platform. You need a workflow that doesn't require buying separate software for every client, one that scales as you add more clients without your monthly software bill tripling. These two buyers have fundamentally different needs. A2X is excellent for Buyer 1. It starts at $29/month per sales channel. For Buyer 2, a 12-client A2X stack starts at $348/month in A2X fees alone, before your own accounting software, before payroll, before any other tool in your stack. The per-store pricing model that works perfectly for a merchant becomes a scaling problem for a bookkeeper. Keep this distinction in mind for every section that follows. --- ## A2X: Best for Shopify and Amazon Merchants A2X is the most widely used payout reconciliation tool for a reason: it works. The payout-period logic is clean. Settlement summaries map accurately to QBO and Xero journal entries. The Shopify integration is mature. The Amazon integration handles FBA, FBM, and multi-marketplace accounts without requiring manual mapping. For a merchant managing one or two storefronts, A2X does exactly what it promises: turns messy marketplace payouts into reconciled, categorized accounting entries. Setup takes a few hours. After that, it mostly runs itself. Honest limitation: A2X is per-store, per-month pricing. Plans start at $29/month per sales channel and rise with order volume. That's reasonable for a merchant. For a bookkeeper with 12 Shopify clients, that's at least $348/month in A2X fees before accounting for clients on Amazon, Etsy, or Walmart Marketplace (each of which may require a separate connection). **Best for:** Shopify and Amazon merchants handling their own bookkeeping, or businesses with one primary sales channel. **Pricing:** from $29/month per sales channel, rising with order volume (verify current pricing at a2xaccounting.com). --- ## Webgility: Best for Inventory-Heavy Retailers Webgility takes a different approach: it leads with inventory sync and order management, then handles the accounting side. If you run a retail operation with significant SKU complexity (high-volume Shopify store, wholesale plus DTC, or a multi-warehouse setup), Webgility's 50+ platform integrations and order-level detail are worth the added complexity. Where A2X focuses on clean payout reconciliation, Webgility focuses on syncing the full order lifecycle: inventory levels, order status, fulfillment, and landed cost. For retailers where inventory accuracy drives everything downstream (COGS, reorder points, margin analysis), that order-level visibility matters. Setup is more involved than A2X. The platform has more configuration options, which means more to get right during onboarding. If your primary headache is reconciling Shopify payouts (not managing inventory), Webgility is more tool than you need. **Best for:** Inventory-heavy retailers with complex SKU management and multi-channel fulfillment. **Pricing:** $69–299/month billed annually ($79–349 billed monthly), by order volume and features (verify current pricing at webgility.com). --- ## Xero: Best Native Accounting With Ecommerce Add-Ons Xero is accounting software first. Its ecommerce capabilities come via native connectors (Shopify, Amazon, and several others available directly in the Xero App Store). For single-platform businesses already considering a move away from QuickBooks, Xero's native integrations mean one fewer third-party tool in the stack. The Shopify connection handles basic payout reconciliation and sales categorization. It's not as granular as A2X's settlement logic, but it covers most small-merchant use cases without requiring a separate subscription. The accounting interface is clean, bank reconciliation is fast, and Xero's reporting is meaningfully better than QBO's for most users. Where Xero falls short: multi-marketplace complexity. A business running Shopify, Amazon, and Etsy with significant volume will hit Xero's ecommerce connector limits quickly. At that point, you're adding A2X or Webgility anyway, and you're back to the same per-store pricing math. **Best for:** Single-platform ecommerce businesses looking for strong native accounting with a Shopify or Amazon connection included. **Pricing:** see current Xero plans at xero.com; ecommerce connectors may have additional fees in the App Store. --- ## Bench: If You'd Rather Outsource Entirely Bench is in a different category. It's not software you buy to manage your own books. It's a done-for-you bookkeeping service that uses its own internal software. You connect your accounts, and Bench's team does the categorization, reconciliation, and reporting. For an ecommerce business owner who genuinely doesn't want to touch bookkeeping (and has the revenue to justify the cost), Bench removes the problem entirely. You get monthly financial statements, a dedicated bookkeeper, and tax prep add-ons available. The limitation is control. You're not looking at transactions. You're trusting someone else's workflow and response time. And at $399/month for its standard bookkeeping plan ($199/month up to $250K revenue; catch-up work costs extra), it's among the more expensive options in this comparison. It isn't overpriced for what it delivers. It's just a different value proposition than software. **Best for:** Business owners who want to hand off bookkeeping entirely and are willing to pay a service premium for it. **Pricing:** $199/month up to $250K revenue, $399/month standard, $649/month with tax filing (verify current pricing at bench.co). --- ## Growthy: Best for Bookkeepers Managing Multiple Ecommerce Clients Growthy isn't the right tool if you're a merchant handling your own books. A2X is probably better for that use case. This section is for bookkeepers. If you manage 8, 12, or 20 ecommerce clients across Shopify, Amazon, Etsy, and WooCommerce, the per-store pricing model doesn't work. You shouldn't have to buy a separate A2X license for every client you onboard. Your software costs shouldn't double every time you land a new account. Growthy is built around a different model: the bookkeeper as the customer, not the merchant. The categorization engine auto-categorizes high-confidence transactions, and a person reviews the rest. The workflow is designed for someone moving between client accounts throughout the day, not someone managing one business. Per-client pricing scales with a bookkeeping practice. Adding a new ecommerce client doesn't require buying another per-store license. See [Growthy pricing](/pricing) for current plans. **Best for:** Bookkeepers and accounting firms managing 5+ ecommerce clients across multiple platforms. [**Get started with Growthy**](/signup/?utm_content=best-ecommerce-accounting-software) --- ## Ecommerce Accounting Software Comparison Matrix Tool Best For Pricing Model Platform Coverage Multi-Client Honest Limitation **A2X** Shopify/Amazon merchants Per store/month Shopify, Amazon, Etsy, Walmart No Costs multiply across clients **Webgility** Inventory-heavy retailers Per order volume 50+ integrations Limited Complex setup; overkill if inventory isn't the problem **Xero** Single-platform SMBs Per company/month Native Shopify, Amazon add-ons No Multi-marketplace limits; connectors less granular than A2X **Bench** Business owners outsourcing entirely Per business/month All (handled internally) No Not software you control; from $199/mo **Growthy** Bookkeepers with 5+ ecommerce clients Per client/month Any channel, via QBO sync, bank feeds (Plaid) or CSV import Yes Not designed for merchant self-service *Pricing reflects publicly available information as of October 2026. Verify current rates before purchasing.* --- ## How to Choose Ecommerce Accounting Software The decision comes down to two questions: who manages the books, and how complex is the operation? **Are you the business owner doing your own books?** - Shopify or Amazon primary →[A2X](https://www.a2xaccounting.com/) is the most reliable payout reconciliation tool at a reasonable per-store price - Considering moving off QBO + single platform → Xero with its native connectors may give you accounting software plus ecommerce sync in one subscription - Heavy inventory management → Webgility if SKU complexity is your primary pain point **Would you rather hand off bookkeeping entirely?** Bench is designed for this. You're paying a service premium, but you get a dedicated bookkeeper and financial statements without managing software yourself. **Are you a bookkeeper managing multiple ecommerce clients?** Per-store tools scale poorly. A 12-client practice using A2X at its $29-per-channel minimum is spending $348/month before anything else. Growthy's per-client pricing is built for this workflow. See also: [best bookkeeping software for multi-client firms](/topics/ecommerce-accounting) for a deeper look at practice-level tool selection. **Do you sell across Amazon specifically and need detailed FBA accounting?** Amazon FBA introduces fee complexity (referral fees, FBA fees, storage, reimbursements) that not every tool handles cleanly. Our [Amazon seller bookkeeping guide](/topics/ecommerce-accounting) covers this in more detail. --- The honest answer is that there's no single best ecommerce accounting software. These accounting tools each win a different job. A2X earns its reputation for merchants. Webgility earns its place for inventory-heavy operations. Growthy earns its place for bookkeepers who need a practice-level workflow. The wrong question is "which tool is best." The right question is which tool is built for how you actually work. For bookkeepers managing ecommerce clients who also need a categorization layer on top of their sync tool, Growthy operates as a [standalone GL for POS-heavy books](/ai-bookkeeping) or in workflow mode on QuickBooks Online, with categorizations syncing back to QBO. It's 85% accurate on first import, and you review the rest. ## Frequently asked questions ### What is the best accounting software for ecommerce? It depends on who manages the books. A2X is the pick for Shopify and Amazon merchants who want clean payout reconciliation. Webgility fits inventory-heavy retailers. Xero suits single-platform businesses. Bench is a done-for-you service. Growthy is built for bookkeepers managing several ecommerce clients across platforms. ### What is the best accounting software for Shopify stores? For most Shopify merchants, A2X is the most reliable choice. Its Shopify integration is mature, and settlement summaries map to QBO and Xero entries. Xero's native Shopify connector handles basic payout and sales categorization if you want one fewer tool. Webgility makes sense when inventory sync is your main problem. ### What is the best accounting software for Amazon sellers? A2X handles FBA, FBM, and multi-marketplace accounts without manual mapping. That matters because Amazon takes referral fees, FBA fees, storage fees, and reimbursements before you see a dollar. Not every tool handles that fee mix cleanly. Our Amazon seller bookkeeping guide covers the details. ### Can ecommerce bookkeeping be automated? Yes, for the routine work. Good tools read order and payout detail from your sales channels and payment processors, not just the bank feed, then split and categorize each payout. Growthy suggests categories with confidence scores, syncs categorizations back to QuickBooks Online, and low-confidence items wait for a person's review. ### What accounting software helps firms manage multiple ecommerce clients? Per-store tools scale poorly for firms. A 12-client practice on A2X at its $29-per-channel minimum spends $348 a month before anything else. Growthy uses per-client pricing, so adding a client doesn't add another per-store license. It's built for 5 or more ecommerce clients across platforms, not for merchant self-service. ### How does ecommerce accounting software connect to QuickBooks or Xero? It sits between your sales channels, your payment processors, and your accounting system. A2X posts settlement summaries to QBO and Xero. Xero offers native connectors in its App Store for Shopify and Amazon. Growthy works with QuickBooks Online, where categorizations sync back to QBO, and also takes bank feeds through Plaid or CSV import. [**Get started with Growthy**](/signup/?utm_content=best-ecommerce-accounting-software) ### [Accounting Software for Multiple Clients: What Scales (2026)](https://growthy.com/blog/best-bookkeeping-software-multi-client-firms): Looking for accounting software for multiple clients? Compare QBOA, Double, Karbon and Growthy on cost per client, switching time, and review work. You're managing 15 clients. You open QBO for client one, set up a bank rule for their Stripe deposits, reconcile three months of transactions, close the tab. Open client two, start over. The bank rule you just built doesn't follow you. The pattern you trained on client one means nothing in client two's file. Multiply that by 15 and you get a firm where most of your working hours disappear before you touch anything a client would call "valuable." ## What's the best accounting software for multiple clients? The best accounting software for multiple clients depends on your bottleneck. QuickBooks Online Accountant (QBOA) is the usual base layer for QBO firms. On top of it, add one tool for the work that eats your week: Double for client questions, Karbon for job tracking, or Growthy for transaction categorization. The best option isn't the one with the longest feature list. It's the one that keeps your cost per client and your switching time flat as you grow from 5 to 15 to 25 clients. QuickBooks Online Accountant (QBOA) is the dominant platform, and it's genuinely good at client access management. It doesn't solve the core problem: categorization is still entirely manual inside each client file, and each new client adds another login, another chart of accounts, and another context switch. Most practices stall somewhere between 15 and 25 clients for that reason. Firms at that ceiling need a productivity layer on top of their client platform: something that surfaces exceptions, learns patterns across clients, and reduces the hours per client each month that manual categorization consumes. The right answer depends on where your bottleneck actually is. That's the problem this article is about. Not which bookkeeping software is best for a freelancer doing their own books (the internet has plenty of that). This is for bookkeeping firm owners managing 10 to 50 clients who need software that scales across a practice, not just within a single client file. There are really two walls, and they're often confused. The first is the categorization wall, and it shows up around 8 to 10 clients: the point where manual coding stops being annoying and starts eating your week. The second is the practice ceiling, and it sits between 15 and 25 clients: the point where per-client overhead (logins, chart setups, renewal dates, context switches) outruns the hours in a day no matter how fast you code. Feature grids answer neither. Cost per client and time per switch do. ## Key Takeaways - **The categorization wall hits around 8-10 clients**: below that, QBOA alone works fine; above it, you're either hiring or finding a multiplier - **The practice ceiling sits at 15 to 25 clients**: that's a per-client overhead limit, not a skill limit. Logins, chart setups, and context switching stack with every client you add - **QBOA is free and genuinely good** for client access and QBO workflow, but bank rules don't transfer between client files - **The ProAdvisor discount is flat**: 30% off ongoing subscriptions and 15% off employee and contractor fees, and that rate is the same at 5 clients as at 25 (Intuit states rates accurate as of 07/31/2025, unchanged as of 2026) - **Three billing models decide who pays**: ProAdvisor (the firm pays, 30% off ongoing), Direct (the client pays, 30% off for 12 months), Revenue Share (the client pays, 50% off the first 3 months) - **No verified per-plan dollar figure exists as of this update**: the live QuickBooks pricing pages did not load when we checked on 2026-09-03, so treat any list quoting exact plan prices with caution and check the source yourself - **Double (formerly Keeper) solves the communication bottleneck**, and it now does AI categorization too, inside its own close tool - **Growthy targets transaction categorization specifically**: 85% accuracy on first import, with a person reviewing and approving every batch - **Switching cost, not feature count, is what breaks a 20-client practice**: logging into a dozen separate books costs more time than any missing feature ever will - **The break-even math is straightforward**: hours per client × client count × hourly rate = monthly cost of staying manual --- ## Why the 15-to-25-Client Ceiling Is the Real Constraint Ask ten bookkeepers where their practice stalled. Most will name a number between 15 and 25 clients. That's not luck. It's what happens when the work per client outpaces the hours in a day. Here's the math. Each client on a separate QuickBooks Online file needs its own login. Its own bank feed setup. Its own chart of accounts. Its own categorization rules, taught from scratch. Its own renewal date and its own billing conversation. None of that is hard on its own. All of it stacks. At 5 clients, the extra work is annoying and you absorb it. At 15, it eats real hours every week and you start working evenings to stay level. At 25, most solo bookkeepers are firefighting instead of reviewing: chasing whichever file is loudest rather than closing books on a schedule. Notice what isn't on that list. Nothing about the software being inaccurate. Nothing about a missing feature. The ceiling is made of per-client overhead, and per-client overhead is the one cost that grows in a straight line with your book while your capacity does not. This is the real search behind "bookkeeping software for multiple clients." Buyers aren't asking which tool has the nicest dashboard. They're asking which setup lets one person, or a small team, keep 20-plus sets of books straight without burning out. For a deeper look at where that ceiling sits and what actually moves it, see [how many clients one bookkeeper can realistically handle](/blog/how-many-clients-can-one-bookkeeper-handle). --- ## The Multi-Client Problem Consumer Software Ignores The standard "best bookkeeping software" article on the internet compares Wave, FreshBooks, QuickBooks Self-Employed, and Zoho Books. Every one of those tools is built for a business owner doing their own books. One set of transactions. One chart of accounts. One user who knows every vendor by name. That's not your situation. Do the math on what multi-client bookkeeping actually costs at manual speed. Take 18 clients. Assume 3 hours per client per month on transaction categorization alone: before reconciliation, before reporting, before any client communication. That's 54 hours per month. At a $75/hr bookkeeper rate, you're spending $4,050 every month on categorization. That's before you've touched a single piece of work a client actually pays you for. Consumer software doesn't solve this because it was never designed to. The problem isn't the software being bad. It's that the software was designed for a different job: one person managing their own finances, not one bookkeeper managing 18 separate businesses simultaneously. The specific failure mode in multi-client work: **zero cross-client learning**. If you manage six restaurant clients, you're setting up vendor rules for Sysco, US Foods, and Toast POS six separate times. If you manage eight clients on Shopify, you're explaining Shopify payouts to eight separate bank rule configurations. Consumer software treats each client file as an island. Ecommerce clients are the most time-expensive of the bunch. The [ecommerce bookkeeping](https://growthy.com/blog/ecommerce-bookkeeping) guide has a dedicated per-client close workflow for running 10 to 30 of them at scale. There's a second failure mode that's easier to miss because it never shows up on an invoice: **zero cross-client visibility**. You can't answer "which of my clients has uncleared items older than 60 days?" without opening every file and checking. You can't see which books are behind without a spreadsheet you maintain by hand. Single-client software has no concept of a portfolio, so your portfolio view is whatever you're willing to rebuild manually each week. See also: [bookkeeping automation](/topics/bookkeeping-automation), a deeper look at where the hours actually go, and [the real cost of manual bookkeeping](/blog/cost-of-manual-bookkeeping) if you want the labor math broken out line by line. --- ## What Accounting Software for Multiple Clients Actually Costs Per Client QuickBooks Online is still the default for most firms. That's largely thanks to Intuit's ProAdvisor program. Knowing what that program does, and doesn't do, is the first step to pricing your own practice correctly. ### The ProAdvisor discount stack Intuit's ProAdvisor Preferred Pricing gives accounting professionals 30% off ongoing subscriptions. It also gives 15% off employee and contractor fees. Intuit states those rates were accurate as of 07/31/2025 and unchanged as of 2026. There are three ways that discount gets billed, and each one shifts cost to a different party: - **ProAdvisor billing:** the firm pays, and keeps the 30% off ongoing for as long as the subscription runs. - **Direct billing:** the client pays, and keeps 30% off for the first 12 months. - **Revenue Share billing:** the client pays, gets 50% off for the first 3 months, then moves to full price. That third model is the one that quietly costs firms client goodwill. The client hears "discount," settles in, and three months later the price steps up. Then they call you to ask why. If you use Revenue Share, put the step-up date in the engagement letter and in your own calendar, and tell the client the full-price number on day one rather than in month four. Intuit also announced monthly price changes for its Essentials, Plus, and Advanced plans, hitting renewals on or after 2026-08-01. The Free, Lite, Ledger, and Simple Start tiers were unchanged. That split matters if you're pricing a new client onto QuickBooks Online today: the tier you pick determines whether the renewal number moves. ### What does the discount actually change at 5, 15, and 25 clients? Short answer: the discount rate doesn't change at all. Your admin load does. We could not verify a current per-plan dollar figure for QuickBooks Online. The live pricing pages did not load when we checked on 2026-09-03. Any exact plan price you see quoted without a source is a guess, not a fact, including in articles that look authoritative. So this table prices the *method*, not the plan. Check the [live QuickBooks pricing page](https://quickbooks.intuit.com/pricing/) for today's rate before you quote a client. | Client count | What you're actually managing | How the ProAdvisor discount applies | Where cost can shift to the client | | --- | --- | --- | --- | | 5 clients | 5 separate subscriptions, logins, and chart-of-account setups | 30% off ongoing subscriptions, 15% off employee and contractor fees; same rate at any volume | Direct billing gives the client 30% off for their first 12 months | | 15 clients | 15 separate subscriptions, plus 15 renewal dates; the range where most solo bookkeepers hit the wall | Same 30% off. No volume bonus and no bulk-billing tier in the program | Revenue Share clients drop to full price after 3 months, right as they've settled in | | 25 clients | 25 separate subscriptions and logins to track, renew, and reconcile | Same 30% off as client 1. The rate never improves as client count grows | Whichever billing model you picked at client 1 usually becomes the default for every client after; admin load compounds even though the discount rate never does | The pattern in that table is the finding. The ProAdvisor discount is real and worth taking, but it's flat. It doesn't improve as your practice grows. What grows is the number of separate accounts, renewal dates, and billing conversations you manage by hand. So when you price your own services, model two lines, not one: 1. **Subscription cost per client.** Whatever today's plan rate is, minus 30% if you're on ProAdvisor billing, or zero to you if the client pays direct. 2. **Overhead cost per client.** Your hourly rate times the hours per month you spend on that client's setup, switching, chasing, and renewals. This is the line that scales badly, and it's the one nobody puts in a feature grid. If line 2 is bigger than line 1, and above roughly 10 clients it usually is, then shopping for a cheaper subscription is optimizing the wrong number. --- ## The Switching Cost Feature Grids Skip Picture a normal Tuesday for a bookkeeper running 18 clients on separate QuickBooks Online files. Every switch between client books means logging into a different account. Re-learning a different chart of accounts. Remembering which rules apply to which client, and which questions are still open with which owner. That's the cost a feature grid never shows: minutes lost per switch, times however many client-touches happen in a day. A bookkeeper who switches clients 6 to 8 times a day can lose close to an hour just re-orienting, before a single transaction gets coded. Switching cost has three parts worth naming separately, because they have different fixes: - **Access cost.** The login, the two-factor prompt, the wrong-account-selected detour. Fixable with a password manager and a single sign-on habit. This is the cheapest part. - **Context cost.** Re-loading which vendors this client uses, which accounts you mapped last month, which transactions you already asked about. Not fixable with tooling that treats each file as an island. - **Judgment cost.** The small errors you make in the first few minutes after a switch, because you're applying client A's mental model to client B's books. This one shows up later as a review finding, not as lost time. This is the real reason the ceiling sits where it does. It isn't that software runs out of accuracy past 20 clients. It's that a workday runs out of room for context switching past a certain point. Any tool that claims to raise the ceiling has to answer one question honestly: does it give you one view across clients, or does it just make each client file nicer to work in? If you want to see what a deliberate stack looks like in the range just below the ceiling, the [solo bookkeeper automation stack for 5 to 15 clients](/blog/solo-bookkeeper-automation-stack-5-to-15-clients) walks through the pieces in order. --- ## What Accounting Software for Multiple Clients Should Actually Do Before comparing products, it helps to have a clear framework. Six things matter when you're operating at scale: **1. Client switching without a full context reload.** You should be able to move between client files in under 10 seconds. If switching clients means closing one browser session, logging into another, re-orienting on the dashboard, and hunting for where you left off. That's a workflow tax you pay dozens of times per day. **2. Cross-client pattern learning.** This is the capability that separates multi-client tools from single-client tools. If you have two clients who both use Square, the categorization pattern from client one should accelerate client two. Not perfectly (every client's COA is different), but substantially. A tool that starts from zero on every client file doesn't serve a multi-client firm. **3. Exception surfacing, not everything surfacing.** The goal isn't to see every transaction. The goal is to see only the transactions that need a human decision. A tool that surfaces 40 transactions requiring review out of 300 total is doing its job. A tool that shows you all 300 and asks you to find the 40 is making you do the work the software should do. **4. Per-client pricing that doesn't punish growth.** Per-seat pricing models that scale with staff headcount create the wrong incentive. The right pricing scales with client count, so adding a new client is a clean business decision rather than a license negotiation. **5. QBO compatibility.** Your clients aren't switching accounting platforms because you switch tools. Any multi-client software layer needs to work within the clients' existing stack, not replace it. **6. One view across the whole book.** You should be able to answer "which clients are behind, and by how much?" without opening a single client file. If the only way to see your portfolio is to rebuild it in a spreadsheet every Monday, the tool is a client tool, not a practice tool. Keep these six criteria in mind as you evaluate the options below. No tool scores well on all six, and that's the point: pick the one that covers the criterion where you're actually bleeding hours. --- ## QuickBooks Online Accountant: The Default Choice QBOA is free for bookkeepers. It connects to all your client QBO files from a single dashboard. It's the default starting point for most bookkeeping practices, and there are good reasons for that. **Strengths:** Unlimited client access at no cost to you (clients pay their own QBO subscriptions). Consolidated dashboard across all client files. Full access to QBO Payroll, QBO Payments, and the QBO ecosystem. The deepest integration with QBO's underlying features; anything QBO supports, QBOA can access. Add the ProAdvisor Preferred Pricing discount and the economics of staying on QBO are hard to argue with: 30% off ongoing subscriptions, 15% off employee and contractor fees. **Where it genuinely beats the alternatives:** ecosystem gravity. Your client's bank, their tax preparer, their outside CPA, and most of the app market already expect QBO. Nothing else on this list gives you that. If your practice is QBO-first, QBOA is not a compromise choice, it's the correct base layer. **The core limitation:** QBOA is QBO's backend. It's an access management layer, not a productivity layer. You can open all your client files from one place, but you're still doing 100% of transaction categorization manually inside each one. The specific pain: **bank rules don't transfer between client files**. If client A and client B both receive Stripe payouts formatted identically, you write two bank rules. If you onboard client C next month, you write it again. QBOA has no mechanism for a rule you wrote in one file to inform another file. Every client starts from scratch. If you're weighing rules against pattern learning, [QBO bank rules versus AI categorization](/blog/qbo-bank-rules-vs-ai-categorization) compares the two approaches on the same transaction set. **What to check before you commit:** which of the three ProAdvisor billing models you're on, and whether it's the same for every client. Most firms pick one at client number one and never revisit it, then discover at client 15 that half the book is on Revenue Share and stepping up to full price on a rolling schedule. For a firm at 5-7 clients, this is manageable. QBOA works. At 15-20 clients, the manual categorization hours compound into a structural bottleneck that QBOA wasn't designed to solve. For a full standalone look at where QBO earns its price, read our [honest QuickBooks Online review](/blog/quickbooks-online-review-bookkeeper). --- ## Double (formerly Keeper): Built for Client Communication, Now With AI Categorization Double adds a client communication and workflow layer on top of QBOA. The specific problem it solves is transaction questions: instead of emailing a client "what was this $340 charge at Amazon Business?", you send them a request inside Double's client portal and track the response without the thread getting buried in your inbox. **Strengths:** Client communication and document collection in one place. Transaction questions routed through a portal. Works well for practices where client responsiveness is the bottleneck (common in the $150-500/month bookkeeping price tier, where clients are often slow to respond to questions about unclear transactions). **Where it genuinely wins:** the open-question list. If your real problem is that you have 40 unanswered client questions spread across email, text, and memory, Double gives you one place where every open item has an owner and an age. Nothing else on this list does that as directly, and no amount of categorization accuracy fixes a client who won't reply. **What it isn't:** a communication-only tool anymore. Its AI Bank Feeds classify bank transactions for you, sort the feed by confidence level so the routine ones move faster, and check coding against the ledger's history for consistency. Its AI Transactions feature drafts an entry from an uploaded source document or a plain-language description, and you review it before it posts to QuickBooks Online. That work happens inside Double's own close workflow, connected to the client's QBO file, so adopting it means doing that work in Double, not only adding a communication layer on top of QBOA. If categorization hours are part of your bottleneck, test it on two or three of your own clients alongside anything else on this list. Pricing is per connected client, billed monthly, with unlimited users and a plan you pick for each client. For current rates, see [Double's pricing page](https://doublehq.com/pricing-plans/). Note how that scales: it's a per-client cost that rises in a straight line with your book, so price it against hours recovered per client, not against your total software budget. If your bottleneck is client responsiveness and document collection, Double addresses it directly. If your bottleneck is the 54 hours per month you spend clicking "categorize" across client files, Double's AI Bank Feeds are aimed at that work too, as long as your close runs in Double. ## Karbon: Built for Running the Practice, Not Categorizing the Books Karbon is practice management software for accounting firms. It covers the work around the books: job templates and recurring schedules, a Kanban board of every job across the team, client email pulled into shared activity timelines, automated client requests and reminders tied to each job, and invoices built from the work your team delivers. It's built for knowing where every job stands and who's working on what. What it isn't: a categorization tool. Karbon's product pages describe workflow, client management, team collaboration, and billing; none of them describe categorizing transactions inside a client's books. Its integrations page lists syncing contacts with your cloud accounting software, so the books themselves stay in that software. If jobs are slipping as your team grows, Karbon fits. If the hours go to clicking "categorize," it doesn't move that number. --- ## Growthy: Built for the 5-30 Client Bookkeeper Growthy is built for bookkeepers managing QBO clients. The core feature is transaction categorization that learns each client's patterns and asks when it's uncertain, rather than presenting you with every transaction and waiting. **How it works:** On first import for a new client, categories appear based on patterns already seen across your other clients. For a new restaurant client, vendor patterns from your existing restaurant clients accelerate the initial categorization. You review what's uncertain and confirm what's correct. First-import accuracy runs around 85%. **The cross-client learning is the specific differentiator.** QBOA treats each client file as a separate universe. Your firm's portfolio becomes a shared corpus: patterns that appear in one file inform suggestions in similar files. Six restaurant clients benefit each other. Eight Shopify clients compound on each other's Stripe deposit patterns. **The review queue model** shows you what needs a decision, not everything. A client with 400 transactions might surface 35 for review. You clear those, mark them, and the rest are categorized. You're not scrolling through all 400. **Pricing scales per client**, not per seat. Adding a bookkeeper to your staff doesn't trigger a pricing conversation. **What that 85% actually means.** On a new client, roughly 15% of transactions come back low-confidence and still need a bookkeeper to look at them and approve. That's the honest reading of the number: it's a first pass with a person on the end of it, not a system that replaces judgment. If you want the methodology behind figures like these, [auto-categorization accuracy: honest numbers](/blog/auto-categorization-accuracy-honest-numbers) explains how accuracy claims should be read and what they leave out. **Honest tradeoffs:** Growthy works within your clients' QBO files. It's not a practice management tool. It doesn't handle workflow, billing, or time tracking. If your bottleneck is client responsiveness, Double is a better buy. If it's job tracking and WIP, a dedicated PM tool is. Growthy does one thing: reduce the hours your practice spends on transaction categorization, and give you one view across the client roster instead of 15 to 25 separate logins. For independent bookkeepers and small firms where transaction categorization is the primary time sink, that's the right trade. --- ## Comparison Matrix | Tool | Best For | Pricing Model | Categorization Automation | Platform | Honest Limitation | | --- | --- | --- | --- | --- | --- | | **QBOA** | All QBO-based practices | Free (clients pay QBO) | None (fully manual) | QBO only | Bank rules don't cross client files | | **Double (formerly Keeper)** | Client communication bottleneck | Per connected client, monthly | AI Bank Feeds (confidence-sorted) | Works with QBOA | Its AI works inside Double, so your close moves there | | **Karbon** | Practice management at scale | Per-seat pricing | None | Platform-agnostic | Workflow tool, not bookkeeping tool | | **Growthy** | 5-30 client QBO bookkeepers | Per-client pricing | 85% first import | QBO only | No practice management features | What this matrix can't show you is the column that decides the outcome: overhead hours per client per month in your practice, with your client mix. Two firms running identical software land in different places because one has six ecommerce clients with 400 transactions each and the other has twelve service businesses with 40. Run the numbers on your own book before you take any grid, including this one, as an answer. If you're specifically weighing alternatives to a QBO-only stack, [QuickBooks alternatives for multi-client bookkeepers](/blog/quickbooks-alternative-multi-client-bookkeepers) covers the options this table leaves out. --- ## The Real Question: What's Your Bottleneck? Most firms have one primary constraint, and the right tool is the one that removes it. **Bottleneck: client communication and document collection.** Clients are slow to respond to transaction questions. You're chasing receipts over email. Documents are scattered. → Double addresses this directly. **Bottleneck: workflow and practice management.** Jobs fall through the cracks. You don't have visibility into work-in-progress. Billing is manual. → QBOA plus a dedicated PM tool (or Karbon if you're at scale) is the right stack. **Bottleneck: transaction categorization eating 3+ hours per client per month.** You're spending most of your working hours clicking through transactions before you can touch anything the client actually values. → This is what Growthy is built for. **Bottleneck: per-client overhead and no portfolio view.** You can't say which clients are behind without opening every file. Renewals surprise you. Onboarding client 20 feels harder than onboarding client 5 did. → This is the ceiling problem, and it's solved by consolidating the view across clients, not by making any single file faster. Most bookkeeping practices hit the categorization wall first, around 8 to 10 clients. It's the most time-intensive part of the work, it doesn't require professional judgment on most transactions, and it compounds as you add clients. Solve that before you add workflow complexity. The overhead ceiling arrives later, between 15 and 25 clients, and it's the one that decides whether you can grow past your current size at all. The multi-client bookkeeping guide at the [AI bookkeeping hub](/topics/ai-bookkeeping) goes deeper on how pattern learning reduces the categorization labor per client as a practice grows, and [multi-client AI bookkeeping](/blog/multi-client-ai-bookkeeping) covers the portfolio-level workflow. --- ## What to Do If You're Currently at 5 Clients and Growing The inflection point where QBOA alone stops being enough is around 8-10 clients. Below that threshold, manual categorization is annoying but manageable. Above it, the hours compound faster than you can price your way out of them. Here's the break-even calculation worth running on your own numbers: **(Hours per client per month) × (Client count) × (Hourly rate) = Monthly cost of staying manual** For a practice with 15 clients at 3 hours per client and a $75 bookkeeper rate: 15 × 3 × $75 = **$3,375 per month** in categorization labor. That's the number a productivity tool has to beat to justify its cost. If that number is over $2,000/month (at 10+ clients it almost certainly is), the tool pays for itself on categorization alone, before you count the hours freed up for higher-value work. Here's how the decision changes as your book grows: **At 5 clients:** almost any setup works, including QBO billed straight through ProAdvisor. The overhead is real but you can absorb it by hand. Spend your energy on pricing and onboarding process, not tooling. Do pick your ProAdvisor billing model deliberately now, because it tends to become the default for every client after. **At 15 clients:** the switching cost starts to bite and you're at the front edge of the ceiling. This is the range where it's worth pricing a tool that shows your whole client roster in one place instead of 15 files you open one at a time. It's also the point where the break-even math above stops being close. **At 25 clients and up:** per-client overhead is the single biggest lever you have. Every hour you remove from the per-client routine gets multiplied 25 times. The [bookkeeper-scaling hub](/topics/bookkeeper-scaling) covers more of the systems and habits that move the ceiling further out, not just the software underneath them, and [bookkeeper software for firms](/blog/bookkeeper-software-for-firms) covers the practice-level stack. Bobby covers more of those systems and habits in his newsletter, [Scaling Clients](https://scalingclients.com). The practices that get stuck are the ones that solve this by hiring rather than by tooling. Adding a part-time bookkeeper at $20-25/hr to handle categorization is a real solution, but it adds HR overhead, training time, and a fixed cost that doesn't scale back down when clients churn. A per-client SaaS tool scales with your book. Read more about the cost breakdown in [The Real Cost of Manual Bookkeeping for Multi-Client Practices](/topics/bookkeeping-automation). --- ## Where to Start If you're managing 10+ QBO clients and the categorization hours are your primary constraint: test Growthy on two or three of your most transaction-heavy clients. The first-import accuracy will tell you whether the pattern learning model fits your client mix. If you're not sure what your primary constraint is: track your time for one week across three client files. Log categorization, client communication, and reporting separately. The number that's biggest is the problem to solve first. A short audit worth doing before you buy anything: 1. **Count your logins.** How many separate client files do you open in a normal week, and how many times each? 2. **Time one switch.** From closing client A to placing your first correct keystroke in client B. Multiply by your daily switch count. 3. **List your billing models.** Which clients are on ProAdvisor billing, which on Direct, which on Revenue Share, and when does each Revenue Share client step up to full price? 4. **Pull one client's transaction count.** Then estimate what share came back needing a human decision. That share, not the headline accuracy number, is your real workload. 5. **Run the break-even.** Hours per client × client count × your rate. Compare it to the annual cost of any tool you're considering. Whatever software you pick, price it against the question this piece opened with: does the tool lower your cost per client, or does it just add another feature to a per-file product? That's the number worth checking before you sign another client onto a system that gets harder to run as you grow. Running a 10-50 staff CPA firm means your bookkeeping hours have a ceiling. Growthy is built by a CPA firm partner who hit that same ceiling at 15-25 clients per bookkeeper. It brings all your client books into one review queue. First-import accuracy runs at 85%. If you're thinking about how tools like these fit into a CPA firm's [practice capacity](/for-accountants), that page breaks down the full workflow. --- ## Frequently asked questions ### How many clients can one bookkeeper handle before software becomes the problem? Two thresholds matter. Manual categorization stops being manageable around 8 to 10 clients, which is when firms start looking for a productivity layer on top of QBOA. The harder ceiling sits between 15 and 25 clients, where per-client overhead (logins, chart setups, renewals, context switching) outruns the workday regardless of how fast you code transactions. Your exact number depends on client complexity, not on talent. ### Does the QuickBooks ProAdvisor discount get better as I add clients? No. ProAdvisor Preferred Pricing gives 30% off ongoing subscriptions and 15% off employee and contractor fees, and that rate is identical at 5 clients and at 25. There's no volume tier and no bulk-billing bonus. Intuit states those rates were accurate as of 07/31/2025 and unchanged as of 2026. What grows with your book is the admin load, not the discount, which is why the discount alone never moves the ceiling. ### Which ProAdvisor billing model should I choose? There are three, and they differ in who pays and for how long. ProAdvisor billing means the firm pays and keeps 30% off ongoing. Direct billing means the client pays and keeps 30% off for the first 12 months. Revenue Share means the client pays, gets 50% off the first 3 months, then moves to full price. Pick deliberately at client number one, because most firms never revisit it. ### How much does QuickBooks Online cost per client at 5, 15, and 25 clients? We can't give you a plan price. The live QuickBooks pricing pages did not load when we checked on 2026-09-03, so no per-plan dollar figure in this article is verified, and any article quoting exact numbers without a source is guessing. Check the current rate on Intuit's pricing page before quoting a client. What we can tell you is the structure: the 30% discount is flat at every client count, and overhead hours are the cost that actually scales. ### Why did my client's QuickBooks price go up after three months? That's the Revenue Share billing model working as designed. The client pays and receives 50% off for the first three months, then moves to full price. Clients hear "discount," settle in, and are surprised by the step-up. The fix is disclosure: state the full-price number at signup, put the step-up date in the engagement letter, and put a reminder in your own calendar a few weeks ahead of it. ### When should a firm stay on consumer bookkeeping software? When you're doing one set of books, not many. Wave, FreshBooks, and similar tools are built for a business owner managing their own finances: one chart of accounts, one user, familiar vendors. That design is fine and often better for a single entity. The moment you're managing several unrelated businesses at once, the missing capability is cross-client learning and a portfolio view, and no consumer tool offers either. ### Is QuickBooks Online Accountant enough on its own? It's enough as your base layer, and at 5 to 7 clients it's usually enough full stop. QBOA is free, connects every client QBO file to one dashboard, and gives you the deepest access to QBO's own features. What it doesn't do is reduce work: bank rules don't transfer between client files, so every client's categorization starts from scratch. At 15 to 20 clients, that becomes the structural bottleneck. ### What is the real switching cost between client files? It's three costs, not one. Access cost is the login and two-factor detour, and a password manager mostly fixes it. Context cost is reloading which vendors, accounts, and open questions belong to this client, and no per-file tool fixes it. Judgment cost is the small errors you make right after a switch by applying the last client's mental model. A bookkeeper switching 6 to 8 times a day can lose close to an hour. ### Is hiring cheaper than buying a tool at 15 clients? Sometimes on the hourly rate, rarely on total cost. A part-time bookkeeper at $20-25/hr to handle categorization is a real solution and some firms are right to take it. But it adds recruiting, training, and supervision, and it's a fixed cost that doesn't shrink when a client churns. Per-client software scales down as well as up. Run both against your break-even number before deciding. ### Which accounting platform is best for managing multiple clients? It depends on your bottleneck. QBOA is the base layer for QBO firms and handles client access well. Double fits firms whose clients are slow to answer questions. Karbon fits firms whose jobs slip. Growthy fits firms whose hours go to transaction categorization. Name your biggest time sink first, then test one tool on two or three clients. ### What software helps bookkeepers cut manual client bookkeeping work? Look for tools that surface only the exceptions, not every transaction. Growthy uses confidence scoring so you review the uncertain items, and a person approves every batch. Double's AI Bank Feeds sort by confidence too, inside its own close workflow. Karbon and QBOA don't categorize for you. Test any option on a few real clients before you roll it out. --- Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. [Get started with Growthy](https://growthy.com/signup/?utm_content=best-bookkeeping-software-multi-client-firms): start with two clients, measure the categorization hours, and scale from there. ### [Amazon Seller Bookkeeping: The Settlement Report Guide Nobody Wrote for Bookkeepers](https://growthy.com/blog/amazon-seller-bookkeeping): Amazon sends 14 fee types in every settlement. Here's the complete QBO mapping table, common mistakes, and multi-client workflow for bookkeepers. Your client made $28,400 in Amazon sales last month. Amazon deposited $19,847.33 into their bank account. The $8,552.67 gap isn't a mystery: it's 14 distinct fee categories sitting inside a Settlement Report that most bookkeepers open once, scroll through, and close again. If you manage six Amazon seller clients, you're decoding 12 of these settlements every month. Each one bundles gross sales, FBA fees, advertising charges, reimbursements, refunds, and a reserve balance into a single net deposit. Getting the books right means understanding what's in each layer before you touch QBO. > **What is an Amazon Settlement Report?** > > An Amazon Settlement Report is a bi-weekly summary that Amazon sends to sellers reconciling every transaction against their seller account. It covers 14 line-item categories including product sales, FBA fulfillment fees, storage fees, advertising charges, refunds, and reserve amounts. Amazon deposits the net amount (not gross sales) every 14 days. The report is the only way to reconstruct what happened to gross revenue before it became the bank deposit. ## Key Takeaways - **Amazon settles every 14 days.** The deposit is net of fees, refunds, and reserve; booking it as gross revenue overstates income by 20-35% in most accounts. - **14 distinct fee categories** appear in settlements, each mapping to a different QBO account: referral fees, FBA fulfillment, storage, advertising, and more. - **The reserve balance is a receivable, not revenue.** Amazon holds 3-7 days of rolling sales as a reserve; that money is owed to your client, not earned yet. - **FBA reimbursements for lost inventory are NOT income.** They offset the inventory asset or COGS; booking them to revenue inflates profit. - **Multi-marketplace sellers get separate settlements per region.** US, Canada, UK, Germany, and France each settle independently in local currency. - **A2X is the right tool for sellers doing their own books.** For bookkeepers managing 5+ Amazon clients, the workflow looks different. --- ## What an Amazon Settlement Report Actually Contains Every two weeks, Amazon calculates your client's balance and deposits the net amount. The Settlement Report (downloadable from Seller Central under Payments → Reports) is the reconciliation document for that deposit. Here's what a typical settlement breakdown looks like for a mid-size FBA seller: > **Sample Settlement: "Sunrise Home Goods" | Period ending March 28, 2026** > > Product sales: $31,240.00 > Shipping collected: $0.00 (FBA sellers don't collect shipping separately) > Promotional rebates: -$412.50 > Amazon marketplace fees (referral): -$4,686.00 > FBA fulfillment fees: -$3,871.20 > FBA storage fees: -$284.40 > Advertising charges: -$1,847.30 > Refunds issued: -$623.90 > Reimbursements received: +$147.60 > Subscription fees (Professional plan): -$39.99 > Reserve balance adjustment: -$775.00 > **Net deposit: $18,847.31** That $12,392.69 difference between gross sales and the deposit isn't an error. It's the cost of selling on Amazon. Your job is to put every dollar in the right account. The same net-vs-gross decomposition runs across every channel: the full [ecommerce bookkeeping](https://growthy.com/blog/ecommerce-bookkeeping) method handles Shopify, Stripe, and multi-channel sellers the same way. One thing that catches bookkeepers every cycle: the **reserve balance**. Amazon holds back 3-7 days of rolling sales as a buffer against refunds and chargebacks. In the example above, that -$775.00 is not an expense. It's a current asset. Amazon owes your client that money; it'll release in the next settlement cycle. Book it to an "Amazon Reserve Balance" receivable account, not an expense. --- ## The 14 Amazon Fee Types (and Where They Go in QBO) Here's the complete mapping. This table is the one most articles skip. Fee Category What It Is QBO Account **Referral Fee** % of sale price (6–45%, varies by category) Cost of Sales: Marketplace Fees **Variable Closing Fee** Fixed fee on media products (books, DVDs) Cost of Sales: Marketplace Fees **FBA Fulfillment Fee** Pick, pack, and ship per unit Cost of Sales: FBA Fulfillment **FBA Monthly Storage Fee** Per cubic foot stored in Amazon warehouse Cost of Sales: FBA Storage **FBA Long-Term Storage Fee** Surcharge for inventory stored 365+ days Cost of Sales: FBA Storage (LTSF) **FBA Removal/Disposal Fee** Removing or destroying inventory Cost of Sales: FBA Fulfillment **FBA Return Processing Fee** Amazon processes a customer return Cost of Sales: FBA Fulfillment **Advertising (Sponsored Products)** PPC ad spend Advertising Expense: Amazon Ads **Advertising (Sponsored Brands)** Brand keyword campaigns Advertising Expense: Amazon Ads **Subscription Fee** $39.99/month Professional Seller plan Subscriptions & Software **Refund** Customer return; revenue reversal Sales Returns (contra-revenue) **Reimbursement (Lost Inventory)** Amazon pays for item they lost Offset to COGS or Inventory Asset **Reimbursement (Damaged Inventory)** Amazon pays for item they damaged Offset to COGS or Inventory Asset **Reserve Balance** Rolling buffer Amazon holds back Current Asset: Amazon Reserve **Referral fees range widely.** Electronics run 8%. Jewelry runs 20%. Grocery runs 8%. If your client sells across multiple categories, the referral fee percentage will vary by ASIN. The Settlement Report shows the dollar amount per transaction; you don't need to calculate it yourself, but you do need to know it belongs in Cost of Sales, not Expense. **FBA storage fees spike in Q4.** Amazon charges higher storage rates October through December. A client who carries $40,000 in inventory through November will see storage fees 3-4x higher than July. When you're normalizing monthly P&L, this is a real distortion: Q4 COGS will look inflated relative to Q1. **Reimbursements are the most commonly misbooked item.** When Amazon loses a unit at their fulfillment center, they reimburse your client. That reimbursement isn't revenue; it offsets the inventory cost. Debit the Amazon Settlement receivable, credit Inventory (or COGS if already expensed). If you book it to Other Income, you're inflating profit and overstating taxable income. For more on handling multi-source payouts, see [reconciling lump sum deposits from payment processors](https://growthy.com/blog/reconcile-lump-sum-deposits-payment-processors). --- ## Multi-Marketplace Complexity (US, Canada, EU, UK VAT) Amazon sellers who sell across multiple marketplaces (US, Canada, UK, Germany, France) get a separate settlement for each marketplace in that marketplace's local currency. Specifically: amazon.com, amazon.ca, amazon.co.uk, amazon.de, amazon.fr each settle independently. That means: - Separate deposits per marketplace (five bank transactions per settlement cycle instead of one) - Currency conversion on the settlement deposit date, not the original transaction dates - UK and EU sellers face VAT registration requirements that most US-based accounting firms aren't equipped to handle **Currency timing matters.** If your client's Canadian settlement hits on March 28 at CAD/USD 0.737, that's the rate you use, not the rate on the date the sale happened. Amazon doesn't give you a transaction-by-transaction FX rate for the settlement; you're converting the net deposit using the settlement date rate. **UK VAT is a different compliance track entirely.** Post-Brexit, Amazon UK sellers above the £90,000 threshold (as of 2024; verify current threshold with [HMRC guidance](https://www.gov.uk/vat-registration)) need UK VAT registration and quarterly returns. If your client is selling into the UK and grossing more than that threshold, this is a specialist referral, not a bookkeeping task. The [Amazon Seller Central help page on global selling](https://sellercentral.amazon.com/help/hub/reference/G200277040) covers marketplace-by-marketplace settlement timelines and currency handling. --- ## FBA Inventory Valuation Inventory stored at Amazon's fulfillment centers is your client's asset; it just happens to live in a warehouse in Hebron, Kentucky or Tracy, California. How you value that inventory affects COGS recognition and, if the client carries significant inventory, their balance sheet. **Three methods work for Amazon FBA sellers:** [*FIFO*](/blog/inventory-accounting)* (First In, First Out)* is the most common for physical goods. The units purchased earliest are assumed sold first. When storage fees spike in Q4, FIFO smooths out COGS better than other methods. *Weighted Average Cost* is simpler to maintain when the client is constantly replenishing at varying prices. Divide total inventory cost by total units on hand. Recalculate each time you add a purchase order. Works well for clients with stable margins and frequent restocking. *Specific Identification* applies when your client sells high-value, individually tracked items (fine jewelry, collectibles, equipment). Rarely practical for typical FBA volume. **Amazon's inventory reports** in Seller Central give you units on hand at any point. Cross-reference with purchase order costs to value ending inventory. The FBA Inventory Age report is useful for spotting long-term storage exposure before LTSF fees hit. **When Amazon loses or damages inventory**, the reimbursement workflow has three steps: 1. Amazon notifies the seller of the loss (usually automated, sometimes requires a case) 2. Debit Accounts Receivable: Amazon Reimbursement for the item's value 3. Credit Inventory (if still on books) or COGS (if already recognized) 4. When the reimbursement settles in the next report: debit Amazon Settlement, credit the AR account This keeps reimbursements off the income statement and reflects what actually happened economically. --- ## Why A2X Is the Right Tool for Merchant Self-Service [A2X](https://www.a2xaccounting.com/) has built the right product for Amazon sellers who want to manage their own books. It imports settlements automatically, maps fee categories to QBO accounts based on your configuration, handles multi-currency conversions, and runs about $49/month per Amazon account. If your client wants to DIY their Amazon bookkeeping, recommend A2X. It eliminates the manual CSV export/import cycle, handles the fee mapping you'd otherwise do by hand, and the QBO sync is reliable. A2X is built around the per-merchant experience. The product is excellent for what it does. --- ## The Multi-Client Bookkeeper Workflow A2X's model is one seller, one account setup. If you're a bookkeeper managing six Amazon seller clients, you're running 12 settlements a month, potentially across 3+ marketplaces each. That's 36+ settlement files before you account for the clients selling in the UK. The workflow difference isn't about importing settlements faster. It's about building a system that operates across all clients without starting from scratch each time. A sustainable multi-client workflow looks like this: 1. **Settlement import:** Pull all six client settlements on day 1 and day 15 of each month. CSV export from Seller Central, or API pull if you're using accounting software that connects directly. 2. **Pattern categorization:** The fee types don't change. Referral fees always go to Marketplace Fees. FBA fulfillment always goes to FBA Fulfillment. Once you've mapped a client's fee categories the first time, that mapping applies every cycle. The exceptions (new fee types, one-time charges, reimbursements above normal amounts) are what need your attention. 3. **Exception review:** Reserve balance swings more than 15% from last cycle? Flag it. Reimbursements over $500 in a single settlement? Review the underlying case. Long-term storage fees appearing for the first time? That's a Q4 inventory planning conversation with the client. 4. **Journal entry:** One summary journal entry per settlement per marketplace. Debit the gross sales to Revenue, credit each fee category, debit/credit the reserve balance change, net to the bank deposit amount. When patterns are trained and exceptions are defined, each client's monthly close runs under 45 minutes. The first month you onboard a new Amazon client will take 2-3 hours to map fees and configure the reserve tracking. After that, it's maintenance. For clients connected across multiple platforms, see the [ecommerce accounting hub](https://growthy.com/topics/ecommerce-accounting) for how to handle multi-channel books, and the [best ecommerce accounting software](/blog/best-ecommerce-accounting-software) comparison if clients are evaluating platforms. --- ## Common Amazon Bookkeeping Mistakes **Booking gross sales instead of net settlement.** The most common error, and it compounds. If you record $31,240 in revenue when $18,847 hit the bank, you're understating expenses, overstating profit, and creating a reconciling difference that gets harder to unwind every month. Always book from the settlement report, not Seller Central's summary revenue number. **Missing the reserve balance.** Amazon withholds 3-7 days of rolling sales from each settlement. That money isn't gone; it releases in the next cycle. But if you don't track it as a receivable, you'll show understated revenue one period and a mysterious credit the next. Keep an "Amazon Reserve Balance" current asset account and reconcile it each cycle. **Treating FBA reimbursements as revenue.** Covered in the inventory section above, but worth repeating: a reimbursement for lost or damaged inventory is not income. It's an offset to an asset write-down. Booking it to Other Income overstates taxable profit. **Not separating advertising spend by type.** Sponsored Products, Sponsored Brands, and Sponsored Display are all advertising, but if your client is tracking ACOS (Advertising Cost of Sale) by campaign type, you need separate expense lines to support that analysis. Don't lump all Amazon ad spend into one account if the client cares about performance metrics. **Skipping the Q4-to-Q1 inventory adjustment.** Amazon sellers who build inventory for the holiday season will have significantly higher FBA storage fees in October, November, and December, then a drop in January as inventory sells through. The post-holiday return wave also generates a spike in FBA Return Processing fees in January and February. Budget for this pattern in advance, and normalize COGS comparisons across the Q4/Q1 boundary. **Not reconciling settlement period to calendar month.** Amazon settles every 14 days, not on the 1st and 15th. Settlement periods drift. A settlement covering March 22 – April 5 crosses a month boundary. For accrual-basis clients, you need to split that settlement proportionally, or accept the distortion and document it. --- ## Get Started with Growthy Managing Amazon seller bookkeeping across multiple clients means building systems that hold up at month 12, not just month 1. Growthy is built for bookkeepers running multi-client workflows, with confidence-scored review. Growthy runs in workflow mode on [AI bookkeeping](/ai-bookkeeping) so you keep the GL your clients are already on. Amazon settlement deposits (payout net of fees, refunds, and advertising) get category suggestions against your chart of accounts. Low-confidence entries go to the review queue. [Get early access](/signup?utm_content=amazon-seller-bookkeeping) ### [Stripe Revenue Recognition for SaaS: From Charge to Recognized Revenue](https://growthy.com/blog/stripe-revenue-recognition-saas): Trace Stripe charges from gateway through bank deposit to recognized revenue. Clearing-account JEs, Stripe Billing RevRec vs GL-side recognition, and when to graduate to a dedicated tool. The Stripe deposit hits your bank for $3,847.92. The contract you signed last week was $4,127. Your founder asks why the numbers don't match. You stare at the screen because both numbers are right. This is the gap that breaks most [SaaS accounting](/topics/saas-accounting) workflows. Stripe runs a charge, takes its cut, batches payouts, and sometimes pulls back refunds before the deposit lands. ASC 606 says the $4,127 contract recognizes over the service period. The deposit and the revenue live on different timelines. They almost never match. This article walks the full path from Stripe charge to recognized revenue for SaaS bookkeeping. You'll see where each step shows up in the books. You'll see where the reconciliation breaks. And you'll see how the clearing-account method keeps your P&L honest. We'll also cover Stripe Billing Revenue Recognition (the native module) versus external recognition in the general ledger. Plus when to graduate from a spreadsheet to a dedicated tool. See [stripe revenue recognition](/blog/stripe-revenue-recognition-saas). Two readers in mind here. Sarah Chen is a bookkeeper closing the month for three SaaS clients, all on Stripe. Priya Patel just turned on Stripe Billing for her first SaaS product. She wants her books audit-ready by Series A. Same path, different jobs. Bobby (a CPA firm partner, not a CPA himself) built these patterns by running Growthy's own Stripe setup. The numbers below come from real ops, not theory. > **What is Stripe revenue recognition for SaaS, and why doesn't the deposit equal the revenue?** > > Stripe revenue recognition moves money from a Stripe charge into recognized revenue on your income statement. It follows ASC 606. The deposit doesn't equal recognized revenue for three reasons. First, Stripe deposits are net of fees (about 2.9% plus 30 cents) and refunds. Recognized revenue is gross. Second, Stripe payouts batch charges across many days. One deposit can span two recognition periods. Third, annual prepay subscriptions create deferred revenue. It recognizes monthly over the contract term, while the cash hit happens once. A clean monthly close ties Stripe Clearing back to zero. It splits fees from revenue and recognizes contract revenue on the right schedule. ## Key Takeaways - **Stripe deposits are net. Recognized revenue is gross.** A $4,127 invoice yields a $3,847.92 deposit after fees and refunds. The $279.08 gap is fees and one $50 partial refund, not lost revenue. - **Annual prepay creates deferred revenue.** A $4,127 annual contract recognizes $343.92 per month. The rest sits in deferred revenue on the balance sheet until earned. - **Multi-day payout batches span recognition periods.** A Stripe payout that settles on January 2 can hold December 30 charges. Without a clearing account, your December P&L misses revenue. - **Stripe Billing RevRec works for Stripe-only revenue.** The native module handles ASC 606 for contracts in Stripe Billing. It does not cover non-Stripe revenue, custom contract terms, or multi-currency rollups. - **The clearing account method nets to zero monthly.** Every gross charge, fee, refund, and deposit posts through Stripe Clearing. At month-end, the balance should sit within a few cents of zero. Timing gaps cause the small drift. - **Graduate from spreadsheets at roughly 100 active contracts.** Below that, a deferred revenue rollforward in Sheets works fine. Above it, the close drags past five days. Audit prep gets painful. ## The Stripe-to-recognized-revenue path Money moves through four checkpoints between a charge and recognized revenue. Each checkpoint is a reconciliation point. Each one is also a common place for the books to break. ### Charge to bank deposit to deferred revenue to revenue The first step happens when a customer's card is charged. The money sits in Stripe's balance, not your bank account. For a $4,127 annual plan billed up front, Stripe shows a charge on the dashboard. Your bank balance hasn't moved. The second step is the payout. Stripe batches charges and pushes a net deposit to your bank. The cadence is a two-day rolling cycle for US accounts. The deposit is gross charges minus fees, minus any refunds or disputes that hit during the batch window. In our example, the $4,127 charge cleared with $279.08 in cuts. The bank saw a $3,847.92 deposit. The third step is where revenue recognition starts. For a monthly plan, recognition happens at once because service and payment align. For an annual prepay, the full $4,127 sits in deferred revenue. It recognizes $343.92 each month over twelve months. The contract is billed and paid. But only the earned slice is revenue today. The fourth step is the recognition journal entry. Each month, a JE moves a slice from deferred revenue into recognized revenue on the income statement. After twelve monthly entries, deferred revenue zeroes out for that contract. The full $4,127 has been recognized. ### Where each step shows up in the books Each transition makes a specific accounting entry. Here's what the books look like for a clean $4,127 annual prepay contract. Stripe fees are $254.08. One $25 partial refund hits. Signing day (charge succeeds, money in Stripe): > DR Stripe Clearing $4,127.00 > CR Deferred Revenue $4,127.00 Payout day (deposit hits bank, net of fees and refunds): > DR Operating Bank $3,847.92 > DR Processor Fees $254.08 > DR Refunds Issued $25.00 > CR Stripe Clearing $4,127.00 Month one recognition: > DR Deferred Revenue $343.92 > CR Subscription Revenue $343.92 After all three entries post, Stripe Clearing nets to zero. Deferred revenue holds $3,783.08. Recognized revenue shows $343.92. The P&L is right. The balance sheet tracks what's still owed. ### The reconciliation points The books should tie out at three checkpoints. First, Stripe gross charges (from the dashboard or Balance API) should equal the debit side of Stripe Clearing for the period. Second, the bank deposit (from the bank feed) should equal the credit side of Stripe Clearing for that payout. Third, the deferred revenue rollforward should equal the deferred revenue balance on the balance sheet. If any of these three breaks, the cause is usually one of three things. A refund that hit after the period close. A chargeback dispute that's still open. Or a multi-day payout that crosses the cutoff. ## Why the Stripe deposit never matches your recognized revenue This is the most common point of mix-up in SaaS bookkeeping. Founders see a Stripe deposit hit the bank. They assume it's revenue. They book it as such. The result is a P&L that's wrong on three fronts at once. ### Net versus gross Stripe deposits arrive net of fees. For a US card charge, the standard rate is 2.9% plus 30 cents. International cards and some card types cost more. On a $4,127 contract, the fee is about $149.98 if the card clears cleanly. Refunds and disputes also trim the deposit. If a customer asks for a $25 partial refund the day before payout, that refund cuts the deposit. But it does not cut the original revenue you owe. Recognized revenue is gross. The contract was for $4,127. That's the amount that recognizes (over time or at once, based on the terms). Fees are an expense on a separate line. They do not reduce revenue. Refunds are contra-revenue, also on their own line. If you book the $3,847.92 deposit as Sales, three things go wrong. You've understated revenue by $279.08. You've understated fee expense by $254.08. You've understated refunds by $25. Gross margin no longer works. ### Refunds and chargebacks Refunds add a second wrinkle. A refund issued mid-month trims the next Stripe payout. It doesn't always tie to one deposit. If you refund $400 today and your next payout is $3,847.92, the payout is gross charges minus fees minus that $400 refund. The bank line shows one number. The real movement is three things. Chargebacks are slower and messier. A customer disputes a charge. Stripe debits your balance for that amount plus a $15 dispute fee. You then accept or fight the dispute. If you fight and win, the funds come back. If you lose, the chargeback is final. The dispute fee sticks. None of this maps cleanly to recognized revenue. But all of it shows up in your bank feed. ### Multi-day batches Stripe payouts run as rolling two-day batches in the US. A single deposit can hold charges from three or four days. Those days can cross a month-end cutoff. A January 2 payout might hold December 30 and December 31 charges. If you book that payout as January revenue, you cause harm. You shift revenue from December to January. You skew both months. You break the trend chart the founder cares about. The fix has two parts. Recognize on the charge date, not the payout date. Use Stripe Clearing to absorb the timing gap. Stripe Clearing on December 31 holds the December charges not yet deposited. On January 2, the deposit zeroes out that clearing balance. The books stay clean. ## Stripe Billing Revenue Recognition: the native tool Stripe shipped its Revenue Recognition module inside Stripe Billing. It reads your Stripe contract data. It applies ASC 606 logic. It builds a revenue recognition schedule plus journal entry summaries you can post to your GL. For Stripe-only SaaS companies, it saves real time. ### What it does The module takes Stripe Billing contracts (subs, invoices, one-time charges). It computes ratable recognition over the service period. It handles standard cases well. Monthly subs recognize at once. Annual prepays recognize monthly. Mid-term cancels recognize through the cancel date. It outputs a recognition report. You can drop it into your GL as one monthly JE, or sync it via Stripe's links. It also handles deferred revenue on its own. If a contract is billed and paid but not yet earned, the unearned portion shows as deferred revenue in the module. You can tie this to your GL deferred revenue balance during the reconciliation step. ### What it doesn't do The native module has real limits. It doesn't cover revenue outside Stripe Billing. If you take wire transfers, ACH outside Stripe, or one-off invoices on a different platform, Stripe RevRec doesn't see that money. You'll need a parallel flow for the non-Stripe portion. It also doesn't handle custom contract terms outside Stripe Billing. Say you sell an enterprise contract with a non-standard ramp (free for three months, then $5K per month for nine months). If you don't model that exact shape in Stripe, the module can't recognize it right. You'd need to override at the GL level. Multi-currency rollup is another gap. If you bill in USD, EUR, and GBP and report in USD, the module shows each currency on its own. You'll do the rollup outside Stripe. ### When it's the right fit Stripe Billing RevRec works well when three things hold. First, all your revenue flows through Stripe Billing (or close to it). Second, you're single-currency. Or your multi-currency story is simple. Third, your contract terms are standard enough to model in Stripe Billing. For most early-stage SaaS firms on pure Stripe, this is true. Take a founder like Priya who just turned on Stripe Billing. The native module is likely the right next step once contract count grows. ## External recognition in the GL: the bookkeeper method The other path is doing recognition fully in the general ledger. The deferred revenue rollforward lives in a spreadsheet. This is how most small SaaS firms run before they outgrow it. ### When GL-side recognition is enough GL-side recognition works under three conditions. Contract volume is low (say, under 100 active subs). Contract types are simple. There's no near-term audit pressure. A bookkeeper can hold a deferred revenue schedule in Sheets. They post a monthly recognition JE and tie it to the GL balance in under an hour. ### The monthly recognition JE pattern The pattern is simple. At signing, cash (or Stripe Clearing) debits. Deferred revenue credits for the full contract value. Each month after, a recognition JE moves one twelfth of the contract from deferred to recognized: > DR Deferred Revenue $343.92 > CR Subscription Revenue $343.92 For a book of contracts, the bookkeeper sums the monthly recognition across all active contracts. They post one combined JE per month. The Sheets rollforward shows which contracts recognized, when each started, and what's left in deferred. ### Where the reconciliation lives Reconciliation lives in the rollforward. Each month, the rollforward should tie to three things. The contract data (from Stripe or the billing system). The GL deferred revenue balance. And the GL recognized revenue balance. Say the rollforward says deferred revenue should be $48,200. The GL shows $48,180. You've got a $20 break to check. Usually it's a rounding error. Or a mid-month change you didn't update in the sheet. Or a recognition JE that posted the wrong amount. The goal: investigate breaks under $100 and fix breaks above that line before they grow. ## The clearing account method for Stripe with QBO or Xero The clearing-account method is the bookkeeper's trick for keeping Stripe-driven SaaS books clean in QuickBooks Online or Xero. It splits each part of the Stripe flow into its own GL line. Stripe Clearing acts as the holding account that nets to zero monthly. ### Why bank-feed-only setups produce wrong P&Ls The default QBO and Xero setup ties to the Stripe bank feed. It books each deposit as one entry. Most founders or junior bookkeepers tag that deposit as Sales. The deposit is net of fees and refunds. So Sales is understated. Fees show up nowhere unless someone splits the entry by hand. Refunds don't show on their own line. The gross margin number on the P&L is junk. This is the most common failure in SaaS bookkeeping. It's invisible until someone tries to model unit economics, gross margin, or CAC payback. By the time the founder cares, you've got six months of bad data. ### The Stripe Clearing Account setup Set up a new asset account called Stripe Clearing. Then book three types of activity through it. For gross charges (when a Stripe charge succeeds): > DR Stripe Clearing $4,127.00 > CR Subscription Revenue (or Deferred Revenue, for prepay) $4,127.00 For processor fees (charged by Stripe per transaction): > DR Processor Fees $254.08 > CR Stripe Clearing $254.08 For refunds (issued back to customer): > DR Refunds (contra-revenue) $25.00 > CR Stripe Clearing $25.00 For the bank deposit (Stripe payout to your operating account): > DR Operating Bank $3,847.92 > CR Stripe Clearing $3,847.92 After all four entries post, Stripe Clearing nets to zero. Every dollar that came in is accounted for. Revenue (or deferred). Fees. Refunds. Cash deposited. In practice, most teams use a Stripe-to-QBO sync tool (Synder, A2X, Bookkeep.com) or a custom import to push these entries on autopilot. The math is the same regardless of the tool. ### Monthly reconciliation steps Monthly reconciliation has three steps. First, pull the Stripe Balance Transactions report for the month. Total up gross charges, fees, refunds, and payouts. Second, compare those totals against the Stripe Clearing activity in the GL. Third, confirm Stripe Clearing nets to zero. A few cents of drift is fine for payouts that haven't settled yet. If Stripe Clearing has a balance over $100 at month-end, dig in. Common causes: a payout in transit (still showing as "in transit" on the Stripe dashboard), a refund that posted after period close, or a chargeback dispute that's open. Note each break. Leave the balance as-is if the timing gap is real. Adjust if it's a posting error. For more on the mechanics, see [deferred revenue mechanics](/blog/deferred-revenue-saas-companies) and [SaaS contract examples with JEs](/blog/asc-606-revenue-recognition-examples-saas). The five-step ASC 606 frame that sits under all of this is covered in [the ASC 606 five-step model](/blog/asc-606-revenue-recognition-saas). ## When to graduate from spreadsheet recognition to Stripe Billing RevRec or Maxio A point comes where the spreadsheet rollforward stops scaling. The signs are usually a mix of volume, complex contracts, and audit pressure. ### Volume triggers Volume is the most common trigger. Once you're past roughly 100 active sub contracts, the rollforward gets clunky. The monthly close starts to drag past five days. Recognition errors get harder to catch. The human eye can't scan 200 rows for off rows. A new contract type or a mid-term cancel creates ripples across the sheet that take hours to chase down. At that point, two options pay for themselves. Stripe Billing RevRec, if all your revenue is in Stripe. Or a dedicated tool like Maxio (formerly SaaSOptics or Chargify). The annual cost is usually less than the bookkeeper hours saved. ### Complexity triggers Complex contracts are the second trigger. Multi-year deals with mid-term ramps. Changes that shift the recognition schedule (upgrades, downgrades, pauses). Multi-currency contracts that need rollup. Setup fees recognized over the contract term versus at once. Each of these adds rules to the rollforward. The rules stack up fast. Once you've got more than five or six special-case contracts, the sheet feels fragile. One missed change breaks the rollforward for that contract. It can cascade to other contracts that share the same data. A dedicated tool handles these rules out of the box. ### Audit triggers Audit is the third trigger. Most SaaS firms first hit audit prep at Series B. Investors require audited financials there. Some hit it sooner in an M&A diligence flow, even before a priced round. An auditor will ask for the deferred revenue rollforward. They want it tied to source data (contract terms, billing records, payments). A sheet rollforward can pass an audit. But the audit prep work is heavy. A dedicated revenue recognition tool builds an audit-ready report with source-data lineage. The audit prep work drops from weeks to days. If audit is on your near-term roadmap, that's the signal to upgrade. For most early-stage SaaS, you'll graduate to one of these tools between $1M and $5M in ARR. Below that, the sheet is fine. Above that, the tool earns its keep. For the broader Stripe-to-books flow including reconciliation patterns beyond revenue recognition, see [Stripe Bookkeeping](/topics/stripe-bookkeeping). --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. *[*Full disclaimer*](/disclaimer)*.* [Get Started with Growthy](/signup?utm_content=stripe-revenue-recognition-saas) --- *Related: *[*SaaS Accounting*](/topics/saas-accounting)*, *[*Stripe Bookkeeping*](/topics/stripe-bookkeeping)*, *[*AI Bookkeeping*](/topics/ai-bookkeeping)*.* ### [SaaS Metrics for Bookkeepers: MRR, ARR, Bookings, Billings Translated](https://growthy.com/blog/saas-metrics-mrr-arr-bookkeepers): Translate SaaS founder vocabulary (MRR, ARR, bookings, billings, NRR) into GAAP-shaped numbers. Why they don't tie to the P&L, and how to produce the metrics view from QBO or Xero. A founder Slacks you at 9:47 PM. "What's my MRR right now?" You pull up the P&L. Subscription revenue reads $47,300. You write back the number. Two minutes later: "That's not what Stripe shows. Stripe says $52,000." You both stare at different screens. You're both right. The P&L number is recognized revenue under GAAP. The Stripe number is a forward-looking subscription run-rate. Same business, two answers, no error. This is the bookkeeper's daily problem in [SaaS accounting](/topics/saas-accounting). The founder thinks in metrics. The books speak in revenue. Bridging the two is part of the job now. This guide walks through the four numbers every SaaS founder asks about. It explains why none of them tie cleanly to the P&L. It also shows how to produce a one-page metrics view from QBO or Xero, no separate revenue recognition tool needed. It's written for Sarah, who keeps books for one to three SaaS clients. And for Marcus, who works at a CPA firm with a few SaaS shops on the roster. (Disclosure: Bobby Huang, who guides Growthy content, is a CPA firm partner but not himself a CPA. This is bookkeeper-to-bookkeeper framing, not regulated tax or audit advice.) > **What are SaaS metrics for bookkeepers and why don't they match the P&L?** > > SaaS metrics are forward-looking measures of subscription business health. The four core numbers are MRR (monthly recurring revenue, the run-rate) and ARR (MRR × 12). The other two are bookings (total contract value signed in a period) and billings (invoiced amount in a period). None equal GAAP recognized revenue on the P&L. A $12,000 annual contract signed in January creates $12,000 in bookings, $12,000 in billings, $1,000 in MRR, and $1,000 per month in recognized revenue for 12 months. Bookkeepers need a separate metrics view because QBO and Xero report recognized revenue, not subscription run-rate or contract value. ## Key Takeaways - **Four numbers, four audiences**: MRR and ARR serve the founder dashboard. Billings serves the AR clerk. Bookings serves sales. Recognized revenue serves the P&L. Confusing them creates 90% of SaaS bookkeeping disputes. - **A $12,000 annual prepay creates four different numbers**: $12,000 bookings, $12,000 billings, $1,000 MRR, and $1,000 monthly recognized revenue for 12 months. All four are correct. - **MRR is not on the P&L by default**: QBO and Xero report recognized revenue under ASC 606. MRR needs contract-level tracking, usually in a spreadsheet, CRM, or a tool like ChartMogul. - **NRR hides churn behind expansion**: A 110% NRR can mean strong expansion masking 15% churn. Bookkeepers should produce both the gross and net numbers. - **The one-page metrics view costs about 2 hours per month** to maintain manually for a client with under 200 active subscriptions. Beyond that, a dedicated tool earns its keep. - **Flag mismatches as bookkeeping issues or definition issues**: If recognized revenue exceeds MRR × 12, you may have multi-year recognition pulling forward. If MRR exceeds recognized revenue / 12, you may have under-recognized invoices. ## The four numbers every SaaS founder asks about and what they actually mean Before you can translate, you need the definitions. These four metrics get used loosely in board decks and investor updates. Pinning them down is the first job. ### MRR (Monthly Recurring Revenue) MRR is the sum of all active subscription contracts, normalized to a monthly value, on a specific date. It's a snapshot of the subscription run-rate. If a client has 50 customers paying $100 per month and 10 customers paying $1,200 per year, their MRR is (50 × $100) + (10 × $100) = $6,000. The annual customers get normalized by dividing by 12. MRR is forward-looking. It answers, "If nothing changes from today, what will recurring revenue look like next month?" It doesn't include one-time fees, professional services, or non-recurring add-ons. Setup fees are out. Usage-based fees are usually out too, though some founders include them with caveats. The most common bookkeeper error here is including non-subscription revenue in MRR. If your client's $100K monthly revenue includes $30K in one-time setup fees, the MRR is $70K, not $100K. Strip non-recurring items before reporting. ### ARR (Annual Recurring Revenue) ARR is MRR multiplied by 12. That's it. No separate calculation, no different data source. If MRR is $6,000, ARR is $72,000. The confusion comes from founders who use ARR loosely to mean "annual revenue" or "annual contract value." It doesn't. ARR is a forward-looking annualized run-rate based on today's subscriptions. A company operating six months can have an ARR of $1.2M even though it's only collected $400K so far. When a founder says, "We just hit $1M ARR," they mean the monthly recurring revenue at that moment, annualized, equals $1M. They don't mean they've collected $1M. The P&L will lag by 6 to 12 months because it shows what's actually been recognized. ### Bookings Bookings are the total contract value (TCV) signed in a period. A bookkeeper rarely tracks this in QBO directly. It usually lives in the CRM (HubSpot, Salesforce) or a spreadsheet maintained by the founder. If a customer signs a 24-month contract on January 15th for $24,000 total, January bookings include $24,000. That same contract may not generate a single invoice in January if billing starts in February. Bookings ignore invoice timing and recognition timing. They measure what was sold, when it was sold. Bookings are a leading indicator of future revenue. Strong bookings in Q1 predict strong recognized revenue across Q2, Q3, and Q4 as the contracts get delivered. Weak bookings predict revenue slowdowns 6 to 9 months out. ### Billings Billings are the total invoiced amount in a period. This is the one number bookkeepers can pull straight from QBO or Xero. Filter invoices by date range and sum the amounts. Done. A $12,000 annual contract billed upfront in January creates $12,000 in January billings. The same contract billed monthly creates $1,000 in billings each month. The total bookings number is the same ($12,000), but the billings cadence differs based on how the founder structured the invoice schedule. Billings answer the AR clerk's question: "How much did we invoice this month?" They don't answer the GAAP question. They don't answer the founder's question either. Different number, different audience. ## Why none of these tie to your P&L This is the moment the founder gets frustrated. They see MRR of $50,000 in their dashboard and recognized revenue of $35,000 on the P&L. They ask, "Are we losing money? Is something broken?" Usually no. The numbers measure different things. ### MRR vs recognized revenue: the timing gap MRR is a forward snapshot. Recognized revenue is a retrospective measure of what got delivered. They're calculated on different cycles and answer different questions. Consider a SaaS client with $60,000 in active monthly subscriptions on the first of the month. MRR is $60,000. Halfway through the month, a $24,000 annual prepay contract starts. MRR jumps to $62,000 (the new contract adds $2,000 per month). But recognized revenue for the month only includes 15 days of the new contract, so it adds about $1,000, not $2,000. End-of-month recognized revenue might be $61,000, not $62,000. That $1,000 gap is normal. It's the difference between a point-in-time snapshot and a period-of-delivery measurement. Founders who see this usually need the explanation, not a journal entry adjustment. ### Bookings vs revenue: contract value vs realized A $48,000 24-month contract signed in March creates $48,000 in March bookings. Recognized revenue for March, assuming a March 1 start date, is $2,000 ($48,000 divided by 24 months). The other $46,000 sits on the balance sheet as deferred revenue, draining at $2,000 per month for the next 23 months. This is the gap that confuses new SaaS bookkeepers most. Bookings include money the company hasn't earned and may not have collected. Bookings can spike in a quarter where recognized revenue is flat. Both numbers are accurate for their purpose. Bookings predict the future. Recognized revenue describes the past. For the bridge between these numbers, see [deferred revenue mechanics](/blog/deferred-revenue-saas-companies). The deferred revenue balance is the running total of bookings minus revenue recognized to date, less any refunds or cancellations. ### Billings vs revenue: invoiced vs delivered A $12,000 annual contract billed upfront in January generates $12,000 in January billings and $1,000 in January recognized revenue. The other $11,000 hits deferred revenue and bleeds out at $1,000 per month for 11 more months. Billings and recognized revenue only match when the customer is billed monthly for monthly service with no prepayment. In that case, January billings of $1,000 equal January recognized revenue of $1,000. For any annual prepay, multi-year deal, or upfront milestone payment, billings and revenue diverge. For the recognition rules and journal entry patterns, see [six SaaS contract examples with journal entries](/blog/asc-606-revenue-recognition-examples-saas). That spoke walks through the six most common SaaS contract structures. ## How to produce a metrics view from QBO or Xero QBO and Xero don't natively report MRR, ARR, bookings, or NRR. They report invoices, payments, and recognized revenue. If you want the metrics view, you build it on the side. See [saas metrics for bookkeepers](/blog/saas-metrics-mrr-arr-bookkeepers). ### MRR calculation from active subscription contracts You need a list of every active subscription on the date you're measuring. The easiest source is the billing system (Stripe, Chargebee, Recurly). Export active subscriptions as of the report date. For each one, get the monthly equivalent: if billed monthly, that's the invoice amount; annually, divide by 12; quarterly, divide by 3. Sum the monthly equivalents. That's MRR. If the client bills through QBO directly, build the list from active recurring invoices. Filter for invoices marked "recurring" and active as of the report date. Track non-subscription items separately. If a customer has both a $500/month subscription and a one-time $2,000 setup fee in the same period, MRR includes only $500. The setup fee shows in revenue but not MRR. ### Bookings calculation from contract sign dates Bookings need a contract sign date and a total contract value (TCV) for each new deal. QBO doesn't capture this. The data usually lives in HubSpot, Salesforce, or a spreadsheet the founder maintains. For each contract signed in the period, record the TCV. A $1,000/month contract signed for 12 months has a TCV of $12,000. A $2,000/month contract for 24 months has a TCV of $48,000. Sum the TCVs of contracts signed in the period. That's bookings. If the client doesn't track this, push them to start. A simple Google Sheet with three columns (customer name, sign date, TCV) is enough for under 50 deals per month. Beyond that, a CRM is overdue. ### Billings calculation from invoice dates Billings are the easiest of the four. Pull an invoice report from QBO or Xero filtered by invoice date for the period. Sum the total invoiced amount. Exclude credit memos and voided invoices. If the client uses a billing system that posts to QBO, the billing system total should match the QBO total. A mismatch usually points to a sync gap. For clients on Stripe Billing or Chargebee with QBO sync, run billings from both systems and reconcile monthly. A diff of more than 2% usually points to a sync issue (missed invoices, currency conversion, refund timing). ## Net revenue retention (NRR) and the metric that hides everything NRR is the metric founders quote on board decks. It tells you whether existing customer revenue is growing or shrinking, excluding new acquisition. It's also the metric most likely to mislead, because it combines three different movements into one number. ### What NRR measures NRR formula: (starting MRR + expansion - contraction - churn) / starting MRR. If a client started January with $50,000 MRR, added $8,000 in expansion, lost $3,000 in contraction, and lost $5,000 in churn, their NRR is ($50,000 + $8,000 - $3,000 - $5,000) / $50,000 = 100%. A 100% NRR means existing customers, in aggregate, are paying the same this month as last month. Above 100% means existing customers are paying more (expansion outweighs churn). Below 100% means they're paying less (churn outweighs expansion). ### Why bookkeepers should care NRR hides churn behind expansion. A SaaS client with 110% NRR can have 25% gross churn if expansion is strong enough to mask it. The board sees 110% and feels good. The reality is one in four customers cancels each year, and the company stays even only because the remaining customers upgrade. When a founder asks for NRR, give them both numbers. Net retention is the standard formula. Gross retention is starting MRR minus contraction minus churn, divided by starting MRR. The gross number shows the underlying churn. The net number is the headline that goes in the deck. > Gross retention strips expansion out. If gross retention is 85%, then 15% of starting MRR is leaving each month through downgrades and cancellations. Expansion may cover the gap, but the gap is still there, and the founder should see it. ### How to calculate from the books NRR requires cohort tracking. You need to know which MRR existed at the start of the period and where each dollar of it ended up. The cleanest approach: maintain a subscription log with customer ID, MRR at period start, MRR at period end, and a delta column. Tag the delta as expansion, contraction, churn, or no change. Sum the period-end MRR for the starting cohort, divide by the period-start MRR. This is doable in a spreadsheet for clients with under 100 customers. Beyond that, a tool earns its keep. ChartMogul and Baremetrics build NRR automatically from a Stripe or Chargebee feed. Maxio and Chargebee build it from their own contract data. ## When founders ask 'what's my MRR' and you have to explain why it's not on the P&L This conversation happens 50 times a year per SaaS client. The founder sees one number in their dashboard, another in your close package, and asks why they differ. ### Script: how to walk through it Start with audience framing. "MRR and revenue answer different questions. MRR tells you the run-rate today. Revenue tells you what was earned and delivered last month. Both are accurate. They're not supposed to match." If they push: "Your MRR is forward-looking. It assumes nothing changes. Revenue is retrospective. It only counts service that was actually delivered. A $12,000 annual contract counts as $12,000 in bookings, $1,000 in MRR, and $1,000 per month in revenue across 12 months." If they still push: "If you want them to match, you'd need to bill all customers monthly with no prepayments and no annual deals. Most SaaS companies don't operate that way, so the gap is normal." This usually ends the conversation. If it doesn't, the founder may be looking at a real mismatch worth investigating (see below). ### What to show them on a one-page metrics view A bookkeeper-built one-page metrics view has four sections: 1. **Subscription run-rate**: MRR, ARR, customer count, average revenue per customer 2. **GAAP revenue**: recognized revenue, deferred revenue balance, ratio of recognized to deferred 3. **Sales activity**: bookings, average contract value, contracts signed 4. **Cash activity**: billings, collected cash, AR balance Below those sections, add a "Why these differ" footer with two or three sentences explaining the timing gaps. The footer prevents the same Slack message you got at 9:47 PM last Tuesday. This view takes about 2 hours per month to build manually for a client with under 200 active subscriptions. The first month is harder. After that, it's about 90 minutes once you have the workflow. ### When to flag a mismatch as a bookkeeping issue vs a definition issue Not all mismatches are normal. Some are real errors worth flagging. Two patterns to watch: **Recognized revenue exceeds MRR × 12.** If MRR is $50,000 but trailing 12-month revenue is $700,000, you may have multi-year recognition pulling forward. Some bookkeepers recognize 24-month contracts over 12 months instead of 24. That overstates revenue today and creates a cliff next year. Investigate the recognition schedule for any multi-year contracts. **MRR exceeds recognized revenue / 12.** If MRR is $80,000 but trailing 12-month revenue is $600,000 ($50,000 average), you may have under-recognized invoices, missed contracts, or a non-subscription mix (one-time fees inflating MRR by mistake). Pull the active subscription list and confirm each item is truly recurring. When you spot one of these, flag it as "bookkeeping issue, will investigate" rather than blaming the metric definition. Don't ship a metrics view with a known mismatch. ## Tools that produce the metrics view automatically For most early-stage SaaS clients, the spreadsheet approach works. Below 100 active subscriptions and under 5 new contracts per month, a Google Sheet plus the QBO billings report is enough. ### When you need one Three triggers usually point to "time for a tool": - Contract complexity exceeds what a spreadsheet can maintain (multiple billing frequencies, mid-contract upgrades, usage-based components mixed with subscriptions) - Monthly close drags past 5 business days because metrics reconciliation is taking too long - The founder asks the same MRR question every week, which means they don't trust your manual report or can't access it on demand Below those thresholds, the spreadsheet is faster. Above them, the tool catches issues you'd miss. ### Options: Maxio, Chargebee, ChartMogul, Baremetrics The market splits into two categories. Revenue recognition platforms (Maxio, Chargebee) handle both metrics and the underlying GAAP journal entries. Metrics-only tools (ChartMogul, Baremetrics) handle the dashboard but expect you to keep doing revenue recognition in QBO or NetSuite. **Maxio** (formerly Chargify + SaaSOptics) bundles billing, revenue recognition, and metrics. Heavy lift to implement (4 to 8 weeks). Fits clients between $1M and $50M ARR with complex contracts. **Chargebee** is a billing platform with revenue recognition and metrics modules. Lighter implementation than Maxio. Good fit if the client uses Stripe and wants more contract management. **ChartMogul** is metrics-only. Pulls from Stripe, Chargebee, Recurly, and Braintree, then builds MRR, ARR, NRR, churn, and cohort views automatically. Often under a week to implement. Starts around $129/month. **Baremetrics** is the lightest option. Similar to ChartMogul in scope, with simpler dashboards. Good fit for early-stage clients who want fast setup. Starts around $129/month. For broader comparisons across SaaS accounting and metrics stacks, see [SaaS accounting software comparison](/blog/saas-accounting-software-comparison). ### Growthy on this: where we are today Growthy handles the categorization and GL side of SaaS bookkeeping in QBO and Xero. The metrics view (MRR, ARR, NRR, cohort tracking) is in the product roadmap but not shipped today. For clients who need automated metrics now, use a dedicated tool from the list above paired with your GL work. For clients under 100 active subscriptions, the spreadsheet approach works fine. If your client is past the spreadsheet stage and needs metrics this quarter, point them at ChartMogul or Baremetrics. If revenue recognition is the bigger headache, focus on the GL first and add metrics tooling when volume justifies it. ## What changes for the bookkeeper The bookkeeper's job in SaaS isn't to produce MRR every month. It's to make sure the four numbers and the P&L numbers reconcile in a way the founder can understand. The four are MRR, ARR, bookings, and billings. The P&L numbers are recognized revenue, deferred revenue, and AR. The metrics view is a translation layer, not a separate accounting system. For Sarah keeping books for a handful of SaaS clients, this means adding about 2 hours per client per month for the metrics view. Add another 30 minutes for the founder conversation after the close. For Marcus at a CPA firm with SaaS shops on the roster, it means training the staff to spot the four numbers in client conversations. And not treating "MRR" as a tax-deductible expense. Founders will ask. Investors will ask. Auditors will ask the GAAP version. Knowing the difference and being able to walk through it is the value the bookkeeper adds. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. *[*Full disclaimer*](/disclaimer)*.* [Get Started with Growthy](/signup?utm_content=saas-metrics-mrr-arr-bookkeepers) --- *Related: *[*SaaS Accounting*](/topics/saas-accounting)*, *[*Bookkeeper Scaling*](/topics/bookkeeper-scaling)*, *[*AI Bookkeeping*](/topics/ai-bookkeeping)*.*, [closing the books each month](/blog/month-end-close-checklist-for-saas-founders) ### [SaaS Bookkeeping for Founders: What to Set Up in Year One](https://growthy.com/blog/saas-bookkeeping-for-founders): Day-1 through end-of-year SaaS bookkeeping setup for founders. Chart of accounts, deferred revenue, Stripe, 1099s, and ASC 606 awareness without overengineering. You signed your first annual customer last month. $12,000 hit your bank in one wire. That's not $12,000 of revenue this month. That's $1,000 of revenue this month. The other $11,000 is something called deferred revenue. It sits on a balance sheet you don't have yet. Welcome to [SaaS accounting](/topics/saas-accounting). Cash and revenue stop being the same number the day you sell your first subscription. Most SaaS founders figure this out the hard way. They run their books like a consulting business for nine months. They hit December and find their P&L shows $200K in revenue. Only $40K was actually earned. Or they pay a freelance designer $4,200. Then they panic-Google "do I owe a 1099" the week of January 31. The mistakes that hurt later are the ones you didn't know you were making in Month 1. This guide walks the first 12 months. Day 1: pick a general ledger. Week 1: chart of accounts. Month 1: Stripe and one journal entry. Month 3: contractor tracking. Month 6: a bit of ASC 606 know-how. End of year: clean enough for a future audit. No CPA-shop jargon. No "you must use ASC 606 from day one" panic. Just what to set up, what to skip, and when. > **What is SaaS bookkeeping and how is it different from regular small-business bookkeeping?** > > SaaS bookkeeping records subscription revenue, deferred revenue, contractor costs, and processor fees. It matches the books to when value is delivered, not when cash moves. A regular small business records a $1,000 sale when the customer pays. A SaaS business sells a $1,200 annual subscription. It records $100 of revenue per month for 12 months. The rest sits as a deferred revenue liability until earned. The pieces that matter in year one: a chart of accounts with deferred revenue and processor fees. A Stripe link that splits gross sales from fees. Contractor payment tracking from dollar one (1099-NEC threshold is $600 per contractor per year). Monthly recognition habits. You don't need full ASC 606 audit-ready books in year one. You do need books that won't be a nightmare to clean up in year two. ## Key Takeaways - **Cash and revenue split the day you sell an annual plan**: A $12,000 annual contract creates $1,000 of revenue and $11,000 of deferred revenue in Month 1. Not $12,000 of revenue. - **Most founders default to QBO or Xero through their CPA**: That's usually fine for year one. The cost of picking wrong shows up at $1M ARR. By then you've outgrown the chart of accounts. - **A SaaS chart of accounts needs about 10 extra accounts** beyond a default small-business COA: deferred revenue, capitalized commissions, hosting costs, processor fees, and a handful of SaaS-specific COGS sub-accounts. - **Track every contractor payment from dollar one**: The 1099-NEC reporting threshold is $600 per contractor per year. Backfilling January is painful. Tracking from Month 1 takes 30 seconds per payment. - **You don't need ASC 606 audit-grade revenue recognition in year one**: You need monthly straight-line recognition for subscriptions. And a deferred revenue roll-forward you can defend in two years. - **Clean year-one books make year-two due diligence survivable**: Trial balance tied out. Deferred revenue tied to contracts. Processor fees split out from gross sales. That's the bar. ## What's different about SaaS bookkeeping from regular small-business bookkeeping A consulting firm bills a client $5,000 in March. They get paid in April. They book $5,000 of revenue in March (or April, if cash basis). A SaaS company sells a $12,000 annual subscription in March. They get paid $12,000 in March. They book $1,000 of revenue per month for 12 months. The other $11,000 isn't revenue yet. It's a promise to deliver software for the next 11 months. That sits as a liability called deferred revenue. ### Subscriptions create a timing gap between cash and revenue This timing gap is the whole game. Cash hits when you charge. Revenue hits as you deliver. The two numbers will not match in any given month. Not after you've sold a single annual plan. If your books show them matching, the books are wrong. Most generic bookkeeping software handles this badly. Or not at all without setup work. Picture a founder seeing their bank balance ($180K) next to their "revenue" P&L line ($180K) in month two of selling annual plans. Something's broken. Probably the recognition, not the bank. ### Why your accountant's default setup probably isn't enough Most CPAs serve small businesses across many industries. The default chart of accounts they push is built for a consulting firm or a restaurant or a contractor. It has no deferred revenue account. It does not split hosting from general software expense. It does not capitalize commission costs. (You'll want to do that later if you pay sales commissions on multi-year deals.) None of this is your CPA being lazy. SaaS is one of dozens of industries they touch. Their template covers 80% of clients. You're in the other 20%. ### What you can defer for now vs what you can't You can defer full ASC 606 audit-grade revenue recognition. You can defer commission capitalization until you have a sales team. You can defer multi-element arrangements until you sell bundled products. You cannot defer clean categorization. Un-cleaning it later is hours of work per month of mess. You cannot defer deferred revenue tracking once you sell your first annual plan. You cannot defer processor-fee handling once Stripe takes 2.9% + 30 cents off every transaction. ## Day 1: pick a general ledger that won't trap you in 12 months Your first call is the system of record. That's the bookkeeping software that holds your chart of accounts, your transactions, your trial balance. The two most common picks are QuickBooks Online and Xero. A third option is less common but worth knowing. You can start on a SaaS-native general ledger built for subscription books from day one. ### The default trap: QBO/Xero by inertia Your CPA probably uses QuickBooks Online. They'll suggest you do too. There's nothing wrong with this. QBO is the default for a reason. It works. Your CPA knows it. Every bookkeeper in the country can use it. For most year-one SaaS founders, QBO plus a few add-ons is fine. The trap isn't QBO itself. The trap is defaulting to QBO without thinking about what year three looks like. Some founders pick QBO. They outgrow it at $1M ARR. Then they face a painful move to a SaaS-native GL. With two years of messy past data to clean up. ### What "AI-native GL" actually means A general ledger where software does the sorting and matching, not a bookkeeper at $50 per hour. Growthy runs as a [standalone general ledger](/signup?utm_content=saas-bookkeeping-for-founders). There are others. None of them have the brand recognition of QBO. ### Mode 1 vs Mode 2: which fits a brand-new SaaS Mode 1 means QBO or Xero as the system of record. A SaaS-native tool layers on top to handle subscription billing and recognition. Mode 2 means starting directly on a SaaS-native general ledger as the system of record. QBO never enters the picture. Mode 1 is the easy path. Especially if your CPA's already set you up. Mode 2 avoids a move later. But you trade that for picking a less-mainstream system. Your future CPA may not know it. Rule of thumb: if your CPA already has you on QBO, stay Mode 1 for year one. If you're picking fresh and don't have a CPA yet, weigh Mode 2 hard before you default. ## Week 1: set up the chart of accounts you'll grow into The chart of accounts (COA) is the list of buckets every transaction gets sorted into. Revenue, cost of goods sold, operating expenses, assets, liabilities, equity. Each bucket has a number and a name. Most generic COAs come with 80 to 120 accounts. You'll use maybe 30 in year one. The question is whether the right 30 are in there. Or whether you'll have to add and re-sort later. A [SaaS-ready chart of accounts](/blog/chart-of-accounts-for-saas-startups) has accounts a generic small-business COA doesn't. ### Required additions to a default COA These are the accounts you'll need within the first 90 days of selling subscriptions. Deferred Revenue (Current) for subscriptions billed but not yet delivered, with a 12-month or less span. Deferred Revenue (Non-Current) for multi-year prepays where some revenue won't be earned for more than 12 months. Software Hosting Costs as a COGS sub-account. AWS, GCP, Cloudflare bills go here, not into general Software Expense. Payment Processing Fees as its own line, split out from gross sales. Customer Refunds and Credits as a contra-revenue account. ### The 5 accounts founders forget to add These don't bite in month one. They bite in month six. Contract Assets, for cases where you've delivered service but not yet billed (rare in self-serve, common in enterprise). Customer Credit Liability, for prepaid credits or wallet balances that haven't been used. Capitalized Software Development, if you have engineers building product features that meet the rules to capitalize. Most early-stage SaaS expenses everything. This matters later. Capitalized Commissions, if you start paying sales commissions on multi-year deals. Foreign Exchange Gain/Loss, if you have non-USD customers or vendors. ### Don't over-engineer it The most common COA mistake in year one: adding 200 accounts because a blog post said you'd need them. You won't. Add the 10 to 15 SaaS-specific accounts above and stop. Every account you add is one you have to map a transaction into during reconciliation. More accounts means more decisions. More slip between months. A worse audit trail. Start with 30. Add accounts only when a transaction doesn't fit anywhere. ## Month 1: connect Stripe, set up deferred revenue tracking, and learn one journal entry Stripe is where the money comes in. If you don't connect it right to your bookkeeping system, you'll get a P&L that shows the wrong revenue, the wrong fees, and the wrong customer counts. This is the most common Month 1 mistake. ### Connect Stripe properly (not just the bank feed) The wrong way: let your bookkeeping software pull the Stripe payouts from your bank feed. That gives you one deposit line every few days. It shows the net amount Stripe sends after fees and refunds. You don't see gross sales. You don't see fees as a separate line. You don't see refunds. Your revenue number is wrong from day one. The right way: connect Stripe direct to your bookkeeping system. Most modern tools have this. Or use a clearing-account setup with Maxio, Stripe Sigma exports, or a dedicated link. Each Stripe transaction should produce a clean entry. Gross sale to revenue (or deferred revenue). Fee to processing fees. Net to a Stripe clearing account that ties to payouts. ### The one journal entry every SaaS founder should understand You sell a $1,200 annual subscription. Stripe takes $35 in fees. Here's what should hit your books on signing day. Debit Cash $1,165 (net Stripe payout). Debit Processing Fees $35 (gross fees). Credit Deferred Revenue $1,200 (the obligation to deliver 12 months of service). Then every month for the next 12 months: Debit Deferred Revenue $100. Credit Subscription Revenue $100. That's it. The signing entry sets up the liability. The monthly entry books revenue as you deliver. Memorize this one and you grasp 80% of SaaS revenue recognition. ### How to track deferred revenue in a spreadsheet (yes, really) In year one, with simple contracts and fewer than 50 customers, [tracking deferred revenue monthly](/blog/deferred-revenue-saas-companies) in a spreadsheet is fine. One row per contract: customer name, contract start date, contract end date, total contract value, monthly recognition amount, deferred revenue balance at each month-end. The total of all deferred revenue balances on your sheet should match the deferred revenue balance on your balance sheet at every month-end. When they don't match, something's wrong. Once you cross 100 contracts, the spreadsheet becomes the bottleneck. You move up to a tool that handles it natively. For more on the mechanics, see [Stripe revenue recognition for SaaS](/blog/stripe-revenue-recognition-saas). ## Month 3: contractor payments and 1099 tracking If you use freelancers, agencies, or independent contractors, you'll owe them 1099-NEC forms in January. The threshold is $600 per contractor per year. That's the full annual amount paid to one person. Not per payment. Pay a freelance designer $300 in March and $400 in November. You owe them a 1099. Most founders mess this up because they don't track from day one. ### Why most SaaS founders mess this up The pattern: founder pays a contractor through Stripe, Wise, PayPal, or a direct ACH from their bank. The payment goes into a generic "Contractors" or "Consulting" expense bucket. No W-9 was collected. No record of the contractor's legal name, address, or TIN. January arrives. The founder has to email 12 contractors and beg for W-9s. The 1099 filing deadline is January 31. Half the contractors don't respond. The other half are confused. The founder either files late (penalty) or doesn't file (bigger penalty if audited). ### What to track from day one to avoid January panic Three things per contractor. A signed W-9 collected before you pay them (the legal standard). Every payment logged against that contractor by date and amount. The running annual total per contractor visible to you at any time. Modern bookkeeping software handles this on its own. So do dedicated tools like Gusto, Justworks, Deel, or Bill. Manual tracking works at 1 to 3 contractors. At 5 or more, move up to a tool. Note: payments via credit card or third-party platforms (like Upwork) get reported by the platform on a 1099-K. Not by you on a 1099-NEC. ACH and check payments are on you. ### When to start using a payments tool Rule of thumb: 5 or more active contractors. Or any contractor with ongoing payments rather than one-off projects. Gusto handles US contractors well. Deel handles international contractors well. Bill handles AP workflows with approvals. The cost is $10 to $40 per contractor per month. A lot less than the cost of a botched 1099 season. You can also handle this inside your bookkeeping system if it has 1099 tracking built in. ## Month 6: ASC 606 awareness without overengineering ASC 606 is the US accounting rule for how SaaS companies should recognize revenue. It has five steps, dozens of edge cases, and entire books written about it. You don't need to use all of it in year one. You do need to know the basic shape. So your books aren't actively wrong. And so your year-three audit doesn't find issues that should've been handled in year one. ### What you need to know vs what you need to do You need to know: revenue is recorded as you deliver service. Not when cash is collected. For most SaaS subscriptions, that means monthly straight-line recognition over the contract term. Monthly subscriptions: record the full month in the month delivered. Annual prepays: divide by 12, record one-twelfth per month. Multi-year prepays: divide by total months, record one slice per month, split between current and non-current deferred revenue at each month-end. You need to do: post the monthly recognition journal entry, keep the deferred revenue roll-forward, log contract changes (upgrades, downgrades, cancellations with prorations) when they happen. ### The bar for pre-audit SaaS If you're under $5M ARR and not yet going through a formal audit, the bar is simple. Monthly recognition done the same way every month. Deferred revenue balance you can defend against your contract list. Contract changes logged with the entries that resulted. Processor fees split out from gross revenue. That's it. You don't need a 50-page ASC 606 memo. You don't need quarterly variable-consideration estimates. You don't need to capitalize and amortize every contract acquisition cost. Those matter if you take institutional money, prep for an audit, or approach an M&A event. ### When to call in a CPA Three triggers. First, when you're prepping for a Series A or later round. Diligence will pick apart your recognition. Second, when you cross roughly $5M in ARR. The mess creeps in and the spreadsheet stops working. Third, when you have unusual contracts. Long-term deals with usage parts, bundled hardware plus software, milestones, performance obligations beyond plain-vanilla subscriptions. A SaaS-experienced CPA at year two is not the same as a generalist small-business CPA in year one. Different focus. ## End of year 1: clean books that won't haunt your due-diligence audit The reason any of this matters: someone is going to look at your year-one books in year two or year three. An investor. An acquirer. An auditor. By that point, you've already done the work. Or you haven't. Going back to clean up year-one books in year three is slow and costly. It can stall a fundraise. ### What a "clean" SaaS book looks like Trial balance balances. Bank accounts tie out to the penny every month. Stripe and other processors tie out to gross and net. Deferred revenue balance on the balance sheet matches the sum of unearned amounts on the contract list. Revenue on the P&L matches the sum of monthly recognition entries posted. Processor fees split out as their own line. Contractor 1099s filed on time and traceable. COA hygiene: no duplicate accounts, no "Ask My Accountant" or "Uncategorized" buckets, every transaction in a real bucket. ### The 5 things to check before your first audit Pre-audit checklist for end of year one. (1) Deferred revenue roll-forward built and balanced for all 12 months. (2) Journal entry notes for every recognition entry, with the formula or contract reference noted. (3) Contract files saved and findable, one per customer minimum, ideally one per contract. (4) COA scanned for duplicate or zero-balance accounts that should be cleaned up. (5) Processor-fee netting confirmed. No gross-up errors where fees got recognized as revenue. This isn't a full audit prep. It's the bar that makes a future audit survivable. ### Where founders typically land in year 2 Two common paths. Mode 1 founders typically end year one on QBO with Maxio or a similar billing-and-recognition layer. They stay there through Series A. They move to a more specialized GL only if specific pain forces it. Multi-entity. Tricky revenue. International subsidiaries. Mode 2 founders end year one on a SaaS-native GL like Growthy. They never had to think about the move question. Which path is "right" depends on your future books. Closer to "more of the same" means Mode 1 holds. Closer to "much more tricky" means Mode 2 was worth it. Bobby is a CPA firm partner, not personally a CPA. The firm sees both paths work. The one that works best is the one you pick on purpose, not by inertia. > **The honest year-one summary.** Pick a GL on purpose. Set up a SaaS-flavored chart of accounts with about 30 active accounts, not 200. Connect Stripe properly. Track contractor payments and W-9s from dollar one. Post a monthly recognition entry. Keep a deferred revenue spreadsheet that ties to your books. Don't try to implement full ASC 606. Save your contract files. That's year one. Everything beyond that is year two's problem. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. *[*Full disclaimer*](/disclaimer)*.* [Get Started with Growthy](/signup?utm_content=saas-bookkeeping-for-founders). See [saas bookkeeping](/blog/saas-bookkeeping-for-founders). --- *Related: [*SaaS Accounting*](/topics/saas-accounting), [*Chart of Accounts*](/topics/chart-of-accounts), [*1099 Filing*](/topics/1099-filing), [*Stripe Bookkeeping*](/topics/stripe-bookkeeping), *[Accrual vs Cash Basis](/blog/accrual-vs-cash-basis-accounting-for-saas-startups), [how sales tax nexus works for SaaS startups](/blog/sales-tax-nexus-for-saas-startups) ### [SaaS Accounting Software in 2026: Honest Comparison of 8 Options](https://growthy.com/blog/saas-accounting-software-comparison): Practitioner comparison of 8 SaaS accounting tools. QBO, Xero, Maxio, Chargebee, RecVue, Stripe Billing, NetSuite, and Growthy mapped to ARR stage and revrec complexity. Picking accounting software for SaaS companies is a one-year cleanup risk if you get it wrong. Every vendor blog says their tool is the answer. Every comparison post is written by someone with skin in the game. That includes this one. We make Growthy. We'll be honest about where Growthy fits and where it doesn't. For the bigger picture, see [SaaS accounting](/topics/saas-accounting). The phrase "SaaS accounting software" covers at least three tools doing three jobs. The general ledger holds your books. The revenue recognition engine turns contracts into revenue under ASC 606. The billing system invoices and collects. One tool rarely does all three well. The right mix depends on your contract complexity and your ARR stage. We compare the tools we see most in SaaS books. Those are QuickBooks Online, Xero, Maxio (formerly SaaSOptics), Chargebee, RecVue, Stripe Billing Revenue Recognition, and Growthy. We add NetSuite for the enterprise end. We map each one to the stages where it fits, and we tell you what each one breaks on. *Last updated June 2026. Pricing verified to vendor sites as of June 2026.* > **What is the best accounting software for SaaS companies in 2026?** > > There isn't one best tool. The right stack depends on ARR and contract complexity. Pre-revenue to $500K ARR, QuickBooks Online ($140/month for Plus per [Intuit pricing](https://quickbooks.intuit.com/pricing/), as of September 2026) or Xero ($25 to $90/month) handle the general ledger, with Growthy as the coding layer for Stripe and processor fees on QuickBooks Online. From $500K to $5M ARR, most SaaS companies add a revrec layer like Maxio or Chargebee (from $599/month) on top of QBO or Xero. Above $5M ARR or facing an audit, NetSuite ($129/user/month base, $30K to $100K+ in year one) plus a dedicated revrec tool like RecVue becomes the common stack. Stripe-billing only? Stripe Revenue Recognition (0.25% of recognized revenue) is the native option. ## Key Takeaways - **No single tool covers everything.** SaaS accounting needs a general ledger, a revrec engine, and a billing system. You combine them by stage. - **QBO and Xero handle straight-line revrec only.** Both work for simple monthly subscriptions. Both break at multi-year prepay, mid-term contract changes, and complex SSP allocation under ASC 606. - **Revrec layers cost far less than NetSuite.** Maxio and Chargebee start at $599/month and connect to QBO or Xero. NetSuite runs $129/user/month plus $30K to $100K+ in year one. - **NetSuite graduation usually happens around Series B.** Multi-entity, multi-currency, and audit prep are the common triggers. Migration takes 3 to 6 months. - **Growthy is the coding layer, not a revrec engine.** We automate Stripe coding, processor fees, and multi-revenue COGS at 85% accuracy on first import. Multi-step ASC 606 automation isn't in the product; manual journal entries work today. - **Match the tool to your SaaS revenue recognition need.** Simple subs stay on QBO or Xero. Complex contracts need a revrec layer. That decision drives the stack more than price does. ## Why most SaaS accounting software comparisons are misleading Spend an afternoon reading vendor comparisons and the pattern shows up. The Maxio blog says Maxio. The Chargebee blog says Chargebee. The Bench blog said Bench until Employer.com bought it. Every comparison reads like a sales pitch with a feature table attached. ### Vendor blogs are vendor blogs When a vendor publishes a comparison, they're not lying. They pick the criteria where their tool wins. If their tool ships strong subscription analytics, the table has a "subscription analytics" row. If their tool ties into NetSuite, the table has a "NetSuite integration" row. The criteria are the bias. Independent comparisons exist, but they're rare. Most content in this space is vendor-written or affiliate-driven. That makes it hard to get an honest answer to a simple question: which tool fits my contract complexity and my stage? ### Feature-table puffery vs operator-real differences Feature tables make every tool look the same. Every tool gets a checkmark next to "revenue recognition" or "ASC 606 support." The checkmark hides huge gaps. QBO lets you record a deferred revenue journal entry. That's not the same as automating ASC 606 across thousands of contracts with mid-term changes. The operator-real gaps live in the edge cases. What happens when a contract gets upgraded mid-term? When a customer prepays for three years? When you sell a bundle with several performance obligations? Those cases split a general ledger from a revrec engine. ### What this comparison answers This post answers one question: which tool or combo fits which stage of SaaS company? We group the options into three buckets. General GL, revrec layer, and enterprise. Then we map them to ARR stages. We also tell you where Growthy fits and where it doesn't. ## General GL: QuickBooks Online vs Xero QuickBooks Online and Xero are the two most common general ledgers in early-stage SaaS. They aren't built for SaaS. But they cover the books, run payroll tie-ins, and produce the financial statements your investors expect. ### What QBO and Xero do well for SaaS Both handle the basics. Bank feeds, invoicing, expense coding, payroll tie-ins with Gusto or Justworks, sales tax, and standard reporting all work. For straight-line monthly subscriptions, both can record revenue with a recurring journal entry. The entry moves money from deferred revenue to recognized revenue each month. QBO has the deeper accountant network in the US. Most US bookkeepers and CPAs use it daily. That matters when you hire fractional finance help or go through diligence. Xero has a cleaner interface, stronger multi-currency support, and a strong UK and AU footprint. For US-based SaaS, the network effect points toward QBO. ### Where they break for SaaS contract complexity Both tools break at the same spots. Multi-year prepaid contracts need amortization schedules outside the GL. Mid-term changes (upgrades, downgrades, cancellations with proration) need manual journal entries that re-allocate deferred revenue. Bundles with several performance obligations need standalone selling price allocation. Neither tool does that on its own. Ten contracts is fine with spreadsheets. A hundred is not. Errors compound, and your auditors find them. This is the point where most SaaS finance teams add a revrec layer. ### Pricing context As of September 2026, QuickBooks Online Plus runs $140/month after the August 2026 increase. The Advanced tier sits higher, at $340/month. Xero runs $25/month for Early, $55 for Growing, and $90 for Established. Both have promotional pricing for the first few months. Prices have been rising across the category, so check current published pricing before you commit. ## Revenue recognition layers: Maxio, Chargebee, RecVue When your GL alone can't handle your contracts, the standard move is to add a revrec layer. The layer connects to QBO or Xero. Three options come up most in SaaS books: Maxio (formerly SaaSOptics), Chargebee, and RecVue. ### A quick ASC 606 primer Revrec layers exist to automate ASC 606. The standard has five steps. Identify the contract. Identify the performance obligations in it. Set the transaction price. Allocate that price to each obligation by its standalone selling price. Recognize revenue as each obligation is satisfied. For a simple monthly subscription, that's a straight line. For a three-year prepaid deal with an onboarding fee and a mid-term upgrade, it's a scheduling problem a spreadsheet loses track of fast. That gap is what SaaS revenue recognition is for, and a revrec layer automates it. ### Maxio (formerly SaaSOptics): a bookkeeper-shaped revrec layer Maxio is the rebrand of SaaSOptics. It sits on top of your GL (QBO, Xero, or NetSuite). It handles ASC 606 revenue recognition, deferred revenue scheduling, and SaaS metrics like MRR and ARR. The rigor matches what an auditor expects. The interface is shaped for bookkeepers and controllers, not engineers. Maxio fits when contract complexity has outgrown manual JEs but you don't want to migrate the GL. You keep QBO or Xero, add Maxio, and get audit-grade revrec. The Grow plan is $599/month for companies billing up to $100K/month, billed annually, which lands in the low five figures a year. Higher volumes move to a quote-only Scale plan. ### Chargebee: billing plus revrec combined Chargebee is a subscription billing platform first. It handles invoicing, dunning, plan changes, and proration. It also ships an ASC 606 revrec module that turns billing data into compliant revenue schedules. The pitch is consolidation. Already on Stripe or a custom billing setup and want billing and revrec in one place? Chargebee is a candidate. The tradeoff is that you're now tied to Chargebee for billing infrastructure, not just revrec. Pricing starts with a free Starter tier that covers your first $250K in lifetime billing, then charges 0.75% of billing. The Performance plan is $599/month for up to $100K/month in billing. A mid-market SaaS running real volume often spends $3K to $8K a month all-in once overage and add-ons stack up. ### RecVue: enterprise revrec RecVue targets the enterprise end. Multi-currency, multi-entity, complex contract structures, audit-grade controls. It's the tool you pick when Maxio or Chargebee's revrec module isn't enough. Pricing is enterprise and custom-quoted, not publicly published. Most companies on RecVue are also on NetSuite or a similar ERP. ### When you actually need one You need a revrec layer when contract complexity outgrows manual journal entries. The triggers are usually one of these: - Multi-year prepay at volume. - Frequent mid-term changes. - Multi-element deals that need SSP allocation. - Multi-currency. - An audit on the horizon. If none of those apply, you can keep QBO or Xero plus a careful spreadsheet for another year. For the mechanics, see [ASC 606 in plain language](/blog/asc-606-revenue-recognition-saas). ## Stripe Billing Revenue Recognition Stripe ships a native Revenue Recognition product as part of Stripe Billing. It reads from your Stripe Billing data and produces ASC 606 schedules with no outside integration. ### Native Stripe option for Stripe-billing customers The pitch is simplicity. If all your revenue runs through Stripe Billing, you don't need a separate revrec integration. Stripe already knows your invoices, plan changes, and proration. The product builds revenue schedules you export to your GL. For Stripe-billing-only SaaS in a single currency with simple contracts, this is the lowest-friction path to ASC 606 compliance. You're already on Stripe. You turn on Revenue Recognition. You export the schedules. ### Where it ends The product is shaped around Stripe Billing data. Got revenue outside Stripe, like partner channels, manual invoices, or services billed apart? That revenue lives elsewhere and needs separate handling. Complex multi-element deals or non-Stripe revenue pull you back to Maxio, Chargebee, or RecVue. On price, Stripe Revenue Recognition costs 0.25% of recognized revenue, with no upfront fee. Recognize $100K in a period and the fee is about $250. The automation is also bundled into the Stripe Billing Scale plan (0.8% of recurring billing), so check which line you're paying on. ## Enterprise: NetSuite NetSuite is where most SaaS companies graduate when they outgrow QBO or Xero plus a revrec layer. It's an ERP, not just a GL. It covers accounting, revenue recognition, billing, procurement, and reporting in one platform. ### When SaaS startups graduate to NetSuite The typical graduation point is Series B or later. Triggers include multi-entity (US plus international subsidiaries), multi-currency at scale, audit prep, or complexity QBO can't carry. Once you have a real controller and finance team, NetSuite becomes the standard expectation. For SaaS, the NetSuite Advanced Revenue Management module handles ASC 606 natively. You can stay in one platform from billing through revrec through reporting. That single system is part of the value. ### Cost reality check NetSuite is expensive, and it got more expensive in 2026. Oracle raised the base full-user license to about $129/user/month, up from $99. The platform base fee runs roughly $999 to $5,000/month depending on edition. Modules for advanced revenue management, multi-currency, and advanced reporting add on. Setup through a partner usually runs $30K to $100K+ in year one, and more for complex setups. Annual software for a real mid-market SaaS deployment lands in the $25K to $250K range. The cost is only worth it if you use the consolidation. Running NetSuite as a glorified GL means you're overpaying. The value shows up when you combine billing, revrec, and ERP in one system. ### Migration friction NetSuite migrations are non-trivial. Three to six months is typical for a midsize SaaS company, longer for complex setups. You need a partner, a project plan, and finance team bandwidth. Plan for the migration window when you set the graduation date. ## Growthy in this matrix: honest about what we do and don't Growthy makes this comparison because we sit in the SaaS bookkeeping space. We won't pretend we're the answer to every problem. Here's where we fit. ### What Growthy ships today Growthy is the coding layer for SaaS books. We automate Stripe coding, processor fee accounting, and multi-revenue COGS attribution. We target 85% accuracy on first import, and you review the rest. We ship dual-mode. Mode 1 layers over your existing QuickBooks Online books: it pulls your transactions in, codes them with confidence scoring, and hands you a clean review queue, so your ledger stays where it is. Mode 2 runs as a standalone GL for founders building net-new without a legacy QBO file. The Stripe tie-in is the core. We pull Stripe Connect data, allocate processor fees correctly, and code platform revenue without the manual cleanup most SaaS bookkeepers do each month. For a SaaS company running Stripe plus QBO, Growthy removes the repetitive coding work. For one company, Growthy is $39/month, or $29/month equivalent prepaid annually ($348 a year), per [Growthy pricing](/pricing). ### What Growthy doesn't ship today We don't ship a native multi-step ASC 606 revrec engine. Got a contract with several performance obligations that need standalone selling price allocation? Growthy doesn't automate that workflow. Manual journal entries work; you can record any JE you'd record in QBO or Xero. We're explicit about this because the gap matters. If contract complexity has already outgrown manual JEs, the right tool today is Maxio, Chargebee, RecVue, Stripe Revenue Recognition, or NetSuite. Picking Growthy and expecting automated multi-step revrec would be the wrong call. ### Mode 1 vs Mode 2 for SaaS Mode 1 (over QuickBooks Online) fits early-stage SaaS. You have a working QBO file, a bookkeeper, and a need to remove manual coding for Stripe and processor fees. Mode 2 (standalone GL) fits founders building net-new, often pre-revenue or very early. They want Growthy as their system of record from day one. The question for SaaS founders is whether coding is the bottleneck. If yes, we're useful. If your bottleneck is revrec under ASC 606, the right move is a revrec layer plus QBO or Xero, not Growthy alone. ## Decision matrix: the best accounting software for SaaS companies by stage Here's the practitioner-built mapping. ARR stage plus contract complexity determines the right stack. - **Pre-revenue to $500K ARR:** QBO plus Growthy for coding, or Xero. Manual JEs cover revrec; a spreadsheet covers amortization. - **$500K to $5M ARR:** QBO or Xero plus a revrec layer (Maxio or Chargebee), plus Growthy for coding on QBO. Add the revrec layer when contracts outgrow manual JEs. - **$5M+ ARR or audit prep:** NetSuite plus RecVue, or stay on QBO plus Maxio if revrec is the only gap. Graduation is usually triggered by audit, multi-entity, or multi-currency. - **Stripe-billing only, single currency:** Stripe Revenue Recognition plus QBO or Xero. The native option, lowest friction when revenue lives in Stripe. ### Pre-revenue to $500K ARR At this stage, the stack is QBO or Xero for the GL. Add Growthy as the coding layer on QBO if Stripe is in the mix. Straight-line monthly subs run as a manual journal entry each month. A few prepaid annual contracts? A spreadsheet schedule plus a manual JE covers it. Don't pay for Maxio, Chargebee, or NetSuite at this stage. The complexity isn't there yet, and the cost outweighs the benefit. Focus on clean books, accurate coding, and a defensible process you can hand to your auditor later. For the mechanics, see [ASC 606 in plain language](/blog/asc-606-revenue-recognition-saas). ### $500K to $5M ARR This is where most SaaS companies add a revrec layer. Contract count grows. Multi-year deals show up. Mid-term changes happen often enough that manual JEs get error-prone. The standard move is to add Maxio or Chargebee on top of QBO or Xero. Already on Stripe Billing with simple contracts? Stripe Revenue Recognition is a candidate. If billing happens outside Stripe or your contracts are complex, Maxio is usually the better fit. It's shaped for bookkeepers and ties into QBO and Xero cleanly. Growthy keeps handling coding on QBO at this stage. Three tools, clear roles. For setup guidance, see [SaaS bookkeeping in year one](/blog/saas-bookkeeping-for-founders). ### $5M+ ARR or audit prep Above $5M ARR, the conversation shifts toward NetSuite. Triggers are usually audit prep, multi-entity expansion, multi-currency at scale, or complexity QBO can't carry. NetSuite plus a revrec module (Advanced Revenue Management or RecVue) becomes the common stack. Some SaaS companies stay on QBO plus Maxio well past $5M ARR. Their complexity is contract-shaped, not entity-shaped. If revrec is your only gap, you don't need to migrate the GL. Most teams underestimate the migration and over-migrate; some stay on QBO too long. The right answer depends on your operating model. Setting up a chart of accounts for any of these stacks? See [a SaaS-ready chart of accounts](/blog/chart-of-accounts-for-saas-startups). > The biggest mistake we see at the $5M+ stage is migrating to NetSuite too early. The cost is real, six figures in year one is common, and the migration window is three to six months of finance team distraction. Wait until the complexity justifies it, not just the ARR number. ## The best accounting software for growth-stage SaaS ($1M-$10M ARR) The $1M to $10M ARR band is where the stack decision gets hard, so it deserves its own answer. This is the growth-stage SaaS accounting software question, and the honest answer is a combination, not a single tool. The default growth-stage stack is QBO or Xero for the GL, a revrec layer (Maxio or Chargebee, from $599/month) once contracts outgrow manual JEs, and Growthy for Stripe and processor-fee coding on QBO. That covers all three jobs without NetSuite's cost. Here are the decisive calls: - **Pick Stripe Revenue Recognition if** all your revenue runs through Stripe Billing, you're single-currency, and your contracts are simple. It's 0.25% of recognized revenue and the lowest-friction path. - **Pick Maxio if** your contracts are complex, you bill outside Stripe, and you want audit-grade revrec that ties into QBO or Xero. It's the most bookkeeper-shaped option. - **Pick Chargebee if** you also want to consolidate billing and revrec into one platform and you're willing to run billing on it. - **Start the NetSuite conversation only if** you've added a second entity, you're billing in several currencies, or an audit is on the calendar. The trap at this stage is buying enterprise tooling for a mid-market problem. NetSuite at $129/user/month plus $30K to $100K+ in year one is hard to justify if a $599/month revrec layer closes your only real gap. At $1M to $10M with one entity and contract-shaped complexity, QBO plus Maxio usually wins on cost. ## What we'd actually pick If we were starting a SaaS company today, here's what we'd do. From day one we'd run QBO with Growthy on top for coding. We'd handle revrec as manual JEs with a clean amortization spreadsheet until contract count made it error-prone. At that point we'd add Maxio. We'd stay on QBO plus Maxio plus Growthy until we hit Series B or an audit. Then we'd evaluate NetSuite seriously. That's a biased opinion. We make Growthy. But it's the path we'd actually walk. The alternatives work fine for the right shape of company: Xero plus Chargebee, or Stripe Billing plus Stripe Revenue Recognition. Pick your GL first, add a revrec layer when JEs get error-prone, and move to NetSuite only when complexity, not just ARR, forces it. The wrong move is picking enterprise tools too early or staying on manual JEs too long. ## Frequently Asked Questions ### What is the best accounting software for SaaS companies? There isn't one best tool. The right accounting software for SaaS companies depends on your ARR and contract complexity. Early on, QBO ($140/month for Plus) plus Growthy for coding covers it, or Xero ($25 to $90/month) on its own. From $500K to $5M ARR, add a revrec layer like Maxio or Chargebee (from $599/month). Above $5M or at audit, NetSuite plus RecVue is common. ### When should a SaaS company add a revrec layer? Add one when contract complexity outgrows manual journal entries. The usual triggers: - Multi-year prepay at volume. - Frequent mid-term contract changes. - Bundles with several performance obligations. - Multi-currency. - An audit on the horizon. Below those, QBO or Xero plus a careful spreadsheet holds for another year. ### Is QuickBooks Online or Xero better for SaaS? For US-based SaaS, QBO usually wins on the accountant network. Most US bookkeepers and CPAs use it daily, which helps at diligence. Xero has a cleaner interface and stronger multi-currency support, so it fits international teams. Both handle straight-line subscription revenue, and both break at complex ASC 606 the same way. ### How much does Stripe Revenue Recognition cost? Stripe Revenue Recognition is 0.25% of recognized revenue, with no upfront fee. Recognize $100K in a period and you pay about $250. The automation is also bundled into the Stripe Billing Scale plan (0.8% of recurring billing), so confirm which line you're paying on before you budget. ### When should a SaaS company move to NetSuite? Usually around Series B, and only when the drivers are operational, not just revenue. Multi-entity, multi-currency at scale, and audit prep are the common triggers. Budget $129/user/month plus $30K to $100K+ in year one, and plan for a three-to-six-month migration. If revrec is your only gap, QBO plus Maxio is cheaper and faster. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. *[*Full disclaimer*](/disclaimer)*.* [Get started with Growthy](https://growthy.com/signup/?utm_content=saas-accounting-software-comparison) --- *Related: [*SaaS Accounting*](/topics/saas-accounting), [*ASC 606 Revenue Recognition*](/blog/asc-606-revenue-recognition-saas), [*SaaS Bookkeeping for Founders*](/blog/saas-bookkeeping-for-founders), *[*Chart of Accounts for SaaS Startups*](/blog/chart-of-accounts-for-saas-startups), [staying compliant with SaaS sales tax nexus](/blog/sales-tax-nexus-for-saas-startups) ### [Deferred Revenue for SaaS Companies: Where It Lives, How It Moves](https://growthy.com/blog/deferred-revenue-saas-companies): Where deferred revenue lives on the SaaS balance sheet, the JE pattern on signing vs cash vs recognition, the monthly roll-forward, and what changes the balance in real-world contract churn. You've seen a $12,000 wire from a SaaS customer. The bookkeeper booked $11,000 of it to a liability account. This article shows you why. Deferred revenue holds the gap between what the customer paid and what you've shipped. It's the most misread line on a SaaS balance sheet. Auditors look at it first. For the full revenue framework, start with [SaaS accounting fundamentals](/topics/saas-accounting). Sarah Chen runs books for nine SaaS firms. She says the same thing each quarter: the contracts aren't the hard part. The journal entries aren't the hard part. The hard part is the roll-forward at month-end. An upgrade, a refund, and a renewal can all hit in the same week. That's when deferred revenue stops acting like a textbook case. It starts acting like a real account with real edge cases. Bobby Huang is a partner at a CPA firm but not a CPA himself. The ASC 606 framing here comes from public guidance, not personal attestation. The journal entry patterns below are standard practice. The roll-forward formula is universal. The three named ways recon breaks come from real cleanup engagements. > **What is deferred revenue for a SaaS company?** > > Deferred revenue is a liability on the SaaS balance sheet. It stands for cash the company has collected for services it hasn't shipped yet. A customer pays $12,000 upfront on January 1 for a 12-month subscription. The company books all $12,000 to deferred revenue. It then recognizes $1,000 per month as the service ships. Under ASC 606, deferred revenue is formally called a contract liability. It splits between current (recognized within 12 months) and non-current (beyond 12 months). The account moves each time a contract is signed, recognized, upgraded, downgraded, refunded, or churned. The roll-forward: beginning balance plus new bookings, minus recognized revenue, plus or minus adjustments, equals ending balance. ## Key Takeaways - **Deferred revenue is a liability, not revenue**: A customer pays $12,000 in January for an annual subscription. $0 hits the income statement that day. All $12,000 sits in deferred revenue as a contract liability. - **ASC 606 calls it a contract liability**: The official term under the revenue standard is "contract liability." Most SaaS balance sheets still label the line "deferred revenue." It's the term operators know. - **The monthly JE is mechanical**: DR Deferred Revenue $1,000, CR Revenue $1,000. Repeat for 12 months. The balance for that contract hits zero. - **Multi-year contracts split current and non-current**: A 36-month $36,000 contract puts $12,000 in current liabilities (months 1 to 12). $24,000 sits in non-current (months 13 to 36) on day one. - **The roll-forward formula is universal**: Beginning balance plus new bookings, minus recognized revenue, plus or minus adjustments, equals ending balance. This is the four-line test for every SaaS deferred revenue account. - **Three things break the recon**: missed cancellation adjustments, wrong current vs non-current splits, and processor fee netting errors. All three show up during audit. ## What deferred revenue is (and isn't) New to deferred revenue as a concept? Start with the [foundational deferred revenue guide](/blog/deferred-revenue) for the definition, why it's a liability, and the journal entry pattern. This article picks up where that one stops — SaaS-specific balance sheet mechanics. Deferred revenue is the SaaS firm's promise. It owes software, support, or access in exchange for cash it has already taken. It's a balance sheet account. It sits on the liability side. It is not revenue. It is not a contra-asset. It is not deferred income tax. The most common mistake new SaaS bookkeepers make is to treat the cash receipt as revenue. They skip the deferral step. ### Liability, not revenue A SaaS customer signs an annual contract. $12,000 lands in the bank. The cash is real. The revenue is not. Until you've shipped the service each month, that money belongs to the customer in an accounting sense. Say the customer cancelled on day two and asked for a refund. You'd owe them back $11,950 (roughly). That refund obligation is what the deferred revenue liability stands for. > **The mental model:** cash in hand, service still owed. Until service is shipped, the value is a debt to the customer. ### Contract liability under ASC 606 ASC 606 is the revenue recognition standard set by FASB. Under ASC 606, what bookkeepers call "deferred revenue" is technically a "contract liability." The accounting is the same. Only the label differs. Many SaaS balance sheets keep the "deferred revenue" label because customers, investors, and operators all use it. Auditors usually accept either label. The underlying accounting just has to follow the standard. For the full framework, see [the ASC 606 five-step model](/blog/asc-606-revenue-recognition-saas). ### When deferred revenue appears on the balance sheet Deferred revenue appears whenever cash is received before the performance obligation is met. That covers the obvious cases: annual prepay, multi-year prepay, prepaid implementation fees. It also covers the less obvious cases. A customer pays a setup fee up front. Another pays for usage credits. A third prepays for an add-on feature that doesn't launch for two months. If cash came in and service hasn't shipped, deferred revenue is the right account. ## Where deferred revenue sits on the balance sheet Deferred revenue lives in the liability section of the balance sheet. It's split between current and non-current portions. The split matters. Lenders, investors, and auditors all read working capital in a different light when deferred revenue jumps. A spike in current deferred revenue points to strong forward bookings. A spike in non-current points to longer contract terms. Both are good. But they tell different stories. ### Current vs non-current split Current deferred revenue covers obligations the firm expects to recognize within 12 months of the balance sheet date. Non-current covers everything beyond 12 months. The split is re-judged each reporting period. It's not frozen at contract start. Say a 36-month contract is signed on July 1, 2026. The December 31, 2026 balance sheet shows: - Current (months 13 to 24 of the contract, which are months 1 to 12 from the balance sheet date): $12,000 - Non-current (months 25 to 36 of the contract): $12,000 - Already recognized (months 7 to 12 of the contract, which is July through December 2026): $6,000 That's how the same contract can show different current/non-current splits at different reporting dates. ### How to set the split for multi-year contracts The rule: take the contract's monthly recognized amount. Multiply by 12. That's current. Everything else is non-current. For a 36-month $36,000 contract signed July 1, 2026: - Monthly recognition: $1,000 - Current at signing (months 1 to 12): $12,000 - Non-current at signing (months 13 to 36): $24,000 Each month, you don't just recognize $1,000. You also shift $1,000 from non-current to current. What was 13 months out yesterday is now 12 months out today. This shift is the part most bookkeepers forget. ### Where it shows in QBO and Xero In QuickBooks Online and Xero, deferred revenue defaults to "Other Current Liabilities" in the chart of accounts. The non-current portion goes under "Other Long-Term Liabilities" or "Other Non-Current Liabilities." Neither tool auto-splits the balance. You have to keep two accounts and post adjusting entries each month. For a deeper look at chart-of-accounts setup, see [chart of accounts for saas](/blog/chart-of-accounts-for-saas-startups). ## The signing journal entry The signing JE is where the deferral starts. Three contract shapes cover almost every SaaS billing pattern. Single-period. Annual prepay. Multi-year prepay with a current/non-current split. Each has a distinct entry on the day cash lands. ### Single-period contract A customer pays $1,000 on April 1 for one month of service running April 1 to April 30. The service period and the cash receipt match. Some firms still post the deferral entry for clean audit trails. Others skip it and recognize direct. Both are defensible if you apply one rule. The deferral approach on April 1: - DR Cash $1,000 - CR Deferred Revenue (current) $1,000 Then on April 30: - DR Deferred Revenue (current) $1,000 - CR Revenue $1,000 The direct approach on April 30: - DR Cash $1,000 - CR Revenue $1,000 Pick one and stick with it. Auditors flag the switching. ### Annual prepay contract A customer pays $12,000 on January 1 for 12 months of service running January 1 through December 31. This is the classic SaaS pattern. The JE on January 1 is: - DR Cash $12,000 - CR Deferred Revenue (current) $12,000 All $12,000 goes to current. The full obligation will be recognized within 12 months. No non-current portion on this contract. Each month, the recognition JE moves $1,000 from the liability to revenue. ### Multi-year contract with current/non-current split A customer pays $36,000 on July 1 for a 36-month contract. It runs July 1, 2026 through June 30, 2029. On July 1, the JE splits the liability: - DR Cash $36,000 - CR Deferred Revenue (current) $12,000 - CR Deferred Revenue (non-current) $24,000 The current portion is the first 12 months of recognition ($1,000 x 12 = $12,000). The non-current portion is months 13 through 36 ($1,000 x 24 = $24,000). Each month thereafter, you do two things. Recognize $1,000 of revenue from the current account. Shift $1,000 from non-current to current. The shift keeps the next 12 months of obligation in the current bucket as time rolls forward. ## The monthly recognition journal entry Once the signing JE is booked, recognition runs on autopilot. Most SaaS contracts recognize ratably (straight-line) over the service period. The customer uses the service evenly. Some contracts recognize in a different shape. The signing JE doesn't change. The recognition pattern does. ### Straight-line recognition for ratable services For the standard $12,000 annual contract booked January 1, the monthly JE every month from January through December is: - DR Deferred Revenue (current) $1,000 - CR Revenue $1,000 At the end of December, the deferred revenue balance for that contract is zero. The full $12,000 has been recognized as revenue across the year. No edge cases. No judgment calls. No adjustments. > **Sarah's rule:** if a contract is plain-vanilla annual prepay and there's no service stoppage, the monthly JE is a copy-paste. If you're hand-figuring the recognition amount each month, something's wrong with the contract setup. ### When recognition isn't straight-line Usage-based contracts don't recognize straight-line. Contracts with material upfront delivery don't either. A customer who prepays $10,000 for 100,000 API calls recognizes revenue as the calls are used, not over time. Say the customer uses 30,000 calls in month one and 10,000 in month two. Recognition follows usage: Month one: - DR Deferred Revenue (current) $3,000 - CR Revenue $3,000 Month two: - DR Deferred Revenue (current) $1,000 - CR Revenue $1,000 Implementation fees that deliver a discrete, separable service upfront also break straight-line. A $5,000 implementation fee for work delivered in month one recognizes in month one. The subscription can still be annual. For the full set of contract patterns, see [six SaaS contract examples](/blog/asc-606-revenue-recognition-examples-saas). ### Mid-month and partial-period adjustments A contract that starts on the 15th of the month creates a partial-period problem. Say it's a $12,000 annual contract signed October 15, 2026 with service starting that day. October recognition is $533.33 (16 days out of 30 at $1,000 per month). November through September recognition is $1,000 per month. October 2027 recognition is $466.67 (the remaining 14 days). The total still adds up to $12,000. It's just split unevenly across the first and last months. Some firms simplify by recognizing on the next full month boundary. That's defensible only if you write the policy down and apply it the same way each time. ## Roll-forward and reconciliation The roll-forward is the four-line test that proves your deferred revenue balance is right. If the formula doesn't tie, something is broken. Most SaaS audit findings on deferred revenue come from a roll-forward that doesn't tie. It's not from a missing signing JE. ### Beginning balance plus new contracts minus recognition plus adjustments equals ending balance The formula in plain English: - Beginning deferred revenue balance (from prior month-end) - Plus new bookings (cash received this month for future service) - Minus revenue recognized this month - Plus or minus adjustments (refunds, cancellations, true-ups) - Equals ending deferred revenue balance A real example. A SaaS firm starts the month at $480,000 in deferred revenue. It books $90,000 of new annual prepay contracts. It recognizes $40,000 of revenue. It refunds $3,000 to a cancelled customer. The ending balance is $480,000 + $90,000 - $40,000 - $3,000 = $527,000. If the GL ending balance doesn't match this math, you have a recon break. Find it before close, not after. ### Reconciling deferred revenue to MRR and what the gap means Bookkeepers and finance teams often expect deferred revenue and MRR to tie cleanly. They don't. They shouldn't. MRR is forward-looking and contract-based. Deferred revenue is backward-looking and cash-based. A customer on a $1,000 per month annual prepay shows $1,000 in MRR each month for 12 months. But the deferred revenue balance drops over time (from $12,000 at signing to $0 at year-end). A useful sanity check. Total annual MRR times 12 should be within 20 to 30 percent of the average deferred revenue balance for a stable book. Bigger gaps mean one of three things. A lot of month-to-month contracts (which don't create deferred revenue). Heavy multi-year prepay (which inflates deferred revenue vs MRR). Or recognition timing problems. ### Common recon breaks and how to fix them Three named breaks show up in almost every SaaS cleanup engagement. **Break one: missed adjustments on cancellations.** A customer cancels mid-term. The AR team processes the refund. But the bookkeeper never updates deferred revenue. The cash leaves the bank. The GL liability stays. Six months later, deferred revenue is overstated by tens of thousands. Fix: every refund or cancellation that touches a deferred balance must post a paired entry against deferred revenue, not just cash. **Break two: wrong current vs non-current split.** Multi-year contracts get booked all to current. Or they never get shifted as time rolls forward. The working capital ratio looks great. Until the audit. Fix: at every month-end, run a contract-level report. It should figure remaining months for each contract and repost the current/non-current split. **Break three: processor fee netting errors.** Stripe deposits $11,650 for a $12,000 contract. The $350 in fees gets netted against deferred revenue instead of expensed. Now the deferred balance is $350 short of what the contract actually requires. Fix: book the gross contract value to deferred revenue. Then expense the processor fee on its own line. The cash deposit ties against the gross amount minus the fee. The liability tracks the gross. ## What changes deferred revenue: renewals, churn, upgrades, refunds Once a contract is live, four events change the deferred revenue balance outside the normal monthly recognition. Each has a distinct JE pattern. Getting these right is the gap between a clean roll-forward and a month-end fire drill. See [deferred revenue saas](/blog/deferred-revenue-saas-companies). ### Renewal: when the new contract starts vs prior contract ends A clean renewal at the same pricing needs no special entry. The prior contract's deferred revenue runs out to zero at end-of-term. The new contract's signing JE posts on the renewal date. Recognition rolls on. Say the prior contract ends December 31 and the renewal starts January 1 at the same $12,000 annual price. The December 31 entry recognizes the last $1,000 of the old contract. The January 1 entry posts the new $12,000 to deferred revenue. When renewal pricing changes, the new contract starts at the new price. There's no retroactive fix to prior periods. Say renewal price jumps from $12,000 to $15,000 annual. The new signing JE is for $15,000. Monthly recognition becomes $1,250 from the renewal date. ### Churn mid-term: refund vs no-refund treatment A customer on a $12,000 annual prepay cancels at month four. $8,000 sits in deferred revenue. The treatment turns on the refund clause. If the contract requires a refund of unused service, on the cancellation date: - DR Deferred Revenue (current) $8,000 - CR Cash (or Accounts Payable, if refund is delayed) $8,000 The customer's deferred balance goes to zero. No revenue is recognized on the cancellation. The cash leaves the bank when the refund is processed. If the contract is non-refundable and the customer gives up rights to the remaining service, the SaaS firm can recognize the remaining $8,000 as revenue on the cancellation date. The performance obligation is gone: - DR Deferred Revenue (current) $8,000 - CR Revenue $8,000 This second path needs the contract to spell out that cancellation forfeits any right to remaining service. Many SaaS contracts say this. Some don't. Read the contract before posting the entry. ### Upgrade with deferred-revenue impact A customer on a $12,000 annual contract upgrades to a $24,000 annual plan with six months left. The standard path is prospective. Recognize the original plan's remaining $6,000 on the upgrade date (or wipe it out if the new plan replaces the old). Then post a new signing entry for the upgraded plan. The customer pays the prorated gap for the remaining six months. If the customer pays $6,000 (the prorated upgrade for the remaining six months on the new $24,000 annual rate, minus the $6,000 already paid): - DR Cash $6,000 - CR Deferred Revenue (current) $6,000 The original deferred revenue ($6,000 remaining on the old plan) keeps recognizing at the old monthly rate. The new $6,000 in deferred revenue recognizes over the remaining six months at $1,000 per month. Total monthly recognition for the customer in the remaining six months is $2,000 ($1,000 old plan plus $1,000 upgrade). That matches the new $24,000 annual rate. ### Downgrade with credit A customer on a $24,000 annual contract downgrades to a $12,000 annual plan with six months left. The downgrade usually creates a customer credit, not a cash refund. On the downgrade date, $6,000 of deferred revenue moves to a credit liability. That's the gap between what was prepaid and what the lower-tier service is worth for the remaining six months. - DR Deferred Revenue (current) $6,000 - CR Customer Credits (current liability) $6,000 The customer credit applies to future invoices or renewals. If the credit is never used and expires, recognize it as revenue at expiration. If the credit is refunded later, DR Customer Credits, CR Cash. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. *[*Full disclaimer*](/disclaimer)*.* [Get Started with Growthy](/signup?utm_content=deferred-revenue-saas-companies) --- *Related: *[*SaaS Accounting*](/topics/saas-accounting)*, *[*Chart of Accounts*](/topics/chart-of-accounts)*, *[*AI Bookkeeping*](/topics/ai-bookkeeping)*, *[Accrual vs Cash Basis](/blog/accrual-vs-cash-basis-accounting-for-saas-startups)., [the SaaS month-end close checklist](/blog/month-end-close-checklist-for-saas-founders) ### [Chart of Accounts for SaaS Startups: A Bookkeeper-Approved Template](https://growthy.com/blog/chart-of-accounts-for-saas-startups): SaaS chart of accounts template covering deferred revenue, capitalized commissions, COGS sub-accounts, and ASC 606/340-40/350-40 integration. 20-account starting point with $500K and $5M ARR additions. The default chart of accounts inside QuickBooks Online or Xero looks fine on day one. By month twelve, [SaaS accounting](/topics/saas-accounting) breaks it. The generic COA hides deferred revenue inside Sales. It lumps AWS into Office Expenses. It gives you no clean way to show gross margin to an investor. Most SaaS founders don't catch it until the first real diligence call. A question about deferred revenue then exposes a year of cleanup work. Just spun up books for a SaaS company? You're in the right cluster. The rules your bookkeeper uses for a consulting firm or an agency don't carry over. Subscription revenue creates obligations that sit on the balance sheet for months or years. Commissions become contract assets. Engineering payroll splits between R&D expense and capitalized software. A generic COA can't track any of that. This guide gives you a chart of accounts built for SaaS from day one. Two personas shaped the structure. Priya Patel is a new founder setting up books for a $200K ARR company. She wants a template to paste into QBO before her first investor update. Sarah Chen is a bookkeeper extending a default QBO COA for a SaaS client. She needs to know which accounts to add, when, and why. We'll cover both paths. > **What is a chart of accounts for SaaS, and how is it different from a generic one?** > > A SaaS chart of accounts is a numbered list of every account your books use. It is built to handle subscription revenue rules that generic COAs miss. The gaps matter. SaaS needs Deferred Revenue accounts (current and non-current) because customers prepay for service you owe over time. It needs Contract Assets when you deliver before billing. It needs Capitalized Commissions under ASC 340-40 and Capitalized Software Development under ASC 350-40. It needs COGS sub-accounts for hosting, payment processing, and customer support so gross margin is real. A default QBO or Xero COA ships with about 50 generic accounts and none of these. Adding them up front saves a year of cleanup later. ## Key Takeaways - **Default COAs break by month 12**: QBO and Xero ship with around 50 generic accounts. SaaS needs roughly 20 more to handle subscription rules. - **Deferred Revenue is the most common miss**: Prepaid annual contracts create a liability. It must split between current (under 12 months) and non-current (beyond 12 months). - **ASC 340-40 governs commissions**: Sales commissions on contracts longer than one year capitalize as Contract Assets. They amortize over the expected customer life, often 3 to 5 years. - **ASC 350-40 governs internal-use software**: Engineering payroll during the app development stage capitalizes. Pre-feasibility research and post-launch upkeep are expensed. - **COGS sub-accounts make gross margin real**: Hosting, payment processing, customer support, and third-party API fees belong in COGS. Not in G&A. - **Scale the COA in waves**: A 20-account template handles $0 to $500K ARR. Add new accounts at $500K, $5M, and again when audit prep starts. ## Why a default chart of accounts breaks for SaaS by month 12 The COA that QBO and Xero ship with was built for a generic small business. It assumes you sell something, get paid, and book revenue right away. That model works for a coffee shop, a law firm, or a contractor. It breaks the moment you sell an annual SaaS subscription. ### What QBO and Xero ship with by default A fresh QuickBooks Online file gives you about 50 accounts out of the box. You get Cash. You get Accounts Receivable and Accounts Payable. You get Owner's Equity, Sales, and Cost of Goods Sold as one line. You get Office Expense, Rent, Utilities, Payroll Expense, and a few more. Xero is similar. The setup is clean for service firms and retailers. It has zero SaaS-specific accounts. Nothing on the liability side handles prepaid contracts. There's no Deferred Revenue. There's no Contract Asset. The COGS section is one line. That means hosting, payment processing, and customer support all fold into one number. You can't break it down later without rebuilding the GL. ### What SaaS needs that defaults don't include A working SaaS COA adds three groups the defaults skip. First, a Deferred Revenue family on the liability side. That means current (within 12 months) and non-current (beyond 12 months). Add Contract Assets on the asset side for work delivered ahead of billing. Second, COGS sub-accounts that split out hosting, payment processing, customer support, and third-party API fees. Third, an OpEx structure that handles R&D versus capitalized software under ASC 350-40, plus capitalized commissions under ASC 340-40. Without these, your P&L lies. Revenue looks bigger than it is. That's because you're recognizing cash receipts as sales. Gross margin is made up because COGS is one line. R&D and capitalized software get mixed. That skews both your operating margin trend and your balance sheet. ### What changes at $500K ARR $500K ARR is the threshold where the default COA starts costing you money. Three pressures hit at once. First, investor reporting. A Series A or even a Seed extension pack asks for MRR, ARR, NRR, gross margin, and CAC payback. None of those come out of a default COA. Second, audit prep. At $1M+ ARR, you're a candidate for a review or audit. Auditors ask about ASC 606, ASC 340-40, and ASC 350-40. A clean COA cuts the audit work in half. Third, multi-revenue tracking. By $500K ARR, most SaaS companies have two or more revenue streams (subscription plus services or usage). A default COA can't split them. ## Revenue accounts: more than one Sales line The single biggest mistake in a SaaS COA is one Sales account. SaaS revenue almost always has multiple performance obligations under ASC 606. The GL should show that from day one. ### Subscription revenue (the main one) This is the recurring revenue from a customer's contract. It's your MRR and ARR base. Every SaaS COA should have Subscription Revenue as its own top-level account. Examples: a $99 per month SMB plan, a $5,000 per month enterprise plan, or a $50,000 per year annual prepay. All of these flow into Subscription Revenue. From there they split between recognized revenue and Deferred Revenue based on the period covered. ### Professional services revenue Implementation fees, training, custom integrations, and onboarding services live here. Under ASC 606 they often count as a separate performance obligation. That means they have their own timing (usually delivery-based, not ratable). Keep them apart from subscription. Mixing them inflates your subscription number and breaks NRR math. Clean rule: if it's billable hours or a fixed-fee project, it's Professional Services, not Subscription. ### Expansion revenue When a customer upgrades from a $99 plan to a $299 plan, that extra $200 per month is expansion. Many SaaS firms track expansion apart from new-logo subscription. That way they can compute Net Revenue Retention. The GL doesn't have to do this if your billing system tracks it. If you're early and the billing system is light, an Expansion Revenue sub-account inside Subscription Revenue is the cleanest path. ### Usage-based revenue If you charge per API call, per seat above a baseline, per transaction, or per GB stored, that's usage-based revenue. Under ASC 606 it's often variable consideration. That has its own rules. Track it in a separate account. The recognition pattern is different from flat subscription. A common SaaS setup: Subscription Revenue (recognized ratably), Usage Revenue (recognized when used), Professional Services Revenue (recognized on delivery), Expansion Revenue (sub-tracked for NRR). ## Liability accounts: the deferred revenue family Deferred Revenue is where most SaaS COAs first fail. The default QBO file has no deferred revenue account at all. A SaaS company that sells one annual contract on day one already has a liability the default COA cannot record. ### Deferred Revenue, Current This holds subscription obligations the company owes to customers in the next 12 months. A customer prepays $12,000 for a one-year subscription on January 1. The entry: debit Cash $12,000, credit Deferred Revenue, Current $12,000. Each month, $1,000 moves from Deferred Revenue to Subscription Revenue as you deliver the service. By year-end the deferred balance is zero (no renewal yet). For [where deferred revenue lives on the balance sheet](/blog/deferred-revenue-saas-companies), see the deferred revenue spoke. ### Deferred Revenue, Non-Current This holds subscription obligations beyond 12 months from the balance sheet date. Multi-year contracts (common in enterprise SaaS) create non-current deferred revenue. A customer prepays $36,000 for three years on January 1. The first $12,000 goes to current deferred. The other $24,000 sits in non-current. Each month-end, $1,000 reclassifies from non-current to current as the obligation shortens. Most early SaaS firms skip this split until they have multi-year contracts. ### Customer Credit Liability You issue a credit (refund, goodwill credit, comped month) that hasn't been used yet? It sits here. This account keeps refund obligations out of Deferred Revenue. Otherwise it would skew the deferred balance. Examples: a $500 service credit issued during a support escalation that the customer hasn't used, or a refund approved but not yet sent. ### Contract Assets (asset side, not liability) Contract Assets sit on the asset side of the balance sheet. They belong in this section because they mirror Deferred Revenue. A Contract Asset shows up when you've delivered service the customer hasn't been billed for. Example: you finish a $20,000 implementation on day 30. The contract says billing happens on day 45 at a milestone. For 15 days, the $20,000 sits as a Contract Asset. Once invoiced, it moves to Accounts Receivable. ## COGS: the sub-accounts SaaS founders forget A single COGS line is the second-most-common SaaS COA failure. Investors, auditors, and your future CFO all care about gross margin. A single COGS line makes gross margin a guess. ### Hosting and infrastructure AWS, GCP, Azure, Vercel, Cloudflare, and any other infra that runs your product belongs here. It's direct. It scales with usage and customer count. The test for COGS versus G&A: does the cost grow when revenue grows? Hosting passes. A Cloud Infrastructure or Hosting and Infrastructure account inside COGS is the right home. Don't bury it in Software Subscriptions inside G&A. ### Payment processing fees Stripe, Adyen, Braintree, and other processor fees scale with revenue (typically 2.9% plus $0.30 per transaction for Stripe). Every dollar of subscription revenue carries a payment processing cost. That makes it COGS. Putting it in G&A understates COGS and inflates gross margin. A clean Payment Processing account inside COGS is the right answer. ### Customer support and customer success The allocated cost of CS and CSM headcount belongs in COGS, not G&A. Helping customers is part of delivering the service. That's the textbook meaning of cost of goods sold for a service business. Allocate the share of headcount time that goes to direct customer support (typically 70-100% of CSM pay) to a Customer Support COGS account. The rest stays in G&A. ### Third-party data and API fees Your product calls Plaid for bank connections, Twilio for SMS, OpenAI for inference, or other paid APIs? Those costs scale with usage. They belong in COGS. A Third-Party Services or API and Data Costs account inside COGS catches these. This is the line that grows fastest for AI-native SaaS. There, inference costs can rival or exceed hosting. ## Operating expenses: capitalized software development vs R&D Engineering payroll is the single largest expense for most SaaS firms. It's also the most often mis-recorded. ASC 350-40 sets the rules for how internal-use software costs are treated. The rules are specific. ### The ASC 350-40 capitalization rule ASC 350-40 covers software built for internal use. That includes most SaaS products. (The company is the user; customers reach the software as a service.) Under ASC 350-40, costs split into three stages. The preliminary stage (pre-feasibility) is expensed as incurred. The app development stage (after technical feasibility) is capitalized. The post-launch stage (upkeep, bug fixes, small fixes after launch) is expensed. ### What gets capitalized vs expensed Capitalized: developer salaries, contractor fees, and other direct costs during the app development stage. Once a feature reaches technical feasibility, the engineering time to build it can capitalize as a software asset on the balance sheet. (Technical feasibility means a detailed program design exists or a working model has been done.) The asset then amortizes over its useful life (typically 3 to 5 years). Expensed: research, exploration, prototyping before feasibility, and ongoing upkeep after a feature launches. The R&D Expense account holds these. Many early-stage SaaS firms expense 100% of engineering payroll until the capitalization math matters. (That's typically post-$5M ARR for tax and audit reasons.) ### Why founders blur the line The blur happens because "feasibility" is a judgment call. Engineering work doesn't fit neatly into stages. A small team building V1 might span all three ASC 350-40 stages in one sprint. Most early-stage SaaS firms (under $5M ARR) take the safe path. They expense everything as R&D until audit pressure or a tax reason pushes them to capitalize. That's defensible and simple to run. By the time you're audited, your CFO and audit firm will rebuild the capitalization schedule. ## Capitalized commissions under ASC 340-40 ASC 340-40 (Other Assets and Deferred Costs, Contracts with Customers) requires you to capitalize the incremental costs of obtaining a contract with a customer. For SaaS, that mostly means sales commissions. ### When ASC 340-40 applies Any commission paid as a direct result of winning a contract counts as an incremental cost. Say the AE got a $5,000 commission for closing a $50,000 ACV contract. That $5,000 capitalizes. The asset sits on the balance sheet as a Contract Asset or Deferred Commission Expense (account naming varies). It then amortizes over the expected benefit period. ### Amortization period The amortization period is the expected customer life, including expected renewals. For most SaaS firms, this is 3 to 5 years. A contract has an initial 1-year term. The company expects most customers to renew for an average of 4 years. The commission amortizes over 4 years, not 1. This is one of the most-debated SaaS accounting calls. It's one of the first things auditors will ask about. ### When to expense as incurred (practical expedient) ASC 340-40 has a practical expedient. If the amortization period is one year or less, you can expense the commission as incurred. You don't have to capitalize. Many early-stage SaaS firms use this expedient for SMB contracts where renewal is uncertain. For enterprise contracts with multi-year terms, the expedient often doesn't apply. Full capitalization is the right answer. Note: Bobby is a CPA firm partner, not personally a CPA. Confirm ASC 340-40 with your CPA before locking the policy. ## The bookkeeper-approved SaaS COA template Here's a 20-account starting template. It handles day one through about $500K ARR. The numbering uses the standard 1000s/2000s/3000s/4000s/5000s/6000s setup. That keeps the file compatible with QBO and Xero defaults. For [SaaS bookkeeping year-one setup](/blog/saas-bookkeeping-for-founders), see the SaaS bookkeeping spoke. For software choice, see the [SaaS accounting software comparison](/blog/saas-accounting-software-comparison). ### Day-one 20-account starting template | Account # | Account Name | Type | Notes | | --- | --- | --- | --- | | 1000 | Cash, Operating | Asset | Main checking | | 1010 | Cash, Reserve | Asset | Optional second account | | 1100 | Accounts Receivable | Asset | From invoicing | | 1200 | Contract Assets | Asset | Delivered, not yet billed | | 1500 | Prepaid Expenses | Asset | Annual software, rent | | 2000 | Accounts Payable | Liability | Vendor invoices | | 2100 | Deferred Revenue, Current | Liability | Within 12 months | | 2110 | Deferred Revenue, Non-Current | Liability | Beyond 12 months | | 2200 | Customer Credit Liability | Liability | Issued, not applied | | 3000 | Owner's Equity / Common Stock | Equity | Founder equity | | 4000 | Subscription Revenue | Revenue | Recurring SaaS | | 4100 | Professional Services Revenue | Revenue | Implementation, training | | 4200 | Usage Revenue | Revenue | Consumption-based | | 5000 | COGS: Hosting and Infrastructure | COGS | AWS, GCP, Azure | | 5100 | COGS: Payment Processing | COGS | Stripe, Adyen | | 5200 | COGS: Customer Support | COGS | Allocated CS payroll | | 5300 | COGS: Third-Party APIs | COGS | Plaid, Twilio, OpenAI | | 6000 | R&D Expense | OpEx | Engineering payroll | | 6100 | Sales and Marketing | OpEx | Sales, ads, content | | 6200 | General and Administrative | OpEx | Rent, legal, finance | ### What to add at $500K ARR By $500K ARR, you'll need more detail to support investor reporting and audit prep. Add these accounts: Capitalized Commissions (asset, ASC 340-40). Commission Expense (OpEx, the amortization line). Sales Payroll (split out from S&M). Marketing Programs (split out from S&M). Customer Success Payroll (allocated portion in COGS). Software Subscriptions (G&A sub-account). And Contract Liabilities reclassification entries. That's about 6 to 8 new accounts. See [chart of accounts for saas](/blog/chart-of-accounts-for-saas-startups). ### What to add at $5M ARR By $5M ARR, the COA needs multi-entity, multi-currency, and capitalized software development. Add these: Capitalized Software Development (asset, ASC 350-40). Amortization of Capitalized Software (contra-asset). Intercompany Receivables and Payables (for multi-entity). Foreign Currency Adjustment (for global expansion). Deferred Tax Asset / Liability (for ASC 740). Plus sub-ledgers for Capitalized Commissions by cohort. This is also when most firms switch from QBO to a mid-market GL (NetSuite, Sage Intacct, or similar). At that point, the COA tops 100 accounts and consolidation logic gets complex. A cross-cluster note: the pattern here is the same as any [chart of accounts](/topics/chart-of-accounts) build. The SaaS-specific accounts are layered on top of a standard accrual frame. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. *[*Full disclaimer*](/disclaimer)*.* [Get Started with Growthy](/signup?utm_content=chart-of-accounts-for-saas-startups) --- *Related: *[*SaaS Accounting*](/topics/saas-accounting)*, *[*Chart of Accounts*](/topics/chart-of-accounts)*, *[*AI Bookkeeping*](/topics/ai-bookkeeping)*, *[Accrual vs Cash Basis](/blog/accrual-vs-cash-basis-accounting-for-saas-startups)., [tracking sales tax nexus and liabilities](/blog/sales-tax-nexus-for-saas-startups) ### [ASC 606 Revenue Recognition for SaaS: The Five-Step Model in Plain Language](https://growthy.com/blog/asc-606-revenue-recognition-saas): ASC 606 revenue recognition for SaaS, explained in plain language. Walk the five-step model with a B2B contract, sample journal entries, and common mistakes. You signed a $30,000 annual contract on January 15. Cash hit your bank on February 1. Your bookkeeper booked $30,000 in revenue that month. Six months later your auditor calls. You've been doing it wrong since day one. Welcome to ASC 606. It governs how SaaS companies recognize revenue. It drives more restatements at growth-stage SaaS companies than almost any other GAAP topic. For the bigger picture, the [SaaS accounting hub](/topics/saas-accounting) walks the full stack from contract to financial statements. This article walks the five-step ASC 606 model in plain language. We use one B2B SaaS contract as the running example. You'll see what each step requires. You'll see where operators most often miss. And you'll see what the journal entries look like at signing, monthly, and at month six. The goal is not GAAP citation. The goal is enough operating sense to hold a smart talk with your CPA, auditor, or CFO about how revenue gets recognized. See [asc 606 revenue recognition](/blog/asc-606-revenue-recognition-saas). One caveat up front. Bobby Huang runs Growthy and is a partner at SDO CPA LLC. He is not personally a CPA. ASC 606 reading for your specific contracts should go through a licensed CPA. This piece is educational, not a substitute for that review. > **What does ASC 606 require for SaaS revenue recognition?** > > ASC 606 requires SaaS companies to recognize revenue when control of the service transfers to the customer. For most subscriptions, that means recognizing ratably over the contract term. The standard uses a single five-step model. Identify the contract. Identify performance obligations. Set the transaction price. Allocate the price to obligations. Recognize revenue as obligations are satisfied. For a typical $30,000 annual contract, you recognize $2,500 per month for 12 months. You do not book $30,000 on the day cash arrives. Distinct setup services may recognize at delivery. Multi-year prepayments over one year may need interest imputation under ASC 606-10-32-18. A practical expedient covers most SaaS deals. ## Key Takeaways - **The principle is control transfer**: Revenue gets recognized when the customer receives value, not when cash arrives. For most SaaS plans, that means ratably across the term (ASC 606-10-25-1). - **Billings are not revenue**: A $30,000 annual prepay creates $30,000 of cash and $30,000 of deferred revenue. It then releases $2,500 to revenue each month for 12 months. - **Setup services are often distinct**: If a customer could buy setup work on its own and it has standalone value, treat it as its own obligation. Recognize it at delivery. - **Variable consideration needs estimation**: Usage fees, tiered discounts, and rebates require an expected-value or most-likely-amount estimate at contract start. Update each period. - **Click-through ToS is a real contract**: An online click-to-accept meets all five ASC 606-10-25-1 criteria. So self-serve SaaS revenue still falls under the standard. - **Modifications can be tricky**: A mid-term upgrade may be prospective (new contract) or a cumulative catch-up (re-estimate the existing one). It depends on whether it adds distinct services or changes existing scope. ## What ASC 606 Actually Requires (and What Most Operators Get Wrong) ASC 606 took effect for public companies in 2018 and private companies in 2019. Before it landed, US GAAP had roughly 200 industry-specific revenue rules. Software had its own (SOP 97-2, then ASC 985-605). Construction had another. The patchwork made cross-industry compare almost impossible. ASC 606 replaced all of that with one principle-based model. ASC 606-10-25-1 states the principle. Recognize revenue to show the transfer of promised goods or services. The amount should reflect what the entity expects to be entitled to. In plain language: recognize revenue when the customer gets the value, in the amount you expect to collect. For SaaS, the practical translation is ratable delivery. Your customer signs up for 12 months of access. Each day, the customer gets a piece of the value they paid for. So each day, you recognize a piece of the revenue. Most companies simplify to monthly. The principle holds. Three places operators most often miss. First, they treat billings as revenue and book the full annual prepay on cash receipt. Second, they treat setup services as part of the subscription. Those services often qualify as separate performance obligations. Third, they miss splits inside multi-element contracts. Each error compounds at audit time. The fix: walk the five steps, in order, every time a new contract comes in. ### Why ASC 606 Replaced the Old Industry-Specific Rules The pre-2018 world had software-specific rules. They included vendor-specific objective evidence of fair value, or VSOE. If you sold software with services and couldn't set VSOE for the services, you often had to defer 100% of contract value. You then recognized it ratably across the entire service period. ASC 606 removed VSOE entirely. The replacement is standalone selling price (SSP). It is more flexible. It is based on what you actually charge or would charge for each element. ### Where SaaS Operators Most Often Miss The most common mistake is mixing cash with revenue. A founder sees $30,000 hit the bank and reports $30,000 of revenue that month. The auditor later flags this as a $27,500 overstatement. Only $2,500 was actually earned. The fix is the deferred revenue liability. It holds the unearned portion on the balance sheet until it gets earned. The second most common miss is bundling. A SaaS contract may include onboarding, training, and managed services. It can have three or four separate performance obligations. Lumping them into a single ratable subscription line distorts both revenue and margin reporting. ## Step 1: Identify the Contract with the Customer A contract under ASC 606 is not just any agreement. The standard sets five specific criteria. All must be met. They live in ASC 606-10-25-1. They apply equally to a signed master services agreement and a click-through terms of service. The criteria: - The parties have approved the contract and are committed to perform. - The entity can identify each party's rights. - The entity can identify payment terms. - The contract has commercial substance. - Collection is probable. For most SaaS companies, all five are met by a normal signup flow. The customer clicks accept on the terms. The terms identify what the customer gets and what the company gets. Payment is set up via credit card or invoice. Commercial substance is obvious. Collection is probable for credit-card signups. Creditworthiness is the judgment call for invoiced enterprise deals. ### What Counts as a Contract Under ASC 606 A written agreement is not required. Oral and implied contracts can qualify if the five criteria are met. In practice, SaaS companies meet all five through click-to-accept terms of service. The terms are the contract. The customer's act of clicking accept and entering payment is the approval and commitment. For enterprise sales, the contract is typically a master services agreement plus an order form. The MSA sets rights and obligations. The order form sets price, term, and any custom terms. Both together form the contract. ### Click-to-Accept Terms of Service vs Negotiated MSAs The accounting outcome is usually the same either way. What differs is paperwork. A click-through generates a timestamp record. An MSA generates a signed PDF. Both qualify if the five criteria are met. The one practical difference is collection probability. For credit-card-billed self-serve SaaS, collection is probable. The card has already been charged. For invoiced enterprise deals, the company has to judge whether the customer is likely to pay. ### When Two Contracts Are Actually One ASC 606-10-25-9 requires you to combine two or more contracts under three tests. First, they were entered into at or near the same time with the same customer. Second, one of three conditions is met: - Negotiated as a package with a single commercial objective. - Consideration in one depends on the other. - The goods or services are a single performance obligation. This matters most for upsells. Say a customer signs the base subscription on Monday. They sign an add-on order form for premium support on Wednesday. Those may need to be combined. The result: discount or pricing on the bundle gets allocated across both contracts based on relative SSPs. ## Step 2: Identify the Performance Obligations A performance obligation is a promise to transfer a distinct good or service. The keyword is distinct. ASC 606-10-25-19 sets a two-part test. A good or service is distinct if two things hold. First, the customer can benefit from it on its own or with other ready resources. Second, the company's promise is separately identifiable from other promises in the contract. For a typical SaaS plan, the plan itself is one continuous performance obligation. The customer gets access every day of the term. Even though access has many features, you're not promising to ship each feature on its own. You're promising ongoing access. ### What's Distinct in a SaaS Contract Setup and implementation services are the most common second performance obligation. Ask two questions. Could a customer buy your setup work on its own? Does the setup have real value on its own (configuring their data, training their team, linking with their systems)? If both are yes, setup is distinct from the subscription. Training and professional services often qualify too. The test is the same. Could the customer use these without the subscription? Does the company sell them on their own, or could it? Premium support and customer success layers are usually combined with the subscription, not separate. They only have value alongside the core service. A CPA review is the right call for borderline cases. ### Bundled Implementation Services: Separate or Combined? The harder judgment is when implementation is truly integrated. The customer cannot use the software at all without it. In that case, the two combine into a single performance obligation. You recognize the combined revenue ratably across the subscription term. Signal that setup is integrated: the customer cannot log in or use any real part of the product without it. Signal that it's distinct: the customer could use the basic product without it. The setup is an optional accelerator. ### Material Rights from Free Trials and Discounts ASC 606-10-25-2 covers material rights. A contract may give the customer the option to acquire extra goods or services for free or at a discount. That option may itself be a performance obligation. The most common SaaS case is renewal discounts. Say a customer gets a contract right to renew at a 20 percent discount in year two. That may be a material right. You'd allocate a portion of year-one transaction price to the option. Most SaaS companies do not treat standard renewal pricing as a material right. The pricing is at fair value. The concept kicks in when renewal pricing is well below what a new customer would pay. ## Step 3: Determine the Transaction Price The transaction price is the amount of consideration the company expects to be entitled to. For a simple fixed-fee contract, this is easy. A $30,000 annual contract has a transaction price of $30,000. For contracts with usage-based pricing, tiered discounts, rebates, or refund rights, the price requires an estimate. ASC 606-10-32-2 calls these variable consideration. The standard requires you to estimate using one of two methods. Use expected value (probability-weighted average) or most-likely-amount (the single most likely outcome). Apply whichever better predicts the consideration you'll actually receive. ### Fixed Consideration vs Variable Consideration Fixed consideration is locked in: base subscription fee, setup fee, anything that doesn't depend on usage or future events. Variable consideration is everything else. That covers usage charges above a threshold, performance bonuses, refund rights, and volume discounts tied to annual buy volume. For a contract with both, you total them at inception based on best estimate. As usage data comes in, you true up the estimate. You recognize the difference as a cumulative catch-up to revenue. ### Usage-Based Pricing and Minimum Commitments Many SaaS contracts have a base subscription plus usage charges above a threshold. Example: $1,000 per month base plus $0.01 per API call above 100,000 calls. The base is fixed. Overage is variable. You estimate variable usage at contract start using past data and customer signals. Recognize the base each month at $1,000. Recognize the estimated variable component as it accrues. True up at period end as actual usage lands. Minimum commitments add a wrinkle. Say a customer commits to $24,000 over the year regardless of usage. The $24,000 is fixed and recognized ratably. Any usage above that implied threshold is variable. ### Significant Financing Components in Multi-Year Prepay ASC 606-10-32-15 says this. If payment timing provides a significant benefit of financing, the contract has a significant financing component. The transaction price gets adjusted to reflect cash selling price. The difference goes to interest. ASC 606-10-32-18 provides a practical expedient. If the gap between payment and delivery is one year or less, you do not adjust. Most annual SaaS prepays use this expedient. Multi-year prepays over one year may not. It depends on size and rate environment. A three-year $90,000 prepay in a high-rate environment likely needs imputation. This is one place where CPA review is truly warranted. ## Step 4: Allocate the Transaction Price to Performance Obligations If the contract has only one performance obligation, allocation is simple. If it has multiple, you split the transaction price across them based on relative standalone selling prices. ### Standalone Selling Price (SSP) SSP is the price at which the company would sell the good or service on its own. The ideal evidence is observable: you actually sell it on its own. For SaaS plans, this often works for the base tier. When observable evidence is not available, ASC 606-10-32-33 allows three estimation methods. - Adjusted market assessment looks at what the market would pay. - Expected cost plus margin starts with the cost of providing the service and adds a normal profit margin. - Residual takes the total transaction price, subtracts known SSPs, and assigns the remainder. Residual is limited to specific cases. For most SaaS companies, the practical approach is split. Use adjusted market assessment for the subscription (you have list pricing). Use expected cost plus margin for setup services. ### Bundle Discounts A bundle discount means the bundled price is less than the sum of SSPs. The default is proportional allocation across all performance obligations based on relative SSP. Example: subscription SSP is $24,000. Implementation SSP is $6,000. You sell the bundle for $27,000. The $3,000 discount allocates 80 percent to subscription ($2,400) and 20 percent to implementation ($600). ASC 606-10-32-37 allows specific allocation only with observable evidence. The discount must relate entirely to one or more (but not all) obligations. This is a high evidence bar in practice. ## Step 5: Recognize Revenue as Obligations Are Satisfied You recognize revenue when (or as) the customer obtains control. ASC 606-10-25-23 sets the over-time vs point-in-time split. Over-time applies if any of three criteria in ASC 606-10-25-27 is met: - The customer at the same time receives and consumes the benefits as the entity performs. - The entity creates or enhances an asset the customer controls. - The entity's work does not create an asset with alternative use, and there's an enforceable right to payment for work to date. For SaaS plans, criterion one applies. The customer at the same time receives and consumes the benefit of access each day. Over-time recognition is required. ### Over-Time vs Point-in-Time Recognition Over-time is the default for SaaS plans. Within over-time, you choose a measure of progress. For a plan that delivers equal value each day, straight-line works. You recognize the contract value ratably across the term, typically monthly. Point-in-time only applies to distinct services completed at a moment in time. A setup that delivers a configured environment is point-in-time at delivery. A one-time training session is point-in-time at the session. ### Why SaaS Subscriptions Recognize Ratably The customer gets a fixed-value benefit each day (access). The company's work is essentially the same each day (keeping the service running). Straight-line ratable recognition reflects this economic reality. Monthly is practical because most companies close monthly. Daily is allowed and sometimes used for high-precision reporting. ### Refunds, Cancellations, and Contract Modifications Refund rights affect transaction price at inception. If you offer a 30-day money-back guarantee, the expected refund amount reduces the transaction price under variable consideration rules. You don't recognize the refundable portion as revenue until the refund window closes. Contract modifications follow ASC 606-10-25-10 through 25-13. The standard splits two cases. First, a modification that adds distinct goods or services at a price reflecting SSPs is treated as a new contract (prospective). Second, a modification that changes existing services or adds services not priced at SSP is treated as a cumulative catch-up. ## Bringing It Together: A Running B2B SaaS Contract Example Let's walk all five steps for one contract. Acme Software signs a contract with Beta Corporation on March 1. Terms: $30,000 annual subscription paid up front on March 1, plus a $5,000 one-time setup fee also paid on March 1. The subscription runs March 1 through February 28. Setup is delivered by March 31. Base subscription would sell standalone for $30,000. Setup would sell standalone for $5,000. Step 1: Contract criteria are met. MSA is signed. Rights and payment terms are clear. Commercial substance exists. Beta is creditworthy. Contract exists. Step 2: Two performance obligations. First, the subscription (one continuous service over 12 months). Second, the setup. The setup is distinct because Beta could buy it separately and a third party could deliver it. Step 3: Transaction price is $35,000 fixed. No variable consideration. No financing component (under the one-year practical expedient). Step 4: Allocation. SSPs are $30,000 and $5,000, totaling $35,000. That matches transaction price. No discount to allocate. Subscription gets $30,000. Setup gets $5,000. Step 5: Recognition. Subscription recognizes ratably over 12 months at $2,500 per month. Setup recognizes point-in-time on March 31 when delivered. ### The Contract Economics $35,000 paid up front. $5,000 earns by March 31 (setup). $30,000 earns ratably from March 1 through February 28 next year ($2,500 per month). For more contract patterns and how they map to ASC 606 mechanics, see [six real ASC 606 contract examples](/blog/asc-606-revenue-recognition-examples-saas). ### The Journal Entries from Signing Through Month 12 On March 1 (cash receipt and contract signing): > Dr. Cash $35,000 > Cr. Deferred revenue (subscription) $30,000 > Cr. Deferred revenue (setup) $5,000 On March 31 (setup delivered): > Dr. Deferred revenue (setup) $5,000 > Cr. Setup revenue $5,000 And on March 31 (monthly subscription recognition): > Dr. Deferred revenue (subscription) $2,500 > Cr. Subscription revenue $2,500 Every month after, through February of the following year, the monthly subscription entry repeats. For more on how this liability behaves on the balance sheet across these entries, see [deferred revenue on the SaaS balance sheet](/blog/deferred-revenue-saas-companies). ### Financial Statements at Month 6 Six months in, on August 31, the books show two pieces. First, $5,000 setup revenue (recognized in March). Second, six months of subscription at $2,500 each, totaling $15,000. Total revenue recognized year-to-date: $20,000. Cash collected: still $35,000. Deferred revenue on the balance sheet: $15,000 ($30,000 subscription deferred, minus $15,000 recognized). The customer is still receiving $35,000 worth of value. The statements show the earning of that value. That is the point of ASC 606. If you bill through Stripe, the cash flows and recognition flows both run through your books. But only one is your top-line revenue. The other is cash timing. For pulling Stripe data into your books cleanly, [Stripe revenue recognition for SaaS](/blog/stripe-revenue-recognition-saas) walks through the bookkeeping mechanics. A clean bookkeeping system makes this much easier. Growthy is bookkeeping software built for SaaS. It handles deferred revenue, invoice-to-revenue mapping, and the journal entries above. They get generated automatically from your Stripe data. We hit about 85% accuracy on a first import and on returning books. For the regulatory side (signing off on ASC 606 reading), Growthy is not a CPA firm. We'd point you to a licensed CPA. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. *[*Full disclaimer*](/disclaimer)*.* [Get Started with Growthy](/signup?utm_content=asc-606-revenue-recognition-saas). See [asc 606 revenue recognition examples](/blog/asc-606-revenue-recognition-examples-saas). --- *Related: *[*SaaS Accounting*](/topics/saas-accounting)*, *[*Chart of Accounts*](/topics/chart-of-accounts)*, *[*Stripe Bookkeeping*](/topics/stripe-bookkeeping)*, *[Accrual vs Cash Basis](/blog/accrual-vs-cash-basis-accounting-for-saas-startups)., [a 7-step month-end close for SaaS founders](/blog/month-end-close-checklist-for-saas-founders) ### [SaaS Revenue Recognition Examples: 6 Real Contract Patterns Walked Through](https://growthy.com/blog/asc-606-revenue-recognition-examples-saas): Six SaaS contract patterns walked through with ASC 606 analysis, journal entries, and statement impacts. Monthly, annual prepay, multi-year, upgrades, downgrades. ## Why examples beat theory for revenue recognition When operators sit down to recognize revenue on a SaaS contract, they don't search for rules. They search for examples. They want to see the contract, the journal entry, and where the dollars land on the P&L. That's the gap this guide fills. It walks six common SaaS contract patterns end-to-end. Each one has dollar amounts and every journal entry. For the core theory, see [asc 606 revenue recognition](/blog/asc-606-revenue-recognition-saas) on the [SaaS accounting hub](/topics/saas-accounting). Bobby is a CPA firm partner, not a CPA. This guide is educational. The journal entries follow standard ASC 606 rules. But your contracts may have terms that change the analysis. When dollar amounts get large or terms get unusual, route the entries to a CPA for review. The six patterns below cover about 90% of what a young SaaS company recognizes as revenue in a year. Monthly subscriptions, annual prepay, multi-year prepay, free trials, upgrades, and downgrades with credits. Each example follows the same shape. Scan the one you need and skip the rest. > **What are the most common ASC 606 revenue recognition examples for SaaS?** > > The six most common SaaS revenue recognition patterns under ASC 606 are: monthly subscription billed in arrears ($99/month recognized monthly), annual prepay with monthly recognition ($1,200 collected upfront, recognized at $100/month), multi-year prepay with current and non-current deferred split ($30,000 over 36 months at $833.33/month), free trial converting to paid (zero revenue during trial, recognition starts at conversion), mid-term upgrade ($99 to $199 prospectively from upgrade date), and mid-term downgrade with credit ($600 credit liability applied over future months). Each pattern produces specific deferred revenue balances and recognition timing. ## Key Takeaways - **Monthly subscription revenue recognition is the simplest**: Recognize $99 in revenue the month service is delivered. No deferred revenue if billed in the same period. - **Annual prepay creates deferred revenue at signing**: $1,200 collected upfront becomes $1,200 deferred revenue. It releases at $100/month over 12 months under standard revenue recognition timing. - **Multi-year prepay splits across two balance sheet lines**: A $30,000 three-year prepay shows $10,000 in current deferred revenue and $20,000 in non-current at month 1. - **Free trials produce zero revenue and zero deferred revenue**: No payment means no journal entry and no revenue recognition until the customer converts to paid. - **Mid-term upgrades usually recognize revenue prospectively**: A $99 to $199 upgrade at month 6 gets treated as a new performance obligation. No catch-up fix. - **Downgrades with credits create a customer credit liability**: A $600 credit sits as a balance sheet liability. It releases to revenue as the customer uses future months. ## Example 1: Monthly subscription, no commitment ($99/month) ### Contract terms and ASC 606 revenue recognition analysis The customer signs up for a $99/month SaaS plan. Billing runs on the 1st of each month. The customer can cancel any time with no penalty. There's one performance obligation: access to the software for that month. The transaction price for each billing period is $99. Revenue gets recognized over the month as the customer uses the service. This is the simplest revenue recognition pattern in SaaS. The billing period and the service period match. You don't need to track deferred revenue between months. That holds as long as you bill in the period you deliver. ### Monthly journal entries On the 1st of each month, you invoice the customer and recognize revenue at the same time. The journal entry to record the invoice and recognize the revenue is: > **DR Accounts Receivable $99** > **CR Revenue $99** When the customer pays (often the same day on auto-pay), you clear the receivable: > **DR Cash $99** > **CR Accounts Receivable $99** If you want to spread revenue across the month instead of recognizing it at billing, you can split it across days. Most SaaS firms don't bother for monthly billing. The timing gap is too small to matter. For monthly contracts, recognizing revenue at the start of the service period is fine. The materiality threshold is the rule of thumb here. If the gap moves your monthly P&L by less than 1%, leave it alone. ### What the financial statements show On the income statement, you'd see $99 in revenue per customer per month. On the balance sheet at month-end, you'd see $0 in deferred revenue. You billed and recognized revenue in the same period. What if you bill in advance for the next month? Then you'd carry the $99 as deferred revenue from invoice date to the start of the service period. Most monthly SaaS plans bill at the start of the service period. Deferred revenue stays at zero. ## Example 2: Annual prepay with monthly revenue recognition ($1,200/year prepaid) ### Contract terms and ASC 606 revenue recognition analysis The customer signs a 12-month contract and pays $1,200 upfront. The annual price builds in a small discount versus monthly billing (a $99/month customer might get the annual plan at $1,200 instead of $1,188). The performance obligation is access to the software over 12 months. The transaction price is $1,200. Revenue gets recognized over 12 months at $100/month. The customer pays before the service ships. So you'll carry deferred revenue on the balance sheet. Revenue recognition releases that liability each month. ### Signing JE and monthly recognition JEs When the customer pays the $1,200, you record: > **DR Cash $1,200** > **CR Deferred Revenue $1,200** At the end of each month, you recognize 1/12 of the contract as revenue. The monthly entry is: > **DR Deferred Revenue $100** > **CR Revenue $100** That entry repeats 12 times over the year. At month 12, deferred revenue from this contract hits $0. You've recognized $1,200 in total revenue. Your revenue runs flat at $100/month across the year. Cash, on the other hand, came in all at once at signing. ### Balance sheet roll-forward through year 1 Here's what deferred revenue looks like for this single contract at each month-end: - Month 1: $1,100 deferred revenue, $100 recognized - Month 3: $900 deferred revenue, $300 recognized - Month 6: $600 deferred revenue, $600 recognized - Month 9: $300 deferred revenue, $900 recognized - Month 12: $0 deferred revenue, $1,200 recognized For more on how this account moves over time, see [deferred revenue saas](/blog/deferred-revenue-saas-companies). Say the customer cancels at month 6 and you refund the remaining $600. You'd debit deferred revenue $600 and credit cash $600. There's no income statement impact. You'd already recognized only $600 in revenue. ## Example 3: Multi-year prepay (3 years, $30,000 paid upfront) ### Current vs non-current deferred revenue split The customer signs a 36-month contract and pays $30,000 upfront. That's $833.33/month in recognized revenue over 36 months. The contract spans more than 12 months. So you split the deferred revenue liability into current and non-current parts on the balance sheet. The current part is what'll release to revenue in the next 12 months. The non-current part is everything beyond that. At signing on day one, the split looks like this: - Current deferred revenue (months 1-12): $10,000 - Non-current deferred revenue (months 13-36): $20,000 - Total deferred revenue: $30,000 The signing entry is: > **DR Cash $30,000** > **CR Current Deferred Revenue $10,000** > **CR Non-Current Deferred Revenue $20,000** Each month, you'd also reclassify some non-current to current as future periods get closer. At month 1, you'd reclassify $833.33 from non-current to current. That keeps the next-12-months balance right. Most firms do this reclass each quarter or each year, not each month. It cuts bookkeeping load. ### Significant financing component analysis ASC 606-10-32-15 makes you check whether a contract has a significant financing component. The practical expedient in ASC 606-10-32-18 lets you skip the check if the gap between payment and service is one year or less. A 36-month prepay is past that window. So you'd check whether the upfront payment hides a financing benefit to the customer. Compare a $30,000 prepay over 36 months versus monthly billing at $1,000/month ($36,000 total). The $6,000 discount could be a volume discount. Or it could be a financing-component fix. Most SaaS firms treat it as a discount on the standalone selling price, not a financing piece. The discount reflects commitment and lower churn risk, not time-value-of-money. Write down your call and the reason. If audited, the auditor will want to see the work. ### Monthly revenue recognition over 36 months The monthly entry uses the same pattern as Example 2. The dollar amount differs: > **DR Deferred Revenue $833.33** > **CR Revenue $833.33** That entry repeats 36 times. Over the contract term, deferred revenue drops from $30,000 to $0. Recognized revenue climbs from $0 to $30,000. The revenue recognition pattern is the same as the annual prepay in Example 2. Just stretched across three years instead of one. ## Example 4: Free trial + paid conversion (30-day trial, then $99/month) ### Performance obligation analysis during the trial The customer signs up for a 30-day free trial. No payment is collected. After 30 days, the customer either converts to the $99/month paid plan or the account stops. During the trial, the customer gets access to the software. But no money has changed hands. Under ASC 606, you don't have a contract until both sides commit and the price is set. A free trial with no payment owed isn't a contract under ASC 606. You'd recognize no revenue and no deferred revenue during the trial. That said, you're still spending to serve the trial user (servers, support, sometimes onboarding). Those costs hit your P&L as period expenses. They don't get capitalized as contract costs. The only way they would: the customer converts and the costs meet the ASC 340-40 rules. ### When revenue recognition starts The day the customer converts, the contract starts. Say conversion happens on day 31 and the customer pays $99 for the first month. You'd treat it as a new monthly subscription (see Example 1). The entry on conversion day is: > **DR Cash $99** > **CR Revenue $99** If the customer converts mid-month (say day 35), you'd start the month on day 35. Then recognize revenue through day 34 of the next month. Some firms prorate the first month. Others bill the full month at conversion and roll the cycle forward. Either is fine, as long as you stay consistent. ### What happens if the customer doesn't convert If the customer never converts, you've recognized no revenue and recorded no journal entries. The trial costs sit in your P&L as period expenses with no matching revenue. For accounting, the non-converting trial is invisible on the revenue side. For unit economics, those costs do matter. You'd track them in your CAC analysis. But they don't show up as a revenue issue. For more on how trial-to-paid conversion shows up next to MRR and ARR, see [saas metrics for bookkeepers](/blog/saas-metrics-mrr-arr-bookkeepers). ## Example 5: Mid-term upgrade (month 6 upgrade from $99 to $199/month) ### Contract modification and revenue recognition analysis The customer is on month 6 of a 12-month $99/month plan. At month 6, they upgrade to a $199/month plan for the remaining 6 months. Does this count as a contract change under ASC 606-10-25-10? If so, is it prospective, or does it need a cumulative catch-up? Three tests apply. First, are the added services distinct? For a SaaS upgrade that adds new features, the added service is usually distinct. Second, is the added price at standalone selling price? If $199 is what a new customer would pay for the higher plan, yes. Third, if both tests pass, you treat the change as a separate contract starting at the upgrade date. The first contract's accounting stays put. In most SaaS upgrades, both tests pass. The upgrade gets prospective revenue recognition treatment. The first $99/month plan recognized through month 5 stays as-is. From month 6 forward, you recognize the new plan as a new contract. This is the clean, simple path. It works for the vast majority of plan upgrades you'll see in a young SaaS company. ### Prospective vs cumulative catch-up Prospective treatment is the most common and the simplest. You stop the old contract at the upgrade date and start the new one. No catch-up fix is needed. You aren't changing past accounting. Cumulative catch-up kicks in when the change updates the existing contract's terms but doesn't qualify as a separate contract. Examples: adding services that aren't distinct, or pricing the change below standalone selling price. In a catch-up, you'd redo the contract as a whole at the change date. Then you'd adjust revenue for the gap between what's been recognized and what should have been recognized under the new terms. This is rare in clean upgrade cases. ### JEs from month 6 forward Assuming monthly billing at the new $199 rate from month 6 onward, the monthly entry is: > **DR Accounts Receivable $199** > **CR Revenue $199** That entry repeats 6 times for the remaining contract term. The original $99/month recognized through month 5 stays in place. Total revenue for this customer over the 12 months would be $99 × 5 + $199 × 7 = $1,888. That assumes the new rate runs through the renewal date. The exact total depends on the day in month 6 the upgrade hit and whether you prorated. ## Example 6: Mid-term downgrade with credit ($199 to $99, $600 credit to future months) ### Credit treatment: refund vs forward credit The customer is on month 4 of a 12-month $199/month plan. They downgrade to $99/month for the remaining 8 months. They've already paid $796 ($199 × 4 months). Under the old contract, they would have paid $1,592 more. Under the new contract, they'd pay $792 for the remaining 8 months. The company decides to issue a $600 credit for future months rather than refund cash. The credit shifts the timing of when revenue is recognized. It doesn't change total revenue if the customer uses the full credit. What if the customer doesn't use the credit before the contract ends? The unused balance may need to be recognized as breakage revenue under ASC 606-10-55-46. That call depends on company history and credit forfeit policy. ### JEs for issuing credit and applying it When you issue the $600 credit at month 4, you'd cut revenue (or reverse revenue already recognized, based on facts). You'd also record a credit liability. The entry is: > **DR Revenue $600** > **CR Customer Credit Liability $600** This entry reverses $600 of the $796 already recognized. Net recognized revenue through month 4 is $196. From month 5 forward, the customer is on the $99/month plan. As the customer uses service in months 5-8, they get $99 × 8 = $792 of value. The first $600 of that gets credited against the credit liability, not cash. The remaining $192 gets billed and collected as usual. The monthly entry for months 5-8 has two parts. To recognize revenue for the month: > **DR Customer Credit Liability $75** > **DR Accounts Receivable $24** > **CR Revenue $99** That assumes the company spreads the $600 credit evenly across the 8 remaining months ($75/month). The customer pays the $24 gap per month. The exact split depends on how the company set up the credit. ### Multi-period impact Over the full 12-month contract, recognized revenue lands at the new $99/month rate for the changed part. Total recognized revenue is $796 (months 1-4) − $600 (credit issued) + $99 × 8 (months 5-12) = $988. That equals what the customer paid in cash, net of refunds. The credit liability balance moves from $600 at issue to $0 at month 12, if used in full. What if the customer churns at month 7 with $150 of credit unused ($600 − $75 × 6 = $150)? The company has to choose: refund the credit, or apply breakage. Refund means debit credit liability $150, credit cash $150. Breakage means debit credit liability $150, credit revenue $150. Breakage applies only if the rules under ASC 606-10-55-46 are met. The company must expect to keep the breakage and be able to estimate it from past patterns. > **A note on materiality**: For small SaaS firms, single contract changes of $200-$600 often recognize through simpler entries. You just adjust revenue going forward without a separate credit liability. The strict ASC 606 revenue recognition path matters most when changes are big enough to move the financial statements. When in doubt, route the journal entries to a CPA for review. These six patterns cover the common revenue recognition cases. Edge cases will come up: usage-based pricing tiers, contracts with implementation fees, bundled hardware, or revenue share with partners. Each has its own ASC 606 revenue recognition treatment. The core five-step model still applies. Identify the contract, the performance obligations, the price, how to split the price across obligations, and when to recognize each one. Walk through the steps in order. The right answer falls out. --- *Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. *[*Full disclaimer*](/disclaimer)*.* [Get Started with Growthy](/signup?utm_content=asc-606-revenue-recognition-examples-saas) --- *Related: *[*SaaS Accounting*](/topics/saas-accounting)*, *[*Chart of Accounts*](/topics/chart-of-accounts)*.* ### [Working Capital: Formula, Calculation, & What It Tells You](https://growthy.com/blog/working-capital): Current assets minus current liabilities. What the number means, healthy benchmarks, and how clean books keep it reliable. ## Working Capital: Formula, Calculation, & What It Tells You Working capital tells you whether a business can pay what it owes in the next 12 months using what it already has. It's one of the first numbers a lender, investor, or CFO looks at before committing to anything. The formula is simple: current assets minus current liabilities. The result tells you how much cushion a business has (or doesn't have) to cover short-term obligations. A positive number means the business has more coming in than going out in the near term. A negative number is a warning sign -- though not always a bad one, as you'll see below. As a partner at SDO CPA, I've reviewed hundreds of balance sheets. Working capital is almost always the first number I check when a client asks about cash flow, a bank wants a financial package, or a business is thinking about taking on new debt. > **What is working capital?** > > Working capital is current assets minus current liabilities. It measures whether a business can cover its short-term financial obligations using its existing short-term resources. A result above zero means the business has a buffer; below zero means current liabilities exceed current assets. Most lenders prefer a working capital ratio (current assets divided by current liabilities) between 1.5 and 2.0, though healthy ranges vary by industry. Service businesses often run leaner (1.2 to 1.5) while manufacturers and distributors with heavy inventory typically target higher ratios. ### Key Takeaways - **Working capital formula** - current assets minus current liabilities (e.g., $180,000 assets minus $120,000 liabilities = $60,000 net working capital) - **Working capital ratio** - current assets divided by current liabilities; 1.5 to 2.0 is healthy for most businesses - **Current assets include** - cash, accounts receivable, inventory, and prepaid expenses - **Current liabilities include** - accounts payable, accrued expenses, short-term debt, and deferred revenue - **Negative working capital is not always a problem** - subscription businesses and large retailers often run negative due to deferred revenue - **Bookkeeper role** - clean AR aging, accurate AP, and properly classified short-term debt are what make working capital reliable ### The Formula and How to Calculate It Working capital = Current Assets - Current Liabilities The working capital ratio (also called the current ratio) gives you the same information as a multiple: Working Capital Ratio = Current Assets / Current Liabilities A ratio of 1.5 means you have $1.50 in current assets for every $1.00 of current liabilities. A ratio of 1.0 means you're exactly even. Below 1.0 means you owe more short-term than you have available short-term -- that's where the warning flag goes up. **Quick example:** - Cash: $40,000 - Accounts receivable: $80,000 - Inventory: $50,000 - Prepaid expenses: $10,000 - **Total current assets: $180,000** - Accounts payable: $55,000 - Accrued expenses: $20,000 - Short-term debt: $30,000 - Current portion of long-term debt: $15,000 - **Total current liabilities: $120,000** Net working capital: $180,000 - $120,000 = **$60,000** Working capital ratio: $180,000 / $120,000 = **1.50** Both numbers say the same thing: this business has a moderate buffer to cover its short-term obligations. For most industries, that's a passing grade. ### What Goes Into Current Assets [Current assets](/blog/balance-sheet) are resources expected to be converted to cash within 12 months. The four most common: **Cash and cash equivalents** -- checking accounts, savings accounts, money market accounts, and anything you can spend immediately. This is the most liquid item on the balance sheet. **Accounts receivable (AR)** -- money customers owe but haven't paid yet. [Accounts receivable](/blog/accounts-receivable) counts as a current asset because you expect to collect it within the next year. Aged receivables beyond 90 days are questionable -- some businesses carry AR that will never be collected, which overstates working capital. **Inventory** -- for product-based businesses, the goods available to sell. Inventory is technically liquid, but in practice it takes time to sell and collect. We'll come back to this under Gotchas. **Prepaid expenses** -- insurance premiums, deposits, or subscriptions paid in advance. They're current assets because they represent future value you'll consume within 12 months. ### What Goes Into Current Liabilities [Current liabilities](/blog/accounts-payable) are obligations due within 12 months. Common line items: **Accounts payable (AP)** -- what the business owes vendors and suppliers. AP aging shows you how old these balances are; anything past due adds credit risk. **Accrued expenses** -- costs incurred but not yet billed (wages payable, interest owed, utilities). They're liabilities even if no invoice has arrived. **Short-term debt** -- credit lines, short-term loans, or any borrowing due within 12 months. **Current portion of long-term debt** -- the piece of a long-term loan due this year. This is a frequent classification gotcha. A 5-year loan looks like long-term debt, but the slice maturing in the next 12 months belongs in current liabilities. Miss this and working capital looks better than it is. **Deferred revenue** -- cash collected before delivering the service or product. Subscription businesses often carry large deferred revenue balances. This reduces working capital on paper even though the business already has the cash. ### Healthy Ratio Benchmarks Working capital ratios vary by industry, so there's no single "right" number. General guidelines: | Business type | Typical healthy range | | --- | --- | | Professional services | 1.2 to 1.5 | | Retail | 1.5 to 2.5 | | Manufacturing/distribution | 1.5 to 2.5 | | SaaS / subscription | 0.8 to 1.5 (deferred revenue effect) | | Construction | 1.2 to 2.0 | Lenders and investors typically flag a ratio below 1.0 as a liquidity risk. A ratio above 3.0 can signal that the business is sitting on too much idle cash or excess inventory instead of reinvesting. ### When Negative Working Capital Is Not a Problem A negative working capital number looks alarming, but context matters. Two situations where it's normal: **Subscription businesses.** If a software company collects $120,000 in annual subscriptions upfront in January, it books $120,000 in deferred revenue (a current liability). But the business already has the cash. Working capital looks negative on paper, yet the company is cash-flow positive. The negative figure reflects accounting convention, not a real liquidity crisis. **Large retailers and fast-turn businesses.** Amazon and similar companies collect cash from customers faster than they pay suppliers. They run negative working capital by design because the business model generates cash before bills come due. In this model, negative working capital is a sign of efficiency. The difference between healthy negative and dangerous negative: does the business generate consistent operating cash flow? If [cash flow from operations](/blog/cash-flow-statement) is positive, negative working capital is usually fine. If cash flow is also negative, that's when the combination signals trouble. ### The Quick Ratio: When Inventory Distorts the Picture One gotcha worth flagging: working capital includes inventory, but inventory is the least liquid current asset. It has to be sold and collected before it becomes cash. The quick ratio (also called the acid-test ratio) strips out inventory: Quick Ratio = (Cash + AR) / Current Liabilities A business with $180,000 in current assets but $50,000 is inventory has a quick ratio of ($180,000 - $50,000) / $120,000 = 1.08. That's tighter than the 1.50 working capital ratio suggests. When evaluating liquidity, check both. ### How a Bookkeeper Keeps Working Capital Reliable Working capital is only as accurate as the books behind it. Three places where bookkeeping quality directly affects the number: **AR aging.** Stale or uncollectible receivables overstate current assets. A bookkeeper who runs a clean [accounts receivable](/blog/accounts-receivable) aging report and flags balances past 90 days gives you an honest picture. Carrying $40,000 in AR that's actually 180 days old inflates working capital by $40,000. **AP accuracy.** Missing bills understate current liabilities. If three vendor invoices aren't entered, [accounts payable](/blog/accounts-payable) looks lower than it is and working capital looks higher than it is. Accruals for known expenses (wages, rent, utilities) need to be recorded even before invoices arrive. **Proper debt classification.** The current portion of long-term debt belongs in current liabilities. A bookkeeper who reviews the debt schedule at year-end and reclassifies what's due within 12 months ensures the balance sheet reflects true short-term obligations. When those three inputs are accurate, working capital becomes a useful management tool instead of a misleading snapshot. [Net income](/blog/net-income) is the income statement story; working capital is the balance sheet story of whether the business can stay solvent in the short run. ### How Growthy Handles Working Capital When you [connect your accounts](/ai-bookkeeping#features), Growthy suggests categories for your transactions. Built by a CPA firm partner, Growthy treats classification accuracy as a core function, not an afterthought. ### Frequently Asked Questions **What is the difference between working capital and net working capital?** They mean the same thing. "Net working capital" and "working capital" both refer to current assets minus current liabilities. Some textbooks use "net" to emphasize the subtraction, but in practice the terms are interchangeable. **Is a high working capital ratio always good?** Not necessarily. A ratio above 3.0 can mean the business is holding too much cash or excess inventory instead of investing it. Idle current assets don't generate returns. Target the range appropriate for your industry, not simply "higher is better." **Does deferred revenue hurt working capital?** On paper, yes. Deferred revenue sits in current liabilities, so it reduces working capital. But it represents cash already collected, so the actual cash position is fine. This is why subscription businesses often have lower or negative working capital ratios despite strong cash flow. **Why does the current portion of long-term debt matter?** Because it changes the picture dramatically. A business might carry $500,000 in long-term debt and think its current liabilities are just $80,000 in AP. But if $100,000 of that debt matures in the next 12 months, current liabilities jump to $180,000 and working capital drops by $100,000. Banks and auditors check this every time. **What is a quick ratio and when should I use it?** The quick ratio is (cash + AR) / current liabilities. Use it when the business holds significant inventory, because inventory can take months to convert to cash. The quick ratio gives a more conservative -- and often more realistic -- view of short-term liquidity than the working capital ratio alone. --- If working capital is something you're watching closely, clean books are the foundation. [Start with Growthy](/signup?utm_content=working-capital). ### [Inventory Accounting: Methods, COGS, & Bookkeeper Workflow](https://growthy.com/blog/inventory-accounting): Inventory accounting tracks goods held for sale using perpetual or periodic systems and three costing methods that flow directly to COGS. ## Inventory Accounting: Methods, COGS, & Bookkeeper Workflow A client sells handmade candles. They buy wax, wicks, and fragrance in bulk. When a candle sells, part of that raw material cost moves from the balance sheet to the income statement as the cost of goods sold. That transfer is inventory accounting in action. Inventory sits as a current asset until the moment of sale. Most bookkeeping errors in product-based businesses trace back to one of two problems: inventory that was never recorded correctly to start with, or sales posted without a matching COGS entry. Getting this right keeps the balance sheet clean and the margin on the income statement trustworthy. > **What is inventory accounting?** > > Inventory accounting is the process of recording, tracking, and valuing goods held for sale as a current asset on the balance sheet. When goods sell, their cost transfers to cost of goods sold (COGS) on the income statement. Businesses use one of two tracking systems (perpetual or periodic) and one of three costing methods (FIFO, LIFO, or weighted average cost) to determine which cost flows to COGS. For a business carrying 500 SKUs, the choice of method can shift reported profit by thousands of dollars on identical sales. ### Key Takeaways - **Inventory is a current asset** - it sits on the balance sheet until sold, then moves to COGS on the income statement - **Two tracking systems exist** - perpetual updates inventory in real time with every transaction; periodic waits for a physical count at period end - **FIFO assumes oldest units sell first** - this matches physical flow for most product businesses and is the most common method - **LIFO is rarely used in practice** - it's legal only under US GAAP and is almost always a tax-strategy choice - **Weighted average cost works well for fungible goods** - one pool of cost divided by total units gives a single average cost per unit - **Freight-in must be capitalized** - shipping costs to receive inventory are part of its cost, not a separate expense Inventory sits in the same part of the [balance sheet](/blog/balance-sheet) as cash and receivables. It's liquid in theory, but only after a sale happens. ### What Inventory Accounting Actually Is Inventory accounting covers every transaction that touches goods you hold for sale. That includes buying goods, receiving them, adjusting for damage or loss, and recording the cost that flows out when a sale happens. On the [balance sheet](/blog/balance-sheet), inventory is a current asset. The value there represents what you paid (or what it cost to produce) the goods you still hold. The moment a sale happens, that cost leaves inventory and appears on the income statement as cost of goods sold, connecting directly to the [COGS article](/blog/cost-of-goods-sold) in your chart of accounts. Two things are always true regardless of which system or method a business uses: 1. The cost of goods purchased flows into inventory on receipt. 2. The cost of goods sold flows out of inventory on sale. Everything else is about *how* you track the flow and *which* specific costs you assign to each unit sold. ### Perpetual vs Periodic: Two Tracking Systems #### Perpetual Inventory A perpetual system updates the inventory account after every purchase and every sale in real time. When you receive 100 units, inventory goes up by 100. When you sell 10, inventory drops by 10 and COGS goes up by 10. Point-of-sale software, e-commerce platforms, and most modern accounting tools run perpetual tracking by default. Benefits: you always know what's on hand without counting. The system flags discrepancies. Reports pull current numbers. Drawback: it requires clean data entry on every transaction. One unrecorded purchase or sale throws the ledger off. #### Periodic Inventory A periodic system doesn't track inventory continuously. Instead, the business physically counts inventory at the end of a period (monthly, quarterly, or annually), then records a [journal entry](/blog/journal-entry) to adjust the inventory balance and calculate COGS for the period. > **Periodic COGS formula:** > > Beginning Inventory + Purchases during period - Ending Inventory (physical count) = COGS Periodic works for small businesses with few SKUs that don't need real-time inventory visibility. It's simpler to set up but makes it hard to catch shrinkage until the count happens. ### Three Costing Methods The costing method determines which cost you assign to units sold. For fungible goods (wax, grain, wire) you can't actually trace which physical unit left first. The method is a convention, not a literal tracking. #### FIFO (First-In, First-Out) FIFO assumes the oldest inventory sells first. You bought 50 units at $10 in January, then 50 at $12 in March. When you sell 60 units, FIFO says the first 50 came from the January batch ($10) and the last 10 from March ($12). COGS = (50 x $10) + (10 x $12) = $620. FIFO matches physical flow for most businesses (perishables, fashion, consumer goods). It's the most common method globally. In a rising-cost environment, FIFO produces lower COGS and higher reported profit compared to LIFO, because older, cheaper costs flow out first. #### LIFO (Last-In, First-Out) LIFO assumes the most recently purchased inventory sells first. Using the same example: COGS under LIFO = (50 x $12) + (10 x $10) = $700. LIFO produces higher COGS and lower taxable income when costs are rising. That's the main reason US businesses use it. It's not permitted under IFRS (International Financial Reporting Standards), which limits its use to US GAAP companies. Most small businesses have no reason to use LIFO. If a bookkeeper sees LIFO on the books of a small product company, the first question to ask is whether it was set up intentionally by the CPA or left as a default. #### Weighted Average Cost (WAC) WAC blends all units into one average cost. Take total cost of all inventory on hand, divide by total units, and apply that average cost to every sale until you buy more. > **WAC formula:** > > (Total cost of inventory on hand) / (Total units on hand) = Cost per unit After each new purchase, recalculate. WAC is practical for fungible goods where unit-level tracking doesn't matter. Fuel, chemicals, and bulk commodities often use WAC. ### How Cost Flows to COGS This is the step that most bookkeepers miss. Recording a sale in the revenue account is only half the [journal entry](/blog/journal-entry). **When you receive inventory:** - Debit: Inventory (asset account increases) - Credit: Accounts Payable (or Cash) **When you sell inventory:** - Entry 1 (revenue side): Debit Accounts Receivable / Cash, Credit Revenue - Entry 2 (cost side): Debit COGS, Credit Inventory If you only record Entry 1, revenue goes up but inventory stays on the balance sheet. Gross margin is inflated. The balance sheet shows an asset that no longer exists. This error compounds every period until a physical count forces a correction. Modern point-of-sale integrations handle this automatically, but any manual sale or credit memo recorded directly in the accounting software requires both entries. ### Period-End Inventory Count and Adjustment Even with a perpetual system, the book balance and the physical count will differ over time. Shrinkage (theft, damage, evaporation) doesn't get recorded as it happens. Receiving errors, returns processed incorrectly, and data entry mistakes all contribute. At period end: 1. Run a physical count. 2. Compare the count to the book balance. 3. Record an[adjusting journal entry](/blog/adjusting-journal-entry) for the difference. **Inventory shrinkage JE:** - Debit: COGS (or a separate Inventory Shrinkage expense account) - Credit: Inventory The debit goes to COGS if shrinkage is a normal cost of sales. Some businesses track it separately to measure it over time. If the physical count is *higher* than the book balance (which happens when receipts weren't recorded), the entry reverses: Debit Inventory, Credit COGS or a separate account. ### Common Gotchas **Shrinkage never gets booked.** A perpetual system can still show phantom inventory if you never reconcile to a physical count. The balance sheet overstates assets; COGS is understated. **Sale recorded without the COGS entry.** The revenue hits the income statement but inventory stays on the balance sheet. Gross margin looks too good. Often caught during a balance sheet review when inventory grows despite active selling. **LIFO on books, FIFO on tax (or vice versa).** Under US GAAP, the LIFO conformity rule requires that if you use LIFO for tax, you must also use it for financial reporting. Mixing methods is a compliance issue. Check with the CPA before switching. **Freight-in not capitalized.** The cost to ship inventory to your location is part of the cost of that inventory. It belongs in the Inventory account, not in a Shipping Expense account. This one is commonly missed by bookkeepers new to product-based businesses. **Receiving inventory without a bill.** The inventory hit the dock, but the vendor invoice hasn't arrived. Under accrual accounting, you should debit Inventory and credit Accounts Payable (accrued) on the receipt date, not when the bill arrives. See also: how [fixed assets](/blog/fixed-assets) differ from inventory (both appear on the balance sheet, but fixed assets depreciate instead of flowing to COGS). ### How Growthy Handles Inventory Accounting Most bookkeeping tools treat inventory transactions like any other expense category. Growthy auto-categorizes high-confidence transactions; you review the rest. Learn more at [Growthy's features](/ai-bookkeeping#features). ### Frequently Asked Questions **Is inventory an asset or an expense?** Inventory is a current asset on the balance sheet. It becomes an expense (COGS) on the income statement only when the goods sell. Until then, buying inventory is an asset acquisition, not a period expense. This is why buying a lot of inventory before year-end doesn't reduce taxable income the way buying supplies does. **What's the difference between perpetual and periodic inventory?** Perpetual inventory updates in real time with each purchase and sale. Periodic inventory relies on physical counts at set intervals to calculate what's on hand and what sold. Perpetual is standard for any business using point-of-sale or e-commerce software. Periodic still appears in small cash-based businesses with simple inventory. **Which costing method should a small business use?** FIFO works for most product-based small businesses. It matches physical flow, is accepted globally, and produces a balance sheet inventory value close to current replacement cost. If a CPA has advised LIFO for specific tax reasons, there's a documented reason. Otherwise default to FIFO or WAC depending on whether the business sells distinct units or fungible goods. **Why does gross margin look wrong even when revenue is correct?** The most common cause is a missing COGS entry. Revenue hit the books but inventory never decreased. Check whether every sale has both a revenue entry and a COGS/inventory credit. Also verify that freight-in costs are in the Inventory account, not expensed directly. **What is an inventory shrinkage journal entry?** Shrinkage is the gap between what the books say you own and what's actually on the shelf after a physical count. The adjustment: Debit COGS (or Inventory Shrinkage), Credit Inventory. The amount is the difference in units multiplied by the unit cost under your chosen method. --- Inventory accounting is one of those areas where small errors compound quietly across periods. A clean system starts with knowing which tracking method and costing convention you're using, then making sure every receipt and every sale produces the right pair of journal entries. [Get started with Growthy](/signup?utm_content=inventory-accounting) to review inventory and COGS category suggestions across your product-based clients. ### [Bad Debt Expense: When & How Bookkeepers Write Off Uncollectible AR](https://growthy.com/blog/bad-debt-expense): When a customer invoice won't get paid, bad debt expense is how it leaves your books. Here's the allowance method, direct write-off, and the AR aging workflow bookkeepers follow. ## Bad Debt Expense: When & How Bookkeepers Write Off Uncollectible AR Every business with accounts receivable eventually hits the same wall: a customer who won't pay. Bad debt expense is the accounting mechanism that moves that invoice off the books correctly. Get it wrong and your AR balance grows with phantom invoices that will never convert to cash. There are two methods for recording bad debt, and they produce different entries, different timing, and different GAAP implications. Knowing which one applies to your client determines the entire workflow. For most businesses following GAAP, the allowance method is required. For smaller businesses where bad debt is immaterial, the direct write-off method is acceptable. This guide covers both from the bookkeeper's seat: the journal entries, the AR aging workflow, what to do when a customer pays after a write-off, and the mistakes that cause aging reports to balloon year after year. > **What is bad debt expense?** > > Bad debt expense is the cost a business records when customer invoices become uncollectible. Under the allowance method (GAAP-preferred), you estimate uncollectible accounts at period-end, typically 1-5% of outstanding AR depending on aging, and record the estimate before specific invoices are identified. Under the direct write-off method, you record the expense only when a specific invoice is confirmed uncollectible. Either way, bad debt expense reduces net income and net AR on the balance sheet. It does not affect cash flow — the cash was never received. ### Key Takeaways - **Allowance method is GAAP** - estimates bad debt at period-end using aging percentages, creating a contra-AR account (Allowance for Doubtful Accounts) before individual invoices are written off - **Direct write-off is simpler but not GAAP** - records bad debt expense only when a specific invoice is confirmed uncollectible; acceptable for businesses where bad debt is immaterial - **Two entries in the allowance method** - period-end estimate entry (debit Bad Debt Expense, credit Allowance for Doubtful Accounts) plus the write-off entry when a specific invoice is confirmed bad (debit Allowance, credit AR) - **AR aging drives the workflow** - most bookkeepers flag invoices at 90+ days, attempt contact, escalate, then write off; 60% of invoices unpaid past 90 days are eventually uncollectible - **Customer pays after write-off** - requires a reversal: re-open the invoice, then record the payment; skipping the reversal overstates the allowance balance - **IRS §166 governs tax deductibility** - bad debts are generally deductible when they become totally worthless; consult a tax advisor for specifics ### When an Invoice Becomes a Bad Debt The Growthy [glossary](/topics/glossary) of AR terms starts with [accounts receivable](/blog/accounts-receivable) itself: amounts owed to your client that should convert to cash. Bad debt expense is what happens when that conversion fails. An invoice doesn't become bad debt the day it's overdue. It becomes bad debt when you've determined it won't be collected. The timing matters because it affects when the expense hits. Review your [accounts receivable aging report](/blog/accounts-receivable-aging-report) at least monthly to catch invoices moving into the 60-90+ day buckets. Standard escalation ladder before write-off: 1. **30-60 days**: Follow-up email or call from the client 2. **60-90 days**: Second notice, possible late fee 3. **90+ days**: Final demand, collection agency consideration 4. **Confirmed uncollectible**: Write off The write-off is not a business decision about whether to pursue payment. It's an accounting decision about when to stop carrying the invoice as an asset on the balance sheet. ### Allowance Method: The GAAP Approach The allowance method matches bad debt expense to the period when the revenue was earned, not the period when the invoice is confirmed uncollectible. That matching principle is why GAAP requires it. **Period-end estimate entry (at close):** Debit: Bad Debt ExpenseCredit: Allowance for Doubtful Accounts The Allowance for Doubtful Accounts is a contra-AR account. It sits on the [balance sheet](/blog/balance-sheet) as a reduction to gross AR, showing the net realizable value of receivables. You're not removing specific invoices yet. You're reducing the carrying value of AR to reflect expected collectibility. How do you estimate the amount? Two common approaches: - **Percentage of sales**: Apply a historical uncollectible rate (e.g., 1%) to credit sales for the period - **Aging analysis**: Apply different percentages to AR buckets (e.g., 2% of current, 10% of 30-60 days, 25% of 60-90 days, 50% of 90+ days) **Write-off entry when a specific invoice is confirmed bad:** Debit: Allowance for Doubtful AccountsCredit: Accounts Receivable (specific customer) This entry does not hit income. Bad debt expense was already recorded at the period-end estimate. The write-off simply removes the invoice from both AR and the allowance balance. Net AR on the balance sheet is unchanged. True-up the allowance balance each period. If actual write-offs run higher than your estimate, adjust the estimate up. If you're carrying a large allowance balance with few actual write-offs, your estimate is too aggressive. ### Direct Write-Off Method: Simpler but Not GAAP The direct write-off method skips the period-end estimate. When an invoice is confirmed uncollectible, you record: Debit: Bad Debt ExpenseCredit: Accounts Receivable (specific customer) No Allowance for Doubtful Accounts account. No period-end entry. One entry per write-off. This violates the matching principle because bad debt expense hits in a different period from the revenue it relates to. For that reason, it's not GAAP-compliant for businesses with material bad debt. The IRS, however, generally requires the direct write-off method for tax purposes under IRC §166. The direct write-off method is acceptable for GAAP books when bad debt is genuinely immaterial. For a business with $500K annual revenue and $200 in annual write-offs, the accounting difference doesn't move the needle. For a business with $2M in AR and frequent write-offs, use the allowance method. ### When to Use Which Method | Situation | Method | | --- | --- | | GAAP financial statements, material bad debt | Allowance method (required) | | GAAP books, immaterial bad debt | Direct write-off (acceptable) | | Tax return (all businesses) | Direct write-off (IRS §166) | | Small business, cash basis | Direct write-off | Note that a business can use the allowance method for GAAP books and the direct write-off method for tax purposes. The difference creates a temporary book-tax difference. Coordinate with the CPA at year-end. ### Bookkeeper Workflow: From Aging Review to Write-Off Here's the practical workflow for handling bad debt each month: 1. **Pull the AR aging report** at period close. Sort by oldest invoices. 2. **Flag 90+ day invoices** as potential write-offs. 3. **Verify customer contact** was attempted. Document attempts in the memo field. 4. **Client decision**: Confirm with the business owner or controller which invoices to write off. Never write off without authorization. 5. **Record the entry** using whichever method applies. 6. **Update the allowance estimate** if using the allowance method. 7. **Document in the customer record** that the invoice was written off, with date and authorization. Keep the written-off invoice in the system. Don't delete it. You may need the audit trail, and the customer may pay later. **If the customer pays after write-off:** Under the allowance method: 1. Reverse the write-off: Debit AR, Credit Allowance for Doubtful Accounts 2. Record the payment: Debit Cash, Credit AR Under the direct write-off method: 1. Reverse the write-off: Debit AR, Credit Bad Debt Expense (or a recovery account) 2. Record the payment: Debit Cash, Credit AR The reversal step is required to show the correct AR history. ### Common Gotchas > **Write-off entry never happens.** The most common bad debt mistake isn't a wrong entry. It's no entry. Bookkeepers flag old invoices, the client never decides, and AR just grows with uncollectible balances inflating the asset on the balance sheet. Set a policy: invoices 120+ days with documented contact attempts get written off at month-end unless the client explicitly says otherwise. > **Allowance never trued up.** Recording the same 1% allowance for three years without reviewing actual write-off history means your estimate drifts from reality. If your allowance balance keeps growing while your AR stays flat, the estimate is too aggressive. If your allowance is always near zero before write-offs hit, it's too conservative. Review annually at minimum. > **Customer pays after write-off, reversal skipped.** Recording the cash receipt without reversing the write-off overstates the allowance balance and understates bad debt recovery. Always reverse first. > **Direct write-off on GAAP books with material bad debt.** Acceptable for small businesses where bad debt is genuinely immaterial. Not acceptable for businesses with significant uncollectible history. The distinction matters in audited financials and bank covenant calculations. ### Frequently Asked Questions **What is the difference between bad debt expense and the allowance for doubtful accounts?**Bad debt expense is the income statement account that records the cost of uncollectible invoices. Allowance for doubtful accounts is the balance sheet contra-AR account that reduces gross AR to its net realizable value. Under the allowance method, recording bad debt expense creates or increases the allowance balance. When a specific invoice is written off, only the allowance and AR are affected, not bad debt expense again. **Is bad debt expense tax deductible?**Generally yes, under IRC §166, when a debt becomes totally worthless. The IRS requires the direct write-off method for tax purposes, meaning you can only deduct the amount in the year the debt becomes uncollectible. Timing differences between your GAAP books (allowance method) and your tax return (direct write-off) create temporary book-tax differences. Confirm specifics with your CPA. **Does writing off an invoice affect cash flow?**No. Writing off a bad debt removes an asset (AR) from the balance sheet and records an expense, but there's no cash movement. The cash was never received. On the cash flow statement, the write-off appears as a non-cash adjustment to reconcile net income to operating cash flow. **Can I use the allowance method for taxes?**Generally no. The IRS requires the specific charge-off (direct write-off) method for tax purposes under IRC §166. The allowance method's estimated expense isn't deductible because the debt hasn't actually become worthless yet. This is a common source of book-tax differences for businesses using GAAP books. **What account does bad debt expense go on the income statement?**Bad debt expense is typically classified as a selling expense or general and administrative expense, depending on the nature of the business. Some businesses classify it under operating expenses as a separate line item. The account should be consistent period-over-period so trends in bad debt are visible in the income statement. --- Bad debt expense is one of those entries that gets skipped until the AR aging report becomes embarrassing. The right workflow is simple: review aging monthly, document your write-off policy, and use the method that matches your client's reporting requirements. [Get started with Growthy](/signup?utm_content=bad-debt-expense). ### [Accumulated Depreciation: What It Is & How It Appears on the Balance Sheet](https://growthy.com/blog/accumulated-depreciation): Accumulated depreciation is the running total of all depreciation charged against a fixed asset. It reduces the asset's carrying value on the balance sheet. ## Accumulated Depreciation: What It Is & How It Appears on the Balance Sheet Your client paid $50,000 for a piece of equipment three years ago. The balance sheet still shows it under assets, but the number next to it isn't $50,000. It's $32,000. The difference sits in a separate line called accumulated depreciation. That line tells a specific story: how much of the asset's cost the business has already expensed. Every month the bookkeeper records depreciation, that balance grows. After a few years, it can be substantial, and it shows up right underneath the asset it tracks. > **What is accumulated depreciation?** > > Accumulated depreciation is the total amount of depreciation expense recorded on a fixed asset from the purchase date through the current period. It's a contra asset account, meaning it carries a credit balance and directly offsets the asset's original cost on the balance sheet. For example, a $50,000 machine with $18,000 of accumulated depreciation has a net book value (NBV) of $32,000. The balance increases each period via a depreciation adjusting journal entry and is removed entirely when the asset is disposed of. ### Key Takeaways - **Contra asset account** - accumulated depreciation carries a credit balance, opposite of the fixed asset it offsets - **Balance grows every period** - each monthly depreciation entry adds to the running total, often reaching 60-80% of asset cost by end of useful life - **Net book value formula** - gross PP&E cost minus accumulated depreciation equals NBV; a $50,000 asset with $18,000 accumulated = $32,000 NBV - **NBV is not market value** - NBV reflects unrecovered cost only; a fully depreciated asset may still be worth real money - **Cleared on disposal** - when you sell or scrap an asset, the accumulated depreciation balance for that asset must be removed from the books - **Grows until useful life ends** - once fully depreciated, the balance equals original cost and the NBV hits zero (or salvage value) Understanding accumulated depreciation starts with knowing why it exists. A fixed asset like a vehicle or computer doesn't expense itself in one shot. GAAP requires spreading that cost over the asset's useful life, and accumulated depreciation is where all those periodic charges pile up. The [journal entry](/blog/journal-entry) that records each period's depreciation feeds directly into this account. ### What Accumulated Depreciation Actually Is Accumulated depreciation is a contra asset account. "Contra" means it works against another account, in this case the fixed asset account it's paired with. When a company buys a $30,000 delivery van, that cost goes on the balance sheet as an asset. Over time, the van loses value through use and age. GAAP matches that cost to the periods it benefits. Each month, the bookkeeper records depreciation expense, and the offset goes into accumulated depreciation. The asset account stays at $30,000 (original cost, never changes). The accumulated depreciation account builds from $0 upward. After year one of a 5-year straight-line schedule, accumulated depreciation hits $6,000 and the van's NBV is $24,000. This structure keeps the original cost visible while also showing how much has been expensed. That's why both numbers appear on the balance sheet rather than just one. ### How It Appears on the Balance Sheet Accumulated depreciation sits in the PP&E section of the balance sheet, directly below the asset it offsets. The layout looks like this: > **PP&E (Balance Sheet Presentation)** > > Equipment, at cost: $50,000 > Less: Accumulated depreciation: ($18,000) > Net book value: $32,000 The accumulated depreciation line always appears as a negative (or in parentheses) because it's subtracting from the gross asset value. Some balance sheets present only the NBV line without showing gross cost and accumulated depreciation separately, but the accounts still exist in the general ledger. When you're reviewing a client's [balance sheet](/blog/balance-sheet), a large accumulated depreciation balance relative to gross PP&E tells you the asset base is aging. It's a signal worth noting during a review. ### The Monthly Depreciation AJE Every month, the bookkeeper records a [depreciation adjusting journal entry](/blog/adjusting-journal-entry). The entry is always the same structure: > **Depreciation AJE** > > Debit: Depreciation Expense (income statement) > Credit: Accumulated Depreciation (balance sheet) For the $30,000 van on a 5-year straight-line schedule with no salvage value, monthly depreciation is $500 ($30,000 / 60 months). Each month: debit Depreciation Expense $500, credit Accumulated Depreciation $500. This entry does two things at once. It moves $500 of cost to the income statement as an expense for the current period, and it grows the accumulated depreciation balance by $500 on the balance sheet. Over 60 months, accumulated depreciation reaches $30,000 and the NBV drops to zero. Most accounting software automates this once you set up the asset record and depreciation schedule. But the entry should still be reviewed monthly. The [fixed assets](/blog/fixed-assets) schedule is the source of truth for what should be posting. ### Disposal: Clearing the Balance When an asset is sold, scrapped, or retired, accumulated depreciation for that specific asset must be removed from the books. This is where errors happen. The disposal entry typically involves three accounts: removing the original cost, removing the accumulated depreciation, recording the proceeds received (if any), and recognizing any gain or loss on the difference. If a fully depreciated $10,000 computer (accumulated depreciation: $10,000, NBV: $0) is scrapped with no proceeds, the entry is: debit Accumulated Depreciation $10,000, credit Equipment $10,000. Net effect on the balance sheet is zero because both sides cancel. If the same computer sells for $500 as scrap: debit Cash $500, debit Accumulated Depreciation $10,000, credit Equipment $10,000, credit Gain on Disposal $500. Leaving the accumulated depreciation balance on the books after disposal is a common error. It inflates the contra account and produces a balance sheet that doesn't tie to the actual assets in service. ### NBV vs. Fair Market Value Net book value and fair market value are completely different numbers. NBV is unrecovered cost. FMV is what a buyer would pay today. A warehouse purchased in 2005 for $800,000 may show NBV of $100,000 after decades of depreciation. Its FMV could be $2 million or more depending on the market. This distinction matters in several contexts. Lenders evaluating collateral look at FMV, not NBV. Business valuations for M&A or buy-sell agreements require a separate appraisal. Insurance claims use replacement cost or FMV, not book value. The balance sheet is not an asset valuation document. It tracks unrecovered cost. Understanding that prevents misreading a low NBV as a signal that assets are worth little. ### Common Gotchas **Not clearing accumulated depreciation on disposal.** When a fixed asset leaves the books, its paired accumulated depreciation account must be removed at the same time. Leaving it behind creates a phantom credit balance that grows the contra account artificially. **Mistaking NBV for market value.** A delivery truck with $2,000 NBV and $58,000 accumulated depreciation is not worth $2,000. NBV reflects how much of the original cost hasn't been expensed yet, nothing more. **Over-depreciating assets.** If depreciation entries continue posting after an asset is fully depreciated, accumulated depreciation exceeds original cost. That's a red flag: the balance should never exceed the gross asset value it offsets. **Mixing up depreciation expense and accumulated depreciation.** Depreciation expense is the income statement account for the current period's charge. Accumulated depreciation is the balance sheet account holding the running total. They're related but not interchangeable. ### How Growthy Handles Accumulated Depreciation Depreciation entries are systematic and repeatable, exactly the kind of task where manual work creates risk. ### Frequently Asked Questions **What's the difference between depreciation expense and accumulated depreciation?** Depreciation expense is the amount recorded in the current period on the income statement. Accumulated depreciation is the total of all depreciation recorded since the asset was placed in service. Depreciation expense reduces net income each period; accumulated depreciation reduces the asset's carrying value on the balance sheet. **Can accumulated depreciation exceed the original cost of an asset?** No. Accumulated depreciation should never exceed the gross cost of the asset it offsets. When an asset is fully depreciated, accumulated depreciation equals original cost and NBV equals zero (or salvage value). If accumulated depreciation exceeds cost, there's an error in the depreciation schedule or the asset should have been retired. **What happens to accumulated depreciation when you sell an asset?** It gets removed from the books as part of the disposal entry. You debit accumulated depreciation for the full balance on that asset, credit the asset account for original cost, record any cash proceeds received, and recognize the gain or loss on the difference. After the entry, neither the asset nor its accumulated depreciation account remains. **Why is accumulated depreciation a credit balance?** Because it's a contra asset account. Assets carry debit balances. Contra accounts offset them, so they carry the opposite balance. Accumulated depreciation credits grow the account, which increases the offset against the gross asset cost and reduces NBV. **Does land have accumulated depreciation?** No. Land is not depreciated because it has an indefinite useful life. Only depreciable assets like buildings, equipment, vehicles, and furniture carry accumulated depreciation. Land stays at its original cost indefinitely unless there's an impairment. --- Accumulated depreciation is one of those accounts that sits quietly on the balance sheet every month. It's easy to overlook until it isn't: a missed disposal clearance, a fully depreciated asset still posting entries, or a client confusing NBV with what their equipment is worth. Getting familiar with it makes balance sheet reviews faster and month-end closes cleaner. [Get started with Growthy.](/signup?utm_content=accumulated-depreciation) ### [Owner's Equity: What It Is & How Bookkeepers Track It](https://growthy.com/blog/owners-equity): Owner's equity is what's left after liabilities. Here's how bookkeepers track it across sole props, LLCs, S-Corps, and C-Corps. ## Owner's Equity: What It Is & How Bookkeepers Track It A client calls and says their bank balance looks fine, but something feels off on the balance sheet. You pull it up. The equity section has three different accounts that don't agree with last year's numbers, and there's no clear record of what the owner contributed in January. That's an equity tracking problem. It's one of the most common things bookkeepers get called in to clean up, and it's avoidable with the right structure from day one. > **What is owner's equity?** > > Owner's equity is the owner's claim on business assets after all liabilities are paid. It equals Assets minus Liabilities. For a business with $150,000 in assets and $90,000 in liabilities, equity is $60,000. Equity grows when the business earns income or the owner contributes capital. It shrinks when the business records a loss or the owner takes money out. The exact accounts used depend on entity type: sole proprietorships use a single equity account, LLCs track equity per member, and corporations split equity into capital stock, additional paid-in capital, retained earnings, and distributions. ### Key Takeaways - **Accounting equation** - Assets = Liabilities + Equity; equity is the residual, not a separate calculation - **Entity structure determines account names** - sole prop uses Owner's Equity; LLC uses Member Equity per member; S-Corp/C-Corp uses Capital Stock + APIC + Retained Earnings - **Capital contributions credit equity** - initial investment and any additional cash or assets the owner puts in - **Owner draws reduce equity** - sole prop draws and LLC member draws are NOT expenses; they are equity reductions - **Retained earnings accumulate net income** - each year's net income closes into retained earnings minus any distributions - **Year-end rollforward must tie** - Beginning Equity + Contributions + Net Income minus Distributions = Ending Equity; if it doesn't tie, something is miscoded Owner's equity sits at the intersection of every major financial statement. Understanding the [full glossary of bookkeeping terms](/topics/glossary) gives you the foundation to explain it to clients clearly. ### What Owner's Equity Actually Is Owner's equity is not cash. That's the first thing to clarify with new clients. Equity is the owner's stake in the business measured on paper. A business can have $60,000 in equity and $200 in the checking account. The two numbers come from completely different places. The accounting equation frames it cleanly: > **Assets = Liabilities + Equity** > > Flip it and you get: Equity = Assets minus Liabilities. Every asset the business owns is financed by either a creditor (liability) or the owner (equity). There's no third option. Equity changes with four events: 1. Owner puts money in (increases equity) 2. Business earns net income (increases equity) 3. Owner takes money out (decreases equity) 4. Business records a net loss (decreases equity) That's it. Every equity movement traces back to one of those four. ### Equity Accounts by Entity Type The same concept carries different account names depending on how the business is structured. Getting this right matters because incorrect account names confuse tax preparers and create reconciliation headaches at year-end. #### Sole Proprietorship - **Owner's Equity** (or Owner's Capital): the permanent equity account - **Owner's Draw**: tracks amounts the owner withdraws during the year - **Owner's Contribution**: tracks amounts the owner puts in during the year At year-end, the draw and contribution accounts close into the main equity account. The balance sheet shows net equity, not three separate running totals. #### LLC (Single-Member or Multi-Member) - **Member Equity** (one account per member): tracks each member's capital balance - **Member Draw** (one per member): withdrawals - **Member Contribution** (one per member): additional capital put in Single-member LLCs are disregarded entities for tax purposes, but bookkeepers should still track equity separately per member if there are any outside investors or if the operating agreement allocates profits differently than 50/50. Merging everything into one account loses the audit trail. #### S-Corporation - **Capital Stock**: par value of shares issued - **Additional Paid-In Capital (APIC)**: amount paid above par - **Retained Earnings**: cumulative net income not distributed - **Distributions**: amounts paid to shareholders during the year S-Corp shareholders have a basis. Distributions exceeding basis are taxable events, not just bookkeeping entries. Keeping distributions tracked in their own account makes the CPA's year-end work much cleaner. #### C-Corporation Same structure as S-Corp (Capital Stock, APIC, Retained Earnings, Distributions/Dividends), but dividends are not deductible and create a double-taxation situation. The bookkeeper's job is the same: track each component cleanly so the tax preparer can see exactly what happened. ### Capital Contributions A capital contribution is any value the owner puts into the business. Cash is the most common, but it includes equipment, inventory, real estate, or any other asset transferred from personal to business. The journal entry is straightforward: > Debit the asset received (Cash, Equipment, etc.) > Credit the Owner's Equity or Member Contribution account Document every contribution with a memo: date, amount, form (cash vs. in-kind), and the owner's signature if the business has multiple members. "Owner put in $10,000" is not documentation. A signed capital contribution agreement is. Initial contributions set opening equity. Additional contributions made during the year should be recorded as they occur, not lumped at year-end. Year-end lumping creates timeline problems when you're trying to reconcile a specific quarter. ### Owner Draws vs. Distributions vs. Dividends These three terms describe the same economic event (owner takes money out) but they carry different bookkeeping and tax treatment depending on entity type. **Owner draws** are for sole proprietors and LLC members. They reduce equity. They are NOT expenses. If a client's bookkeeper is coding draws to meals or officer compensation, that's a misclassification that will cause problems at tax time. **Distributions** are for S-Corp shareholders. They also reduce equity. They are not W-2 wages. S-Corps must pay reasonable compensation to shareholder-employees through payroll BEFORE taking distributions. The bookkeeper tracks both payroll and distributions, and they should never be confused. **Dividends** are for C-Corp shareholders. Recorded as a debit to retained earnings, credit to dividends payable (or cash if paid immediately). The common thread: none of these are expenses. They never hit the income statement. They live entirely in the equity section. See the detailed breakdown in [owner's draw accounting](/blog/owner-draw) and how it connects to [retained earnings](/blog/retained-earnings). ### How Retained Earnings Work Retained earnings are the accumulated total of every year's net income, minus every year's distributions since the business started. At year-end close, the bookkeeper closes net income into retained earnings: > Debit Income Summary (or Net Income) > Credit Retained Earnings Then distributions close out: > Debit Retained Earnings > Credit Distributions (clearing the annual distribution account) The result: retained earnings grows by the amount the business kept, shrinks by what was paid out. For a business that earned $80,000 in net income and paid $30,000 in distributions, retained earnings increases by $50,000. Retained earnings can go negative. That happens when cumulative losses exceed cumulative profits, or when distributions exceed cumulative earnings. Negative retained earnings is not automatically a crisis, but it needs an explanation in the client file. Read more about [retained earnings](/blog/retained-earnings) and how they flow through the [balance sheet](/blog/balance-sheet). ### The Equity Rollforward at Year-End Every year-end close should include an equity rollforward. It's a simple reconciliation that catches miscoded transactions before they hit the tax return. The formula: > Beginning Equity- Capital Contributions (year)- Net Income (per P&L) > minus Owner Draws / Distributions (year) > = Ending Equity (should match balance sheet) If the ending equity on your rollforward doesn't match what's on the balance sheet, something is miscoded. Common causes: - Owner draw coded as an expense (inflates expenses, understates equity) - Capital contribution missing or coded as income (inflates revenue) - Prior-year adjustment posted without an equity account entry Run this reconciliation before you close the books. Fix discrepancies then, not after the CPA asks why the equity section doesn't make sense. For a full walkthrough of how equity ties into the full financial picture, see [balance sheet](/blog/balance-sheet) and [net income](/blog/net-income). ### Negative Equity: Warning Signs Negative equity is not always a problem, but it should always have an explanation. Legitimate reasons for negative equity: - Business is in early-stage losses (common for startups investing before revenue) - S-Corp has paid distributions exceeding current-year earnings but has positive retained earnings overall - C-Corp paid dividends in excess of current-year income (draws from prior accumulated earnings) Red flags that require investigation: - Sole prop equity is negative and there's no clear record of losses justifying it - Equity keeps decreasing despite positive net income (owner draws coded as expenses) - Retained earnings is negative but the business has been profitable for years > **Note:** Negative equity on an S-Corp balance sheet can signal that shareholder basis has gone to zero. Distributions beyond basis are taxable as capital gains. That's a conversation for the CPA, but the bookkeeper needs clean records to make that calculation possible. ### Common Errors by Entity Type **Sole Proprietorships:** - Owner draws coded as salary or owner compensation expense - Personal expenses mixed with business expenses without a corresponding equity entry - Capital contributions coded as business income (inflates revenue, creates phantom tax liability) **LLCs:** - Single equity account for multi-member LLC (no per-member tracking, operating agreement unenforceable) - Member draw treated as guaranteed payment (different tax treatment) - Contributions and draws lumped together with no memo trail **S-Corporations:** - Distribution recorded without verifying reasonable compensation was paid first - Distribution exceeding shareholder basis not flagged for CPA review - APIC and Capital Stock accounts collapsed into one line **C-Corporations:** - Dividends not separated from ordinary distributions - Retained earnings not updated after annual close - Stock issuances not tracked with supporting documents (board resolutions, cap table) ### How Growthy Handles Owner's Equity Growthy suggests categories for equity transactions. Owner draws are a common miscategorization target. Auto-categorizes high-confidence transactions. You review the rest. Built by a CPA firm partner who has cleaned up equity section messes on too many year-end engagements. ### Frequently Asked Questions **Is owner's equity the same as owner's draw?** No. Owner's equity is the total of the owner's stake in the business. Owner's draw is one transaction that reduces equity when the owner takes money out. Think of equity as the account balance and draw as a withdrawal from that balance. **Can owner's equity be negative?** Yes. Equity goes negative when cumulative losses plus cumulative draws exceed cumulative contributions plus cumulative income. It's common in early-stage businesses or when an owner has taken distributions beyond earnings. Negative equity requires documentation and, for S-Corps, a basis calculation review with the CPA. **Where does owner's equity appear on financial statements?** Equity appears on the balance sheet in the equity section. It also shows up in the statement of equity (or statement of changes in equity), which tracks the rollforward from beginning to ending balance. Net income feeds equity through the income statement closing process. **How is members equity different from owner's equity?** Functionally the same concept, different name. LLCs use "members equity" to reflect that the owners are called members. The key difference is that multi-member LLCs track equity per member, not as one combined total, to honor the operating agreement's allocation rules. **What happens to equity when a business takes a loan?** Nothing directly. A loan increases both assets (cash) and liabilities (loan payable). Equity doesn't change at the time of borrowing. Equity changes when the loan proceeds are used for expenses (decreases net income, reduces equity) or when loan principal is repaid from earnings. --- Ready to keep equity accounts clean without the year-end scramble? [Get started with Growthy](/signup?utm_content=owners-equity). For adjacent close-cycle terms, see the full [glossary](/topics/glossary). ### [Net Income: What It Is & How Bookkeepers Calculate It](https://growthy.com/blog/net-income): Net income is the bottom line of the P&L. Here's the formula, how it differs from gross profit and EBITDA, and where it flows at year-end close. Your client's P&L shows $42,000 in net income. They're celebrating. Then you notice the tax provision is missing and two owner draws got booked as operating expenses. The real number is $61,000, but the retained earnings rollforward won't tie until you fix it. Net income is the final number on the income statement. It determines the equity rollforward, the tax filing starting point, and what the owner thinks they made. Getting it right at close isn't optional. > **What is net income?** > > Net income is the profit remaining after subtracting all costs from total revenue: cost of goods sold, operating expenses, interest, and income taxes. The formula is: Revenue minus COGS equals gross profit, minus operating expenses equals operating income, minus interest and taxes equals net income. For a business with $500,000 in revenue and $458,000 in total costs, net income is $42,000. Net income flows directly to retained earnings on the balance sheet at year-end close. ## Key Takeaways - **Net income is the bottom line** - it's what's left after every cost is subtracted from total revenue - **The formula has four layers** - Revenue minus COGS minus OpEx minus Interest minus Taxes equals net income - **Net income differs from cash flow** - accrual books can show a $42,000 profit while the bank balance drops $15,000 - **At year-end, net income rolls to retained earnings** - the balance sheet equity section must tie to the income statement exactly - **Owner draws do not reduce net income** - they're equity transactions, not business expenses - **Missing tax provision is the most common close error** - it overstates net income until the CPA adjusts ## What Net Income Actually Is Net income is the final line of the [income statement (P&L)](/blog/income-statement-pl). It's what's left after the business pays for everything: inventory, payroll, rent, software subscriptions, loan interest, and taxes. It's often called the bottom line because it sits at the bottom of the income statement. Every line above it reduces revenue until you arrive at this number. Bookkeepers who work on accrual books will recognize it as the figure that feeds the [retained earnings](/blog/retained-earnings) account at period-end close. Net income is not cash. A business on accrual accounting records revenue when earned and expenses when incurred, regardless of when cash moves. You can have strong net income and a negative bank balance if receivables are slow. ## The P&L Walkthrough: Revenue to Net Income The income statement builds net income in layers. Here's how it works from top to bottom. **Revenue:** All income the business earned in the period. For a product company, that's gross sales minus returns. For a service firm, it's fees billed. **Cost of Goods Sold (COGS):** Direct costs tied to delivering the product or service: materials, direct labor, merchant processing fees. Subtract COGS from revenue and you get gross profit. [**Gross Profit**](/blog/gross-profit)**:** Revenue minus COGS. A business with $500,000 in revenue and $200,000 in COGS has $300,000 in gross profit. This is the margin available to cover overhead. **Operating Expenses:** Overhead not tied directly to production. Rent, utilities, salaries for non-production staff, software, marketing. Subtract operating expenses from gross profit and you get operating income (also called EBIT: earnings before interest and taxes). **Interest:** Loan interest, line of credit fees. Subtract from operating income. **Taxes:** Income tax provision. Subtract from pre-tax income and you arrive at net income. The sequence: Revenue minus COGS = Gross Profit. Gross Profit minus OpEx = Operating Income. Operating Income minus Interest minus Taxes = Net Income. ## Net Income vs. Gross Profit vs. Operating Income vs. EBITDA These four metrics come from the same P&L but measure different things. Bookkeepers get asked about all of them. **Gross profit** stops before operating expenses. It tells you how efficiently the business converts revenue into margin before overhead. A 60% gross margin on $500,000 in revenue means $300,000 available for operating costs and profit. **Operating income** subtracts operating expenses from gross profit. It reflects the business's core earnings from operations before financing costs and taxes. Two businesses in the same industry with similar revenue can have very different operating incomes if their overhead structures differ. **EBITDA** (Earnings Before Interest, Taxes, Depreciation, and [Amortization](/blog/amortization)) adds back depreciation and amortization to operating income. Analysts use it as a proxy for operating cash generation because it strips out non-cash charges. It's not a GAAP metric and won't appear as a line on the P&L. Bookkeepers calculate it from the financials on request. **Net income** is the most complete measure: everything counts, including interest, taxes, and non-cash charges like depreciation. It's the number that flows to retained earnings. ## Accrual vs. Cash-Basis Net Income This distinction causes more confusion than any other on the P&L. On **accrual books**, revenue is recognized when earned and expenses when incurred. A $50,000 invoice sent in December and paid in January shows as December revenue. Expenses follow the same logic. Net income on accrual books reflects economic activity for the period. On **cash-basis books**, revenue is recorded when cash is received and expenses when cash is paid. The December invoice doesn't hit revenue until January's payment clears. Cash-basis P&Ls are simpler but can distort profitability within a period. The common error: a bookkeeper runs the cash-basis P&L in QuickBooks when the client's canonical books are on accrual. The numbers won't match the CPA's work. Always confirm the reporting basis before pulling financials for tax or advisory purposes. ## How Net Income Flows to Retained Earnings This is the close gate that ties the income statement to the [balance sheet](/blog/balance-sheet). At the end of each accounting period, net income (or net loss) flows to retained earnings in the equity section of the balance sheet. The formula: Prior Retained Earnings plus Net Income minus Owner Distributions equals Ending Retained Earnings. At year-end close, the bookkeeper must verify this rollforward ties exactly to the income statement. If the balance sheet retained earnings don't match the prior period balance plus current-year net income minus distributions, something is wrong. Common causes: a journal entry posted directly to retained earnings, an owner draw booked as an expense instead of a draw, or a prior-year adjustment that didn't flow correctly. Retained earnings that don't tie is a hard stop before sending financials. The CPA can't begin the return until this reconciles. See the [cash flow statement](/blog/cash-flow-statement) for the bridge between net income and actual cash: the indirect method starts with net income and adjusts for non-cash items and working capital changes. ## Common Errors That Distort Net Income **Owner draws coded as expenses.** Owner distributions are equity transactions, not operating expenses. When a bookkeeper categorizes an owner draw as payroll or consulting expense, it reduces net income incorrectly. The fix: reclassify to an owner's draw or distribution equity account. This is one of the most common errors on small business books. **Missing tax provision.** On accrual books, the income tax provision should be estimated and booked as an adjusting entry at period-end. Many bookkeepers skip it, especially on monthly closes. Net income is overstated until the CPA books the year-end tax accrual. If you're preparing monthly financials for tax planning, include an estimated provision. **Cash-basis P&L reported as accrual.** QuickBooks defaults to cash basis in some reports. A client reviewing accrual financials with the bank often sees a different number than the QBO report you sent. Verify the reporting basis matches the engagement scope before every delivery. ## How to Find Net Income in QuickBooks Online In QBO: Reports > Profit and Loss. Set the date range, confirm the Accounting Method (Cash or Accrual) in the report header, and run. Net income appears at the bottom as the final line. To drill into what's driving a high or low net income, click any line to see the underlying transactions. For the retained earnings tie, pull Reports > Balance Sheet and compare the equity section to the P&L bottom line. If the P&L net income doesn't match what the balance sheet equity movement implies, look for manual journal entries posted directly to retained earnings. QBO doesn't restrict those. ## Common Gotchas **Cash-basis P&L when accrual is the canonical books.** QuickBooks remembers your last report setting, not your client's engagement scope. A single click on "Cash" vs "Accrual" shifts net income by thousands on a business with significant AR or AP. Set the default basis per client during onboarding and confirm it before every send. **Owner draws as expenses.** A $5,000 monthly owner draw miscoded as officer compensation or consulting expense reduces net income by $5,000 every month. At year-end, the CPA finds $60,000 in phantom expenses. The fix is a reclassification journal entry, but it takes time to rebuild trust with the client who thought they were profitable. **Missing tax provision.** No tax accrual means net income is overstated on every monthly close. When the CPA books the year-end provision, net income drops and the retained earnings rollforward requires adjusting every period-end balance sent to the client during the year. ## Frequently Asked Questions **What's the difference between net income and gross profit?** Gross profit is revenue minus cost of goods sold. It measures production efficiency before overhead. Net income subtracts all remaining costs: operating expenses, interest, and taxes. A business can have strong gross profit and negative net income if overhead is too high relative to gross margin. **Can net income be positive while cash flow is negative?** Yes, frequently on accrual books. If a business invoices $100,000 in December but collects in January, net income includes the revenue in December while cash flow shows nothing until January. Accrual net income and cash flow diverge whenever receivables, payables, or deferred revenue are significant. The cash flow statement reconciles the gap. **Where does net income go at year-end?** Net income closes to retained earnings on the balance sheet. The prior retained earnings balance plus current-year net income minus any distributions equals the new retained earnings balance. This rollforward must tie exactly to the income statement before financials are final. **Why don't owner draws reduce net income?** Owner draws (for sole proprietors, partnerships, and S-corps) are equity transactions, not operating expenses. The owner is taking money out of the business, but that's not a cost of running it. Draws reduce the equity section of the balance sheet, not the P&L. Coding draws as expenses artificially reduces net income and can distort tax estimates. **What is the net income formula?** Revenue minus COGS equals Gross Profit. Gross Profit minus Operating Expenses equals Operating Income. Operating Income minus Interest minus Taxes equals Net Income. All five components come from the income statement. The tax line on accrual books should reflect an estimated provision, not just cash taxes paid. --- Want cleaner P&L numbers? [Get started with Growthy](/signup?utm_content=net-income). See [Growthy's bookkeeping features](/ai-bookkeeping#features). For more close-cycle definitions, see the full [glossary](/topics/glossary). ### [Credits and Debits: What They Are & How Bookkeepers Use Them](https://growthy.com/blog/credits-and-debits): Every transaction hits at least 2 accounts. Credits and debits are the left/right columns that keep books balanced. Here's what that actually means. ## Credits and Debits: What They Are & How Bookkeepers Use Them Most people learn the word "debit" from a bank card. Most people learn "credit" from a credit card statement. Neither of those meanings transfers to accounting. When I'm reviewing books with a new client and something is off, the cause is almost always a misapplied debit or credit rooted in banking-app intuition. Here's what the terms actually mean, why the left/right convention exists, and how to use both correctly every time. > **What are credits and debits in accounting?** > > A debit is an entry on the left side of a ledger account. A credit is an entry on the right side. Every transaction requires at least 1 debit and 1 credit, and the total dollar amount of debits must equal the total dollar amount of credits. Whether a debit increases or decreases an account depends on the account type: assets and expenses normally carry debit balances; liabilities, equity, and revenue normally carry credit balances. This left/right system is double-entry bookkeeping, formalized by Luca Pacioli in 1494. Every financial statement you produce starts here. ### Key Takeaways - **Every transaction needs at least 2 entries** - one debit and one credit, and the amounts must be equal before the entry posts. - **Debits increase assets and expenses** - they also decrease liabilities, equity, and revenue accounts. - **Credits increase liabilities, equity, and revenue** - they also decrease assets and expenses. - **DEAD/CLER is the fast mnemonic** - Debits = Expenses, Assets, Drawing; Credits = Liabilities, Equity, Revenue. - **Banking language is the opposite** - when your bank says "we credited your account," your cash (an asset) went up, which is a debit in your general ledger. - **Contra accounts break the normal pattern** - accumulated depreciation is an asset account that normally carries a credit balance, not a debit. The [general ledger](/blog/general-ledger) is where every debit and credit entry lives. Understanding normal balances is what makes it readable. ### A Brief History: Why the Left/Right Convention Exists Luca Pacioli, an Italian friar and mathematician, documented double-entry bookkeeping in 1494 in his book *Summa de Arithmetica*. He didn't invent it. Merchants in Venice had used the system for roughly 200 years before he wrote it down. What he did was codify the rules so that they could be taught consistently. The key insight: every economic event affects at least 2 accounts. A business sells goods for cash. Cash goes up. Revenue goes up. Two accounts, two entries. Record only one side and the ledger goes out of balance. The trial balance tells you immediately if you missed something. The left/right columns (debit/credit) became the physical representation of this two-sided reality. The convention has stayed identical for 530 years. QBO, Xero, and every other accounting platform still follows it under the hood. ### The 5 Account Types and Normal Balances There are 5 types of accounts in a standard chart of accounts. Each one has a "normal balance," which is the side (debit or credit) that increases it. **Assets** are things the business owns: cash, [accounts receivable](/blog/accounts-receivable), equipment, inventory. Normal balance: **debit**. To increase an asset, debit it. To decrease it, credit it. **Liabilities** are things the business owes: [accounts payable](/blog/accounts-payable), loans, credit card balances, deferred revenue. Normal balance: **credit**. To increase a liability, credit it. To decrease it, debit it. **Equity** is the owner's stake in the business: paid-in capital, retained earnings, owner's draw. Normal balance: **credit**. To increase equity, credit it. Draws decrease equity, so a draw is a debit. **Revenue** is money earned from operations: sales, service income, interest income. Normal balance: **credit**. To record revenue, credit it. Refunds and returns reduce revenue, so those are debits. **Expenses** are costs incurred to run the business: rent, payroll, utilities, cost of goods sold. Normal balance: **debit**. To record an expense, debit it. > **Normal balances summary table:**| Account Type | Normal Balance | Increased By | Decreased By | > | --- | --- | --- | --- | > | Assets | Debit | Debit | Credit | > | Liabilities | Credit | Credit | Debit | > | Equity | Credit | Credit | Debit | > | Revenue | Credit | Credit | Debit | > | Expenses | Debit | Debit | Credit | ### The DEAD/CLER Mnemonic If you blank on normal balances mid-reconciliation, use DEAD/CLER. **DEAD** = Debits increase: **E**xpenses, **A**ssets, **D**rawing (owner's draw) **CLER** = Credits increase: **L**iabilities, **E**quity, **R**evenue I use this mnemonic. It fits on a sticky note and covers every account type you'll encounter in a standard chart of accounts. ### Transaction Examples #### Cash Sale A client pays $500 cash for services rendered. - Debit Cash $500 (asset goes up) - Credit Service Revenue $500 (revenue goes up) Both sides equal $500. The entry posts. The [trial balance](/blog/trial-balance) stays in balance. #### Accounts Receivable Collection A client who owed you $1,200 pays the invoice. - Debit Cash $1,200 (asset goes up) - Credit Accounts Receivable $1,200 (asset goes down) Two assets. One goes up, one goes down. Net effect on total assets: zero. That's correct. You already recorded the revenue when you sent the invoice. #### Expense Payment You pay $800 in rent for the month. - Debit Rent Expense $800 (expense goes up) - Credit Cash $800 (asset goes down) Expenses are debits. Cash going out is a credit to cash. This is where banking intuition gets people: your bank statement shows a debit when cash leaves, but in your general ledger, cash leaving is a credit to the cash account. #### Recording a Bill (Unpaid) You receive a $600 utility bill you'll pay next month. - Debit Utilities Expense $600 (expense goes up) - Credit Accounts Payable $600 (liability goes up) No cash moved. You recorded the expense now, in the period it belongs to. This is accrual accounting: the foundation of every set of GAAP-compliant books. See [double-entry bookkeeping](/blog/double-entry-bookkeeping) for a deeper look at why this matters at month-end. ### Contra Accounts: The Exception to Normal Balances A contra account reduces the balance of its paired account. The most common one bookkeepers encounter: **accumulated depreciation**. [Accumulated depreciation](/blog/accumulated-depreciation) is paired with a fixed asset (equipment, vehicles, buildings). It's classified as an asset account, but it carries a **credit** balance. That seems backward. Assets normally have debit balances. But accumulated depreciation exists specifically to offset the gross value of the asset, so its credit balance reduces the net asset value shown on the balance sheet. When you record monthly depreciation: - Debit Depreciation Expense (expense goes up) - Credit Accumulated Depreciation (contra-asset increases, reducing net asset value) Two other common contra accounts: **Sales Returns and Allowances** (contra-revenue, carries a debit balance) and **Owner's Draw** (sometimes treated as contra-equity). Any time a balance looks "wrong" for its account type, check whether it's a contra account before assuming an error. ### Common Confusions: Banking Language vs. Accounting Language This is the most frequent question I get from new clients. **"My bank credited my account. Is that a credit in my books?"** No. When a bank credits your account, your cash balance went up. In your ledger, increasing cash (an asset) is a **debit** to the cash account. The bank is describing the transaction from their perspective: your cash is a liability on their books, so increasing it is a credit to them. The same collision happens in reverse. When your bank statement shows a debit (a purchase, a fee, a withdrawal), your ledger entry **credits** cash. Cash left the business, so the asset decreased. **Customer-side language collision:** When a customer says "you gave me a credit on my account," what happened in your books is a credit to Accounts Receivable (reducing what they owe you) and a debit to a revenue or liability account depending on context. The word "credit" is the same, but the accounting treatment depends on the full transaction. > **The fix:** Stop reading debit/credit from your bank feed and start reading it from your chart of accounts. The bank's language describes their books. Yours is different. ### QBO Field Positioning Walkthrough In QuickBooks Online, the debit/credit distinction is mostly hidden from the end user. QBO uses field labels like "Amount," "Payment," and "Deposit" instead. But the underlying journal entries still follow the same rules. When you open the **Journal Entry** screen in QBO (+ New > Journal Entry), you'll see two columns: **Debits** and **Credits**. This is where the normal accounting convention is visible. For standard transactions, QBO applies the entries automatically: - Invoice created: Debit AR, Credit Revenue (you don't see it happen) - Payment received: Debit Cash, Credit AR (QBO posts this when you record the payment) - Bill entered: Debit Expense, Credit AP - Bill paid: Debit AP, Credit Cash If something posts to the wrong account, use the journal entry screen to see the actual debit/credit split. That's often where you spot a mis-categorization or a reversed entry. See [journal entry](/blog/journal-entry) for how to construct and review these directly. ### Gotchas **Reverse-sign entries.** A negative debit is functionally a credit, and vice versa. Some imports and integrations post entries with negative amounts rather than switching debit/credit sides. Both formats produce the same math, but the presentation can obscure what's happening. When something looks off in the trial balance, check whether any imported lines carry negative values. **Contra-account confusion.** New bookkeepers sometimes try to debit accumulated depreciation when recording depreciation expense, thinking "debit the asset account." Accumulated depreciation is the contra, not the asset. Debiting it reduces the accumulated depreciation balance, which overstates net asset value. **Customer-language collision.** If a customer says "I see a credit on my invoice," that means their balance with you went down. In your books, Accounts Receivable decreased, which is a credit to AR. The word "credit" maps correctly here, but the double-entry behind it involves a corresponding debit somewhere: a refund liability, a revenue reduction, or a write-off depending on the reason. ### Frequently Asked Questions **What is the difference between a debit and a credit?** A debit is a left-side entry; a credit is a right-side entry. Whether each increases or decreases an account depends on the account type. Assets and expenses increase with debits. Liabilities, equity, and revenue increase with credits. **Why do debits equal credits in every transaction?** Double-entry bookkeeping requires that every transaction affect at least 2 accounts, and the total debits must equal total credits. This keeps the accounting equation (Assets = Liabilities + Equity) permanently in balance. If debits and credits don't match, the transaction isn't complete. **Is a debit always bad and a credit always good?** No. That framing comes from consumer banking. In accounting, a debit to cash means you received money. A credit to revenue means you earned income. The sign depends on which account you're looking at, not whether the event is positive or negative for the business. **What is a normal balance?** The normal balance is the side of the ledger (debit or credit) that increases a given account type. Assets and expenses have normal debit balances. Liabilities, equity, and revenue have normal credit balances. **What happens when an account has a balance on the opposite side from normal?** It could indicate an error (a negative cash balance, for example, usually means an unrecorded transaction). Or it could be a contra account by design (accumulated depreciation carries a credit balance on purpose). Check the account type and context before assuming a mistake. --- If you're spending more time tracing debits and credits than reviewing your clients' actual financial position, [get started with Growthy](/signup?utm_content=credits-and-debits). Growthy suggests categories so you're reviewing decisions, not making them manually. See [how it works](/ai-bookkeeping#features). For adjacent definitions, browse the full [glossary](/topics/glossary). ### [Cash Flow Statement: What It Is & How Bookkeepers Build It](https://growthy.com/blog/cash-flow-statement): The cash flow statement reconciles net income to actual cash movement across operating, investing, and financing activities. ## Cash Flow Statement: What It Is & How Bookkeepers Build It A client calls you in a panic. Their income statement shows $40,000 in net income for the quarter, but they have $3,000 in the bank and can't make payroll. You already know why before you open QBO: the cash flow statement will show negative operating cash flow driven by AR that hasn't collected yet. That's the whole point of a cash flow statement. Net income tells you what you earned on paper. The cash flow statement tells you what actually landed in the account. > **What is a cash flow statement?** > > A cash flow statement (also called the statement of cash flows) is a financial report that shows how cash moved in and out of a business during a period. It has three sections: operating activities (day-to-day business), investing activities (assets bought or sold), and financing activities (loans, owner contributions, distributions). Unlike the income statement, it strips out non-cash items like depreciation and accounts receivable. For a business using accrual accounting, the indirect method starts with net income and makes roughly 5-15 adjustments to arrive at actual cash from operations. ### Key Takeaways - **Three sections** - operating, investing, and financing activities make up every cash flow statement. - **Indirect method is standard** - 95%+ of small businesses use indirect: start with net income, add back depreciation, adjust working capital changes. - **Net income up, cash down is a red flag** - growing AR or inventory build-up can mask a cash problem that the P&L won't show. - **QBO auto-generates it** - if your balance sheet and P&L tie to the bank, QBO's statement of cash flows is reliable. - **Owner contributions go in financing, not operating** - miscoding this overstates operating cash flow and hides how much the business actually generates on its own. - **Inter-account transfers are not cash activity** - moving money from checking to savings shows as both inflow and outflow if coded wrong, doubling the apparent activity. The cash flow statement sits alongside the [income statement (P&L)](/blog/income-statement-pl) and balance sheet as one of the three core financial statements every business needs. Understanding how they connect is the foundation of [accrual vs. cash accounting](/blog/accrual-vs-cash-accounting). ### What a Cash Flow Statement Actually Is A cash flow statement reconciles what the [income statement](/blog/income-statement-pl) reports as earnings to the actual cash change in the bank. Accrual accounting records revenue when earned and expenses when incurred, regardless of when cash moves. That creates a gap. The cash flow statement closes that gap. It starts (in the indirect method) with net income, then backs out or adds back every item that affected net income but didn't move cash, and adjusts for changes in working capital accounts like AR, AP, and inventory. The result is a single number: cash from operating activities. Add cash from investing and financing, and you get the net change in cash for the period. That number should match the difference in your bank balance from the start of the period to the end. Three sections, every time: **Operating activities** covers the cash a business generates from its core operations. Revenue collected, vendors paid, payroll, taxes. This is the most important section. A healthy business generates positive operating cash flow consistently. **Investing activities** covers cash spent on or received from long-term assets. Buying equipment, selling a vehicle, purchasing a software license that gets capitalized. These are one-time or infrequent. Negative investing cash flow isn't always bad because it often means the business is buying assets to grow. **Financing activities** covers cash from loans, owner contributions, loan repayments, and owner distributions. If a business took out a $50,000 SBA loan, that shows here as a cash inflow. If the owner pulled $20,000 in distributions, that's an outflow. ### The Indirect Method: Step by Step The indirect method is how almost every small business cash flow statement gets built. Here's the full walkthrough: Start with **net income** from the bottom of the P&L. Add back **depreciation and **[**amortization**](/blog/amortization). These reduce net income but require no cash outflow in the current period. If depreciation is $8,000 for the year, add $8,000 back. Add back any other **non-cash expenses** (amortization of loan origination fees, stock-based comp if applicable). Now adjust for **working capital changes**: - Accounts receivable**increased** by $15,000? Subtract $15,000. Revenue was recognized but cash didn't arrive yet. - Accounts receivable**decreased** by $10,000? Add $10,000. Old invoices collected, cash came in. - Accounts payable**increased** by $5,000? Add $5,000. Expenses were recorded but cash hasn't gone out yet. - Accounts payable**decreased** by $7,000? Subtract $7,000. Vendors got paid. - Inventory**increased**? Subtract the increase. Cash went out to buy inventory, but it hasn't hit COGS yet. - Prepaid expenses**increased**? Subtract the increase. Cash paid, but expense not yet recognized. The pattern: if a current asset went up, subtract it (cash went out or didn't come in). If a current liability went up, add it (cash didn't go out yet). The sum of net income plus all those adjustments equals **cash from operating activities**. ### Direct Method: When It Shows Up The direct method lists actual cash receipts and payments: cash collected from customers, cash paid to suppliers, cash paid for payroll, cash paid for interest. No starting with net income, no working capital roll. The FASB prefers the direct method because it's more transparent. But it requires a second reconciliation schedule showing net income back to operating cash flow anyway, which doubles the work. Most bookkeepers and their accounting software default to indirect. You'll see direct primarily in larger companies with more reporting resources or specific lender requirements. ### Red Flags Bookkeepers Watch For **Net income rising but operating cash flow falling.** This pattern almost always means one thing: AR is building. Revenue is hitting the P&L, but customers aren't paying. Check the [AR aging](/blog/accounts-receivable) report. If 60-day-plus buckets are growing, it's a collection problem, not a bookkeeping problem. But you need to surface it. **Operating cash flow consistently below net income.** Some gap is normal in a growing business (more customers, more AR). A large, persistent gap, especially in a flat-revenue business, points to inventory build-up or expenses being capitalized that should be expensed. **Financing cash inflows funding operating cash shortfalls every quarter.** This means the business can't sustain itself without owner capital injections or new debt. Not always fatal, but a pattern worth noting in your monthly close review. **Positive operating cash flow that spikes at year-end.** Could mean year-end vendor payables were delayed, skewing the annual view. Cross-check with the [balance sheet](/blog/balance-sheet) to see if AP jumped in December. See also: [net income](/blog/net-income) for the starting point of the indirect method calculation. ### QBO Workflow If your balance sheet and P&L are accurate, QBO generates the cash flow statement automatically. Go to Reports > Cash Flow Statement. It uses the indirect method. Before you rely on it: 1. Confirm the bank accounts are reconciled. Unreconciled transactions distort every[working capital](/blog/working-capital) figure. 2. Check that AR and AP balances on the[balance sheet](/blog/balance-sheet) match what you expect. If they don't, the operating cash flow number will be off. 3. Run the report for a date range that matches your P&L period, not a rolling 30 days. 4. Compare the "net change in cash" at the bottom to the actual change in your bank balance for the period. If they don't agree within a few dollars, you have uncategorized transactions or a miscoded transfer somewhere. QBO's report won't catch errors in how transactions were categorized. If someone coded an owner distribution as an operating expense, the P&L looks worse and the operating cash flow looks better than reality. The statement generates correctly given the data; it can't fix bad data. ### Common Gotchas **Inter-account transfers coded as income or expense.** Transferring $10,000 from a savings account to checking is not cash activity on the cash flow statement. It's a wash. If coded as income in one account and expense in the other, it shows as both inflow and outflow, inflating operating cash flow. Use a transfer account or the built-in transfer function in QBO, not income/expense codes. **Owner contributions miscoded as operating income.** Owner puts $25,000 into the business checking account. If this gets coded as "other income" instead of owner's equity contribution, net income jumps $25,000 and operating cash flow overstates by the same amount. It belongs in financing activities, under equity accounts. **Working-capital roll-up sign errors.** When building the schedule manually, the signs trip people up. Increasing current assets are a use of cash (subtract). Increasing current liabilities are a source of cash (add). Getting it backwards by one line can swing operating cash flow by tens of thousands on a mid-size client. ### How Growthy Handles It Growthy categorizes transactions as they come in, so the underlying data the cash flow statement relies on stays clean at import rather than at close. When a transaction hits "owner contribution" instead of an income account, the financing activities section reflects it correctly. The categorization accuracy on first import is 85%. On returning books, it's also 85%. That accuracy matters for the cash flow statement because every miscategorized transaction is a potential sign error or section misattribution. Built by a CPA firm partner, Growthy is designed for bookkeepers who manage 15-25 client files. Review and approve the categorizations. The cash flow statement builds itself from there. [See how Growthy handles transaction categorization](/ai-bookkeeping#features) ### Frequently Asked Questions **What's the difference between a cash flow statement and a P&L?** The P&L (income statement) shows revenue and expenses on an accrual basis: when earned or incurred, not when cash moved. The cash flow statement adjusts for timing. If you sent a $20,000 invoice in March but collected in April, the P&L shows it in March. The cash flow statement shows the cash arriving in April. Both are right; they're measuring different things. **Why would a profitable business have negative cash flow from operations?** Growth is the most common reason. When a business grows fast, AR and inventory increase faster than profits accumulate. A business doing $500,000 in revenue might carry $80,000 in AR at any time. That's cash tied up in unpaid invoices. Net income can be $40,000 for the quarter while operating cash flow is negative $20,000 because AR grew $60,000. Not a crisis, but it's a cash management challenge. **Does a cash flow statement use accrual or cash basis?** The cash flow statement is a bridge between accrual and cash. The starting point (net income) is accrual-based. The adjustments convert it to cash basis for operating activities. If a client uses pure cash basis accounting, the income statement and cash flow statement from operations will align closely because there's no AR or AP to adjust for. **How often should I run a cash flow statement?** Monthly for active clients. Quarterly at minimum for stable, low-transaction businesses. Year-end only is not enough. A quarterly cash flow statement that shows Q3 operating cash flow has been negative for 2 consecutive quarters gives the business owner time to adjust before a liquidity crisis. **What is the indirect method in simple terms?** Start with net income. Add back anything that reduced net income but didn't require cash (depreciation is the big one). Then adjust for the change in each current asset and current liability: if customers owe you more than last period, subtract the increase; if you owe vendors more, add the increase. The result is operating cash flow. The indirect method is an adjustment table, not a direct record of cash receipts. --- The cash flow statement is where accrual bookkeeping gets honest. Net income is an accounting construct. Cash in the account is what actually matters when payroll is due. Ready to keep your clients' books clean enough that the cash flow statement builds itself? [Start with Growthy](/signup?utm_content=cash-flow-statement). --- *See also: *[*Statement of cash flows glossary terms*](/topics/glossary)* | *[*Income statement (P&L)*](/blog/income-statement-pl)* | *[*Balance sheet*](/blog/balance-sheet)* | *[*Accrual vs. cash accounting*](/blog/accrual-vs-cash-accounting)* | *[*Net income*](/blog/net-income) ### [Balance Sheet: What It Is & How Bookkeepers Read It](https://growthy.com/blog/balance-sheet): Assets = Liabilities + Equity. Learn the 3-section structure, the bookkeeper review sequence, and 4 red flags every month. ## Balance Sheet: What It Is & How Bookkeepers Read It You close the month, run the Balance Sheet report, and the numbers stare back at you. If total assets don't equal liabilities plus equity, something went wrong. The balance sheet is the one report where math either works or it doesn't. One date, three sections, one equation. Here's how to read it fast and what to flag before your client sees it. > **What is a balance sheet?** > > A balance sheet shows what a business owns (assets), owes (liabilities), and the owner's stake (equity) on a specific date. One equation governs it: Assets = Liabilities + Equity. A small business balance sheet typically has 10-30 line items across 3 sections. Unlike the income statement, which covers a period, the balance sheet is a snapshot of a single moment. ### Key Takeaways - **Assets = Liabilities + Equity** - this equation must hold exactly; any imbalance points to a data entry error or forced journal entry - **Three sections, not two** - current assets, fixed assets, current liabilities, long-term liabilities, and equity each need their own review pass - **Point-in-time report** - the balance sheet shows one date; run it for the last day of the month, not a range - **Bookkeeper review runs 5 steps** - bank rec tie, AR aging tie, AP aging tie, fixed asset depreciation check, retained earnings rollforward - **QBO cash vs. accrual toggle matters** - switching basis mid-report changes which transactions appear; confirm the toggle before pulling for a client - **Negative equity isn't always wrong** - owner draws can cause it, but you need documentation before closing --- The [general ledger](/blog/general-ledger) feeds every line on this report. Clean your GL first, then pull the balance sheet. Part of the [Growthy glossary](/topics/glossary). --- ### The Balance Sheet Equation Assets = Liabilities + Equity. If your balance sheet shows $85,000 in total assets, the liabilities plus equity side must also total $85,000. If it doesn't, something's off: a forced journal entry that only hit one side, a sub-account not rolling up correctly, or a transaction posted to the wrong account type. The equation isn't flexible. It either balances or it doesn't. ### The Three Sections **Assets** split into two groups. Current assets convert to cash within 12 months: checking, savings, [accounts receivable](/blog/accounts-receivable), inventory, and prepaid expenses. The AR balance here must tie to your AR aging report exactly. Fixed assets are used over multiple years (equipment, vehicles, computers) and carry accumulated depreciation as a contra-account. Net book value = original cost minus depreciation booked to date. **Liabilities** split the same way. Current liabilities are due within 12 months: [accounts payable](/blog/accounts-payable), accrued expenses, payroll liabilities, sales tax payable, and the current portion of long-term debt. Long-term liabilities extend past 12 months: bank loans, equipment financing, SBA loans. **Equity** is what's left. For a small business: paid-in capital, [retained earnings](/blog/retained-earnings) (cumulative net income not distributed), owner draws (shown as a negative), and current year net income flowing in from the P&L. ### Current vs. Long-Term: Why the Split Matters The split tells you whether the business can meet short-term obligations. Banks look at the [current ratio](/blog/working-capital): current assets divided by current liabilities. Below 1.0 means the business owes more in the next 12 months than it has available. When in doubt on a loan: pull the amortization schedule, book the principal due in the next 12 months to current liabilities, and the rest to long-term. Misclassifying a long-term loan as current can trigger a covenant violation. ### Fixed Assets and Depreciation Fixed assets show up on the balance sheet at net book value: original cost minus [accumulated depreciation](/blog/accumulated-depreciation). A $12,000 piece of equipment with $4,000 in accumulated depreciation shows as $8,000 net. Each month, a depreciation journal entry credits accumulated depreciation and debits depreciation expense on the income statement. Skip a month and both net book value and net income are overstated. At month-end, pull the fixed asset schedule and confirm the accumulated depreciation total matches the balance sheet exactly. The [fixed assets](/blog/fixed-assets) article covers depreciation schedules in more detail. ### Equity Components Retained earnings carries cumulative profit or loss from all prior periods. QBO closes net income into retained earnings automatically at fiscal year-end. During the year, both lines show separately and merge at close. Negative retained earnings = accumulated losses over the business lifetime. That's different from negative equity caused by owner draws. Know which one you're looking at before explaining it. The [trial balance](/blog/trial-balance) gives you the underlying account balances that build this section. ### The Bookkeeper Review Sequence Don't just glance at the totals. Run these 5 steps in order: **Step 1: Bank rec tie.** Balance sheet bank balances must match reconciled bank balances. Mismatch points to an unreconciled transaction or a journal entry in the wrong account. **Step 2: AR aging tie.** Balance sheet AR must equal the AR aging report total to the penny. Difference usually means a payment posted to the wrong account or an unapplied credit memo. **Step 3: AP aging tie.** Balance sheet AP = AP aging total. Difference means a bill was entered as a journal entry, or a payment cleared without a corresponding bill. **Step 4: Depreciation check.** Accumulated depreciation on the balance sheet must match the fixed asset schedule. Confirm depreciation posted for the current month. **Step 5: Retained earnings rollforward.** Prior retained earnings + net income minus distributions = current equity. Trace it if the number looks off. This runs 10-15 minutes on clean books. It runs longer if a step fails, which is the point. ### Running the Balance Sheet in QBO Reports > Balance Sheet. Confirm these four settings before sharing with a client: **Date:** Last day of the month. The balance sheet is point-in-time; verify the date in the report header. **Accounting method:** Cash vs. accrual toggle, upper left. Switching to cash makes AR and AP disappear. Confirm the method matches how the books are maintained. **Comparative period:** Add a prior period column. A balance that doubled month-over-month with no explanation is a flag you want to catch before the client does. **Sub-accounts expanded:** Click the arrow on any parent account to see individual lines. Incorrectly coded transactions hide inside parent totals until you look. ### Common Gotchas **Cash vs. accrual toggle switched.** Built the month on accrual, pulled the report on cash? AR and AP disappear and equity changes. Confirm the method before exporting. **Missing comparative period.** A prepaid that was $3,000 last month and is $9,000 now is invisible without a comparison column. Always add the prior period. **Sub-accounts not rolling up.** A sub-account assigned to the wrong parent shows up somewhere unexpected. Audit sub-account structure when a section total looks wrong. **Out-of-balance from a forced journal entry.** One-sided entry or a transaction posted to an income/expense account breaks the equation. Find the entry, fix the split. ### How Growthy Handles Balance Sheet Review Managing 15-25 clients, running the 5-step review sequence on each set of books every month is where time disappears. Growthy keeps the GL clean so the balance sheet ties on the first pull more often. Transactions categorize automatically based on patterns from your prior work, so fewer lines land in uncategorized before you even start. Built by a CPA firm partner. The review sequence above is exactly how we close books at SDO CPA. See [Growthy's AI bookkeeping features](/ai-bookkeeping#features). ### Frequently Asked Questions **What's the difference between a balance sheet and an income statement?** The income statement covers a period (month, quarter, year) and shows revenue, expenses, and net profit or loss. The balance sheet captures a single date and shows assets, liabilities, and the owner's cumulative stake. Net income flows from the income statement into equity on the balance sheet each period. **Why doesn't my balance sheet balance?** Most common causes: a journal entry that only hit one side, a transaction posted to an income or expense account instead of a balance sheet account, a sub-account not assigned to the right parent, or a QBO data issue. Start by reviewing journal entries posted in the period and confirm each has matching debits and credits. **What does negative equity mean on a balance sheet?** Total liabilities exceed total assets. For small businesses, this often happens because owner distributions exceeded net income, or because the business has accumulated losses. It's not automatically a problem, but it needs an explanation before you close the books. **Should I run the balance sheet on cash or accrual basis?** Match the method to how the books are maintained. Accrual shows AR and AP; cash doesn't. Confirm the method and be consistent. Switching mid-period causes reconciliation problems. **How often should a bookkeeper review the balance sheet?** Every month as part of the month-end close. A balance sheet reviewed only at year-end means 12 months of errors to untangle. Monthly reviews catch problems while they're still small. --- Ready to close books faster without chasing down balance sheet discrepancies each month? [Try Growthy free](/signup?utm_content=balance-sheet). ### [Gross Profit: Definition, Formula, & How It Differs From Net Income](https://growthy.com/blog/gross-profit): Gross profit = Revenue minus COGS. It sits at the top of your P&L and shows whether your core product or service actually makes money. ## Gross Profit: Definition, Formula, & How It Differs From Net Income A client sends you their P&L and says the business looks fine. Revenue is up. But you spot the problem in 30 seconds: COGS is loaded with expenses that don't belong there. Gross profit looks artificially low. Decisions about pricing and hiring are being made on bad numbers. Gross profit is one of the first things I check on any new set of books. It lives at the top of the income statement and tells you whether the core product or service is actually profitable before overhead enters the picture. Get it wrong, and everything downstream is distorted. > **What is gross profit?** > > Gross profit is revenue minus the cost of goods sold (COGS). It measures how much money a business keeps from each dollar of sales after paying the direct costs to produce or deliver what it sells. Service businesses typically see gross margins of 60-80%, SaaS companies 70-80%, retailers 25-50%, and restaurants 60-70%. Gross profit appears on the income statement between total revenue and operating expenses. It does not include rent, salaries for non-production staff, marketing, or other overhead costs. ### Key Takeaways - **Gross profit formula** - Revenue minus COGS equals gross profit (example: $500,000 revenue minus $200,000 COGS equals $300,000 gross profit). - **Gross margin percentage** - Divide gross profit by revenue and multiply by 100 (a $300,000 gross profit on $500,000 revenue equals a 60% gross margin). - **Industry benchmarks vary widely** - SaaS targets 70-80%, services 60-80%, restaurants 60-70%, retail 25-50%. - **COGS classification matters** - Only direct costs belong in COGS; SG&A misclassified there depresses gross profit and misleads pricing decisions. - **Gross profit is not net income** - Operating expenses, interest, and taxes still come out after gross profit to arrive at net income. - **Service businesses without inventory** - They often show 100% gross margin if COGS is left empty, which makes benchmarking nearly useless. You can browse the full [glossary of bookkeeping terms](/topics/glossary) for related definitions that fill out the income statement picture. ### What Gross Profit Actually Is Gross profit answers one question: does the core product or service make money before you pay for the lights, the office, or the marketing team? The formula is simple: > **Gross Profit = Revenue - Cost of Goods Sold (COGS)** COGS includes only direct costs tied to producing or delivering what you sell. For a product business, that means raw materials, direct labor, freight in, and manufacturing overhead. For a service business, it means billable labor and direct subcontractor costs. For a restaurant, it means food, beverage, and kitchen labor. What COGS does not include: rent, utilities, management salaries, insurance, software subscriptions, or any other fixed overhead. Those costs sit below gross profit as operating expenses. To express gross profit as a percentage, divide by revenue: > **Gross Margin % = (Gross Profit / Revenue) x 100** A business with $500,000 in revenue and $200,000 in COGS has $300,000 in gross profit and a 60% gross margin. That 60% is what's available to cover rent, payroll, marketing, and everything else before you get to net income. ### Where Gross Profit Sits on the Income Statement Gross profit is the first subtotal on the income statement. It sits between Revenue at the top and Operating Expenses below it. After you subtract operating expenses, you get operating income. Subtract interest and taxes and you reach net income. Each layer tells you something different. Gross profit is about the product. Operating income is about the business model. Net income is about what the owner actually earned. A business can have strong gross profit and still lose money at the net level if overhead is too high. Knowing which layer has the problem changes what you do about it. See [net income](/blog/net-income) for how that bottom-line figure is calculated. ### Gross Margin Benchmarks by Industry Gross margin varies a lot by business type. Typical ranges: SaaS 70-80%, professional services 60-80%, restaurants 60-70%, manufacturing 30-50%, retail 25-50%, grocery 15-30%. If a client's gross margin sits 15+ points below their industry benchmark, two likely causes: pricing is too low, or something is misclassified in COGS. ### Gross Profit vs. Operating Profit vs. Net Income **Gross profit** covers only direct production costs. It reflects pricing power and how efficiently you deliver your product or service. **Operating profit** subtracts overhead from gross profit: rent, admin salaries, software, marketing. It reflects whether the business model covers its fixed costs. **Net income** subtracts interest, taxes, and non-operating items. It's what the owners actually earned. Clients often ask why gross profit is healthy but the business still loses money. Almost always: operating expenses are too high. Gross profit is one piece. See [cost of goods sold](/blog/cost-of-goods-sold) and [journal entries](/blog/journal-entry) for more on how these figures flow together. ### The Bookkeeper's Role: Keeping Gross Profit Accurate Gross profit is only useful if the inputs are clean. Two areas matter most. **Revenue side:** Revenue should reflect only earned income from core activity. If "Other Income" drifts into the main revenue bucket (a common QBO miscoding issue), gross profit looks inflated. Owner contributions and insurance proceeds belong elsewhere. **COGS side:** COGS should hold only direct production costs. Watch for SG&A expenses miscoded there (depresses gross profit), missing items like freight-in or direct contract labor (inflates it), and discounts coded as expense instead of contra-revenue. For businesses that carry inventory, accurate COGS also depends on correct [inventory accounting](/blog/inventory-accounting) methods. The valuation method (FIFO, LIFO, weighted average) flows directly into COGS. A clean [balance sheet](/blog/balance-sheet) inventory account is a prerequisite for reliable gross profit figures. ### Common Gross Profit Gotchas **Missing COGS items.** Freight costs, direct labor, and purchase returns often get overlooked or miscoded. Each omission inflates gross profit and makes margins look better than they are. A 70% gross margin for a retailer is almost certainly wrong if freight-in isn't in COGS. **SG&A drifted into COGS.** This is the most common misclassification I see. A bookkeeper codes the owner's salary to COGS instead of officer compensation. An admin software subscription ends up in COGS instead of operating expenses. The effect is the same: gross profit is understated, and the business looks less efficient than it actually is. **Service businesses with no COGS.** If a service company has zero COGS, the income statement shows 100% gross margin. That's technically correct if they have no direct costs, but it makes industry benchmarking useless and hides labor efficiency issues. Most service businesses should have at least billable labor or subcontractor costs in COGS. **Discounts as expense instead of contra-revenue.** When a business discounts invoices and the bookkeeper codes those discounts to an expense account instead of a sales discount contra-revenue account, revenue is overstated and gross profit appears higher than it should be. The fix is a contra-revenue account that nets against gross sales to show net revenue correctly. ### How Growthy Handles Gross Profit Growthy suggests categories against your existing chart of accounts from the first import. The first import is 85% accurate. See [Growthy's bookkeeping features](/ai-bookkeeping#features) for a full overview. ### Frequently Asked Questions **What is the difference between gross profit and net profit?** Gross profit is revenue minus COGS only. Net profit (net income) is what remains after also subtracting operating expenses, interest, and taxes. A business can have strong gross profit and still show a net loss if overhead is high. **What is a good gross margin percentage?** It depends on the industry. SaaS companies target 70-80%, professional services 60-80%, restaurants 60-70%, and retailers 25-50%. Comparing your gross margin to your industry benchmark is more useful than any single "good" number. **Can gross profit be negative?** Yes. If COGS exceeds revenue, gross profit is negative. This usually signals a pricing problem, COGS misclassification, or a business selling below cost. A negative gross profit means the company cannot recover direct costs, let alone pay overhead. **Why would gross profit increase while net income stays flat?** Operating expenses increased at the same rate as gross profit. Higher gross profit is positive, but if rent, payroll, or marketing rose proportionally, the gain never reaches the bottom line. **How do I find gross profit on a P&L?** Look at the income statement. Gross profit appears as the subtotal after revenue and COGS, before the operating expenses section begins. In QuickBooks Online, it shows as a bold subtotal line labeled "Gross Profit." If your gross profit line doesn't look right, start with COGS classification. Most gross profit errors trace back to accounts being in the wrong bucket. [Get started with Growthy](/signup?utm_content=gross-profit) ### [Amortization: What It Is & How Bookkeepers Record It](https://growthy.com/blog/amortization): Amortization has two meanings in bookkeeping. Here's what each one means and how to record both correctly at month-end. ## Amortization: What It Is & How Bookkeepers Record It The word "amortization" shows up in two very different places on the books. It describes both the systematic expensing of intangible assets over their useful life and the way a loan payment splits between principal and interest. A bookkeeper who doesn't know which meaning applies will mispost transactions and misstate the balance sheet. This article covers both meanings and the month-end workflow for each. For the parallel concept on physical assets, see [depreciation entry](/blog/depreciation-entry). > **What is amortization in accounting?** > > Amortization is the process of spreading a cost over time. It has two distinct uses: (1) for intangible assets like patents, software, and non-compete agreements, amortization systematically expenses the asset's cost across its useful life, typically 3 to 15 years, via a monthly adjusting entry; (2) for loans, amortization describes how each payment is split between reducing principal and paying interest according to a fixed schedule. Both appear on the books, but they're recorded very differently. Intangible amortization runs through the income statement. Loan amortization reduces a liability. ### Key Takeaways - **Two distinct meanings** - intangible asset expensing (like depreciation, but for non-physical assets) and loan principal-vs-interest splitting are both called "amortization" - **Intangibles amortize straight-line** - patent, software, customer list, and non-compete costs spread evenly over useful life, often 3 to 15 years depending on asset type - **IRC §197 covers acquired intangibles** - most intangibles acquired with a business (goodwill, customer lists, non-competes) follow a 15-year schedule for tax purposes - **Month-end AJE is required** - debit Amortization Expense, credit Accumulated Amortization on the balance sheet contra-asset account - **Goodwill is a special case** - US GAAP eliminated goodwill amortization in 2001; goodwill now requires annual impairment testing rather than scheduled expensing - **Loan amortization is a liability reduction** - it is not an expense; misposting the principal portion as an expense overstates costs and understates the loan balance ### The Two Meanings of Amortization **Intangible asset amortization** is the bookkeeping equivalent of [depreciation](/blog/fixed-assets) applied to non-physical assets. When a business buys a patent, licenses software, signs a non-compete agreement, or acquires a customer list, that cost doesn't hit the income statement all at once. The bookkeeper spreads it across the asset's useful life. A 3-year software license gets amortized over 36 months. **Loan amortization** describes how each loan payment splits between principal (which reduces the balance sheet liability) and interest (which is an income statement expense). An amortization schedule from the lender shows exactly how much of each payment goes where. The split changes every period: early payments are mostly interest, later payments mostly principal. Both concepts use the word "amortization." The context tells you which one applies. ### Intangible Asset Amortization: Month-End Workflow The workflow mirrors how a bookkeeper handles depreciation. At month-end, you make an adjusting journal entry to record the period's amortization expense. **Step 1: Confirm the asset and useful life.** When the intangible asset was set up, someone should have recorded the cost, the start date, and the useful life. If that schedule doesn't exist, you need to build it before the first entry. **Step 2: Calculate the monthly amount.** Divide the asset cost by the total months in the useful life. A $36,000 software license amortized over 3 years = $1,000 per month. **Step 3: Record the AJE.** The entry is: > **Debit:** Amortization Expense (income statement) for the monthly amount > **Credit:** Accumulated Amortization (balance sheet, contra-asset) for the same amount The intangible asset stays on the books at original cost. Accumulated Amortization offsets it, showing the net book value. This mirrors how Accumulated Depreciation works for tangible assets. **Step 4: Tie out to the schedule.** At any point in time, the accumulated amortization balance should equal the number of months elapsed times the monthly expense. If it doesn't match, a prior entry was missed or posted incorrectly. For tax purposes, many intangibles acquired as part of a business purchase fall under IRC §197, which sets a 15-year amortization schedule. Book useful life and tax amortization period often differ, which creates a timing difference your CPA will handle on the return. One important exception: goodwill is not amortized on GAAP books. Since 2001, US GAAP requires annual impairment testing for goodwill instead of a scheduled expense. Always confirm with the CPA which treatment applies. ### Loan Amortization: What Bookkeepers Actually Track When a business takes out a term loan, the monthly payment stays constant, but the principal-vs-interest split changes every period. Early payments are mostly interest. Later payments are mostly principal. An amortization schedule shows the breakdown for every payment through the loan's life. The bookkeeper's job is to post each payment correctly. Say the monthly payment is $2,500 and this month's schedule shows $1,800 principal and $700 interest. The entry is: > **Debit:** Loan Payable $1,800 (reduces the balance sheet liability) > **Debit:** Interest Expense $700 (income statement) > **Credit:** Cash $2,500 The principal portion is not an expense. It reduces a liability. Getting this wrong overstates expenses on the P&L and leaves the loan balance too high on the balance sheet. Keep the lender's amortization schedule on file and reference it every month. For how adjusting entries work at period-end, see [adjusting journal entry](/blog/adjusting-journal-entry). ### Amortization vs. Depreciation The mechanics are nearly identical: both spread an asset's cost over its useful life via a contra-asset account and a monthly AJE. The difference is the asset type. Depreciation covers tangible assets (equipment, vehicles, buildings). Amortization covers intangible assets (patents, software licenses, customer lists, non-competes). See [depreciation entry](/blog/depreciation-entry) for the tangible asset workflow. One common mistake: posting intangible amortization to Accumulated Depreciation. Keep them separate. Accumulated Amortization is its own account on the balance sheet. ### Common Gotchas **Amortization confused with depreciation.** These aren't interchangeable terms. They describe the same concept applied to different asset classes. Using the wrong account creates a messy balance sheet that takes time to untangle. **Loan amortization posted as an expense.** The principal portion of a loan payment reduces a liability, not an expense. If you debit the full payment amount to Interest Expense (or some other expense account), you'll overstate costs and never reduce the loan balance correctly. **Goodwill amortized under GAAP.** This is a common error when bookkeepers set up goodwill accounts from business acquisitions. GAAP doesn't amortize goodwill on a schedule anymore. If you're seeing a recurring monthly goodwill amortization entry on GAAP books, flag it for the CPA to review. **Software amortization period mismatched.** A 3-year book amortization period and a 15-year IRC §197 tax amortization period are both valid but they're different. Don't assume the book schedule and the tax schedule are the same. The CPA owns the tax adjustment, but the bookkeeper needs to know the distinction exists. **Missing the amortization schedule.** If nobody built a schedule when the intangible asset was acquired, month-end entries get inconsistent or skipped entirely. When setting up any intangible asset, build the schedule immediately: cost, start date, useful life, monthly amount, end date. ### How Growthy Handles Amortization Built by a CPA firm partner, Growthy is designed for the bookkeeper managing 15 to 25 clients who can't afford a missed monthly entry. [See how it works](/ai-bookkeeping#features). ### Frequently Asked Questions **What's the difference between amortization and depreciation?** Both spread an asset's cost over its useful life. Amortization applies to intangibles (patents, software, non-competes). Depreciation applies to tangibles (equipment, vehicles, buildings). The mechanics are nearly identical; the asset type determines which accounts to use. **How do I record intangible asset amortization each month?** Debit Amortization Expense and credit Accumulated Amortization for the monthly amount. Divide the asset's original cost by its useful life in months to get that number. Record it as an adjusting journal entry at month-end. **Is goodwill amortized?** Not under US GAAP. GAAP replaced scheduled goodwill amortization with annual impairment testing in 2001. For tax, goodwill acquired with a business generally amortizes over 15 years under IRC §197. Your CPA handles the tax side; the bookkeeper tracks original cost and impairment history. **What is a loan amortization schedule?** A table showing every payment through the loan's life, split into principal and interest. Lenders provide it at closing. Bookkeepers use it to post each payment correctly so the loan balance on the balance sheet stays accurate. **Should amortization expense appear on the P&L?** Intangible asset amortization is an operating expense and appears on the income statement. The principal portion of loan amortization does not; it reduces a balance sheet liability. Interest expense from loan payments does appear on the P&L. --- Amortization is one of those terms that means two different things depending on context. Once you know which meaning applies, the entries are straightforward. Build your intangible asset schedules up front, keep your loan amortization tables on file, and the month-end close becomes a matter of confirming the recurring entries ran correctly. [Get started with Growthy](/signup?utm_content=amortization). ### [Journal Entry: What It Is & How Bookkeepers Use It](https://growthy.com/blog/journal-entry): Every transaction in double-entry accounting lives in a journal entry. Here's what's in one, the 4 types bookkeepers use, and when to hand-key vs let software handle it. ## Journal Entry: What It Is & How Bookkeepers Use It Every number in your client's books traces back to a journal entry. It's the atomic unit of [double-entry bookkeeping](/blog/double-entry-bookkeeping): one transaction recorded as at least one debit and one credit, always balanced. Master this and the whole [general ledger](/blog/general-ledger) makes sense. > **What is a journal entry in accounting?** > > A journal entry is the record of a financial transaction in the general ledger. Each entry has a date, at least one account debited and one account credited, a dollar amount, and a memo. The debit side and credit side must equal each other. When a business pays a $500 utility bill, the entry debits Utilities Expense $500 and credits Checking $500. Double-entry accounting requires every transaction to affect at least 2 accounts. Software like QBO creates most journal entries automatically when you record invoices, bills, or payments. Bookkeepers hand-key entries for accruals, reclassifications, write-offs, and corrections. ### Key Takeaways - **Journal entries are the foundation of double-entry accounting** - every transaction must have equal debits and credits, no exceptions. - **4 types exist for different purposes** - general (daily transactions), adjusting (period-end corrections), closing (year-end resets), and reversing (next-period cleanup). - **Software creates most JEs automatically** - QBO generates a journal entry behind the scenes every time you record an invoice, payment, or bank transaction. - **Hand-keyed JEs cover the gaps software can't fill** - write-offs, reclassifications, accruals, and transfers between accounts all require manual entries. - **Unbalanced entries won't save in QBO** - the system blocks you if debits don't equal credits, which catches most input errors on the spot. - **Every JE needs a memo** - without one, you or your client's CPA will spend 20 minutes tracing the transaction during a review. ### What a Journal Entry Actually Is Journal entries live in the [Growthy glossary](/topics/glossary) of bookkeeping fundamentals for a reason: without them, nothing in the books moves. A journal entry records the effect of a business event across at least 2 accounts. One side gets a debit, one side gets a credit, and they always balance. Understanding how [credits and debits](/blog/credits-and-debits) work is the prerequisite to reading any journal entry correctly. Before accounting software, bookkeepers wrote entries in a physical book called a journal. The name stuck. The concept hasn't changed. The execution is faster now. ### Anatomy of a Journal Entry Every journal entry has the same five components: **Date.** When the transaction occurred, not when you're recording it. Dating a December expense to January throws off both months. **Accounts.** At least one account gets a debit, at least one gets a credit. Complex entries can have multiple accounts on each side, as long as total debits equal total credits. **Debit and credit amounts.** Debits increase assets and expenses. Credits increase liabilities, equity, and revenue. This trips people up because it's opposite to how bank accounts use the terms. **Memo.** "Reclassify Q3 office supplies from meals" is useful. "JE" is not. **Reference number.** Software assigns this automatically. It links the JE to source documents. ### The 4 Types of Journal Entries **General journal entries** record standard transactions: sales, purchases, payroll, loan payments. Software generates these automatically. When you enter a vendor bill in QBO, it creates a JE debiting the expense account and crediting Accounts Payable. You rarely hand-key these. [**Adjusting journal entries**](/blog/adjusting-journal-entry) fix the gap between when cash moves and when the transaction actually happened. Recording prepaid insurance that expired, accruing wages not yet paid, booking depreciation. These happen at period-end, usually during month-end close, and most require a bookkeeper to hand-key them. **Closing journal entries** happen at fiscal year-end. They zero out revenue and expense accounts by moving their balances to retained earnings. This resets the P&L for the new year. QBO handles this automatically when you set a closing date. **Reversing journal entries** flip an adjusting entry in the next period. You accrued $3,000 of wages in December. In January, you post a reversing entry that credits wages expense $3,000. When the actual payroll posts, the two entries net to zero. No double-counting. ### When to Hand-Key vs Let Software Auto-Create Software handles standard transactions. You hand-key when there's no form for what you need to do: **Reclassifications.** Transaction coded to the wrong account in a closed period. Post a JE to move it. **Write-offs.** Uncollectable customer balance. Debit Bad Debt Expense, credit Accounts Receivable. **Accruals.** Expense before the bill arrives, or revenue before cash comes in. Common for rent, payroll, subscriptions, interest. **Depreciation.** If your software doesn't handle fixed assets natively, you book it with a manual JE. **Transfers between accounts.** Moving money between banks, paying down a credit card from checking, recording an owner contribution. **Error corrections.** Duplicate entry or transposed amount in a prior period? A correcting JE fixes it without touching the original. ### How to Record a Journal Entry in QuickBooks Online 1. Go to**+ New**, then select**Journal Entry** under the Other column. 2. Set the**Journal Date** to when the transaction occurred. 3. First line: choose the account to**debit**, enter the amount in the Debit column. 4. Second line: choose the account to**credit**, enter the same amount in the Credit column. 5. Add a**memo** to both lines. 6. The difference at the bottom must be $0.00 before QBO lets you save. 7. Click**Save and close**. QBO blocks saving if debits don't equal credits. That's intentional. Use it to catch typos before they hit the books. > **Check the date every time.** It's easy to leave today's date on a December entry you're booking in January. That entry lands in the wrong month and skews both periods. ### Common Gotchas **Unbalanced entry.** QBO won't save if debits and credits don't match. Check for a typo in the amount or a missing line. **Wrong period date.** A December accrual booked to January never hits December financials. Your client's year-end reports will be off. **JE to a closed period.** QBO shows a warning but doesn't block it. Posting to a closed period changes already-reported numbers. Confirm with your client first. **Missing memo.** "JE 1042" tells nobody anything. Write a memo that makes sense to someone who wasn't there: "Accrue December rent not yet paid - $2,400." **Reversing entry not posted.** You accrued December wages. January payroll posts. Wages expense is now double-counted. Build a checklist for recurring accruals that need reversals. ### How Growthy Handles Journal Entries Growthy suggests categories for imported transactions against your chart of accounts, reaching 85% accuracy on first import. Accuracy is 85% on first import. See [how Growthy's features work](/ai-bookkeeping#features). ### Frequently Asked Questions **What's the difference between a journal entry and a transaction?** A transaction is the business event (a sale, a payment, a purchase). A journal entry is how that event gets recorded in the accounting system. Every transaction produces at least one journal entry. Software creates most of them automatically through invoices, bills, and bank feeds. **Do journal entries have to balance?** Yes, always. Total debits must equal total credits. If they don't, the trial balance won't balance and you have an error in the general ledger. **When would a bookkeeper use a journal entry instead of the normal transaction forms?** Use a journal entry when there's no matching transaction form: accruals, reclassifications, write-offs, depreciation, owner draws, or corrections to prior periods. For invoices, bills, and payments, use the dedicated forms. They're faster and create cleaner audit trails. **Can you delete a journal entry in QuickBooks?** Yes, but voiding is better practice. Deleting removes the JE from the audit log. Voiding leaves a trace. For closed-period JEs, post a reversing entry in the current period instead of touching the original. **What happens if I post a journal entry to the wrong account?** Post a correcting entry: credit the wrong account, debit the right one (or vice versa). Don't edit the original if it's in a closed period or has already been reconciled. --- Journal entries are the language of accounting. Every invoice, payment, and month-end accrual reduces to debits and credits. Once you see how the 4 types fit together, and when to hand-key versus let software handle it, the books stop being a mystery. [Start with Growthy](/signup?utm_content=journal-entry) and review its category suggestions while you focus on the entries that need your judgment. ### [Fixed Assets: What They Are & How Bookkeepers Track Them](https://growthy.com/blog/fixed-assets): Fixed assets are long-lived tangible items capitalized at cost. Here's how bookkeepers track them: FA register, addition entries, monthly depreciation, and disposal. A client buys a $3,800 laptop. Another spends $220 on a USB hub. Both land in your inbox as "computer equipment." One goes on the balance sheet. One goes to supplies expense. Getting this wrong by even one item can misstate depreciation for five years. Fixed assets are the tangible, long-lived items a business owns and uses to operate. Tracking them correctly is one of the more unforgiving parts of bookkeeping. Every addition, every month of depreciation, and every disposal has to hit the books cleanly. > **What are fixed assets in accounting?** > > Fixed assets are tangible items a business owns for more than one year and uses in operations, not for resale. They include computers, vehicles, equipment, furniture, and leasehold improvements. Fixed assets are capitalized at cost on the balance sheet and expensed gradually through depreciation over their useful life. The IRS de minimis safe harbor under IRC §263(a) lets businesses expense items costing $2,500 or less per invoice (without applicable financial statements), rather than capitalizing them. Items above that threshold are recorded as fixed assets and depreciated. ## Key Takeaways - **Useful life determines capitalization** - fixed assets last more than one year; current assets are used up within a year - **The §263(a) de minimis safe harbor is $2,500** - items at or below this per-invoice cost can be expensed immediately instead of capitalized - **Every fixed asset needs a register entry** - cost, date placed in service, useful life, and accumulated depreciation tracked in one place - **Monthly depreciation is a recurring journal entry** - clone it each month; missing it understates expenses and overstates net income - **Disposals require a journal entry** - retire both the cost and accumulated depreciation, record gain or loss; skipping this leaves ghost assets on the books - **Bonus depreciation under §168(k) is 100% for property placed in service after January 19, 2025** - OBBBA permanently restored it; this changes year-one cash flow planning ## What Fixed Assets Actually Are Fixed assets (also called property, plant, and equipment, or PP&E) sit on the balance sheet under non-current assets. They differ from current assets in one key way: useful life. Cash, inventory, and accounts receivable are expected to be consumed or converted within 12 months. A [general ledger](/blog/general-ledger) entry for a new delivery van, on the other hand, will affect the books for five to seven years through depreciation. The full [chart of accounts](/topics/chart-of-accounts) typically separates fixed assets by type: furniture and fixtures, machinery and equipment, vehicles, computers and technology, leasehold improvements. Each category often has a corresponding accumulated depreciation contra-account sitting directly beneath it. Fixed assets are distinct from intangibles (patents, trademarks, goodwill) even though intangibles are also long-lived. Intangibles have no physical substance. Fixed assets you can touch. ## The $2,500 Capitalization Threshold Not every durable purchase belongs on the balance sheet. The IRS provides a de minimis safe harbor under IRC §263(a) (Treas. Reg. §1.263(a)-1(f)) that lets businesses expense tangible property costing $2,500 or less per item or per invoice line, without applicable financial statements (AFS). Businesses with audited financials or a certified AFS can use a $5,000 threshold. In practice: a $3,800 laptop gets capitalized. A $220 USB hub gets expensed to office supplies or computer accessories. The threshold applies per item (or per invoice if items aren't separately listed), not per purchase order total. A single order of ten $400 monitors could technically be expensed as ten separate $400 items. How you handle that consistently is a firm policy decision, not a one-off call. A few items to flag when applying the threshold: - The safe harbor must be elected annually on the tax return - Bookkeeping entries should match the tax election; capitalizing on the books but expensing on the tax return creates a book-tax difference to track - Computer accessories, cables, and peripherals are frequent miscodes. The $220 USB hub goes to expense, not equipment ## The Fixed Asset Register Every fixed asset needs a register entry the day it's placed in service. The FA register is the source of truth for the asset schedule. It should carry at minimum: | Field | Notes | | --- | --- | | Asset description | Specific enough to identify in a physical count | | Date placed in service | Tax depreciation starts here, not the purchase date | | Cost | Invoice total including freight and installation | | Useful life | IRS recovery period (5 yr, 7 yr, 15 yr, 27.5 yr, 39 yr) | | Depreciation method | MACRS (tax), straight-line (book), or both | | Accumulated depreciation | Running total updated monthly | | Net book value | Cost minus accumulated depreciation | | Disposal date and proceeds | Blank until disposed | Most bookkeeping software (QuickBooks, Xero) has a basic asset register built in. The register isn't optional. Without it, year-end depreciation schedules require reconstructing every asset from scratch. That's expensive at tax time. ## The Addition Entry When a fixed asset is purchased, the bookkeeper records it as a capital addition. The entry is straightforward: - **Debit:** Fixed asset account (e.g., Computers & Equipment) for the full cost - **Credit:** Cash or accounts payable for the same amount "Full cost" includes everything required to get the asset into service: purchase price, freight, installation, and any initial configuration. A $5,000 server with $300 in rack mounting costs is capitalized at $5,300. Do not record partial payments over time unless you're tracking construction-in-progress. Record the full cost at the date placed in service, even if payments are on a schedule. ## The Monthly Depreciation Entry Depreciation is how the asset's cost moves from the balance sheet to the income statement over its useful life. For bookkeeping purposes, most firms use straight-line for financial statements: cost minus salvage value, divided by useful life in months. A $6,000 computer with a five-year useful life and no salvage value: $6,000 / 60 months = $100/month. Monthly entry: - **Debit:** Depreciation expense (income statement) - **Credit:** Accumulated depreciation (contra-asset, balance sheet) The asset's cost account never changes after the addition entry. Only accumulated depreciation grows. Net book value = cost minus accumulated depreciation. Set this entry as a recurring journal in your bookkeeping software the day you record the addition. Forgetting to create the recurring entry is the most common depreciation error in small business books. See the [depreciation entry article](/blog/depreciation-entry) for a full walkthrough of MACRS vs. straight-line and how they differ. ## The Disposal Entry When an asset is sold, scrapped, or retired, it leaves the books entirely. Both the original cost and all accumulated depreciation are removed, and a gain or loss is recorded. For an asset sold for cash: - **Debit:** Cash (proceeds received) - **Debit:** Accumulated depreciation (remove the full balance) - **Credit:** Fixed asset account (remove the original cost) - **Credit or Debit:** Gain or loss on disposal (the difference) If accumulated depreciation equals original cost (fully depreciated), the asset has zero net book value. If it sells for $500, that's a $500 gain. If it's scrapped with $200 book value remaining, that's a $200 loss. Missing the disposal entry leaves "ghost assets" on the books: assets that no longer exist but still show carrying value. Ghost assets distort the balance sheet and keep depreciation running on property the business no longer owns. ## Year-End Review Once a year, the bookkeeper should do three things with the fixed asset schedule: 1. **Physical count.** Walk through the asset register and verify each item still exists. Match serial numbers or location tags if available. Assets that can't be located should be disposed on the books. 2. **Impairment review.** If an asset's fair market value has dropped below its book value and the decline is permanent, the business may need to write down the carrying value. This is more common in manufacturing or when equipment becomes obsolete quickly. 3. **Depreciation true-up.** Confirm the running depreciation matches what was actually posted. A mid-year addition is easy to book but the recurring entry sometimes starts a month late. Find and correct the gap. This review feeds directly into the tax depreciation schedule, which your CPA needs to prepare the return. Clean books in December mean a faster close in January. ## Common Gotchas **Office supplies miscoded as fixed assets.** A $180 desk lamp, $95 label maker, or $240 external hard drive under threshold hits the books as equipment. It should be supplies or computer accessories. Run a quarterly scan of any addition under $500 and confirm it clears the capitalization threshold. **Missing disposal entry.** The client sells the company truck in July. The bookkeeper records the deposit. The truck stays on the books. Now you have a phantom asset accumulating depreciation through year-end. Always ask: "Did any equipment leave the building this month?" **Bonus depreciation §168(k) sunset trap.** OBBBA permanently restored 100% bonus depreciation for qualified property placed in service after January 19, 2025. Before OBBBA, the TCJA phasedown would have dropped it to 40% for 2025. If you're working with books from 2023 or 2024, the rates were different. Confirm the placed-in-service date and the applicable rate before calculating tax depreciation for any year prior to 2025. **Leasehold improvements classified wrong.** Improvements to rented space are fixed assets with a 15-year MACRS recovery period (or 39-year under the general depreciation system). They go on the books at cost, not expensed. Many bookkeepers code them to rent expense by reflex. **Treating vehicle personal use as 100% business.** Vehicles used partly for personal driving have a business-use percentage that limits depreciation. Track mileage or use the [vehicle mileage expense category](/blog/vehicle-mileage-expenses-category) to document business use before the depreciation entry is posted. ## Frequently Asked Questions **What is the capitalization threshold for fixed assets?** The IRS de minimis safe harbor under IRC §263(a) allows businesses without applicable financial statements to expense items costing $2,500 or less per item. Items above $2,500 are generally capitalized and depreciated. Many businesses set their own internal policy at or below the IRS threshold. **What is the difference between fixed assets and current assets?** Current assets are expected to be converted to cash or used up within 12 months: cash, [accounts receivable](/blog/accounts-receivable), inventory, prepaid expenses. Fixed assets last longer than one year and are used in operations rather than sold. Fixed assets are depreciated over time; current assets are not. **What goes in a fixed asset register?** At minimum: asset description, date placed in service, cost, useful life, depreciation method, monthly depreciation amount, accumulated depreciation to date, net book value, and disposal date/proceeds when sold. The register is the source of truth for the depreciation schedule. **How often should the FA register be reconciled to the GL?** Monthly. The accumulated depreciation on the register should match the accumulated depreciation contra-account in the general ledger. Differences usually mean a disposal wasn't recorded or a depreciation entry was missed. **What is bonus depreciation and does it affect bookkeeping?** Bonus depreciation (IRC §168(k)) lets businesses deduct a large percentage of a qualified asset's cost in year one for tax purposes. OBBBA restored it to 100% for property placed in service after January 19, 2025. Bonus depreciation is a tax concept — book depreciation usually stays straight-line. This creates a book-tax timing difference your CPA will track on the tax return. --- Ready to stop manually tracing every asset addition? [Get started with Growthy](/signup?utm_content=fixed-assets). For more bookkeeping definitions, browse the full [glossary](/topics/glossary). *Tax figures verified against IRC §263(a) and tax-thresholds-2026.yaml on 2026-05-22.* ### [Deferred Revenue: What It Is & How Bookkeepers Record It](https://growthy.com/blog/deferred-revenue): Cash is in the bank but the work isn't done yet. Here's why that's a liability, not revenue, and how bookkeepers track every dollar until it's earned. ## Deferred Revenue: What It Is & How Bookkeepers Record It A client pays $1,200 upfront for a year of service. The cash hits the bank on January 2. Your first instinct might be to book $1,200 of revenue. Don't. That $1,200 isn't revenue yet. You still owe 12 months of service. Until you deliver each month, that cash is a debt, not income. Deferred revenue is how bookkeepers keep the financial statements honest. > **What is deferred revenue?** > > Deferred revenue (also called unearned revenue) is cash received from a customer before the related service or product has been delivered. Because the business still owes the customer something, deferred revenue sits on the balance sheet as a current liability, not on the income statement as revenue. It converts to earned revenue only as the obligation is fulfilled. A typical SaaS example: a client pays $1,200 for an annual subscription on January 2. The bookkeeper recognizes $100 per month over 12 months, clearing the liability by December 31. ### Key Takeaways - **Deferred revenue is a liability** - Cash received before delivery is owed back if the service isn't performed; it belongs on the balance sheet, not the income statement. - **Receipt journal entry: Debit Cash, Credit Deferred Revenue** - The full prepayment hits the liability account on day one, not revenue. - **Recognition journal entry: Debit Deferred Revenue, Credit Revenue** - Each period, bookkeepers move the earned portion from the liability to the income statement (e.g., $100/month on a $1,200 annual plan). - **A waterfall schedule tracks every contract** - Bookkeepers maintain a spreadsheet of contract start/end dates and monthly recognition amounts to support each recurring JE. - **Cash-basis books miss deferred revenue entirely** - If your client uses cash accounting, deferred revenue doesn't exist. Switching to accrual requires adding the liability retroactively. - **Mid-period contract amendments break the waterfall** - A plan upgrade or downgrade mid-contract must update the schedule immediately or recognition runs at the wrong rate. The [glossary](/topics/glossary) covers related terms like accrued expense and undeposited funds that round out your understanding of the balance sheet liabilities side. ### What Deferred Revenue Actually Is Deferred revenue records an obligation. The business took money and promised future delivery. Until that delivery happens, the money belongs to the customer in an economic sense. This matters for financial statements. Booking all $1,200 in January makes January look profitable and the remaining months look artificially thin. On the [income statement](/blog/income-statement-pl), overstated revenue in one month artificially inflates net income and distorts any comparison period. It also overstates revenue if the contract is canceled before completion, since the business would need to refund unearned amounts. In accrual accounting, revenue is recognized when earned, not when cash changes hands. Deferred revenue is the mechanism that enforces that principle. Common scenarios where deferred revenue appears: - **Annual SaaS subscriptions** paid upfront, recognized monthly - **Retainer arrangements** for ongoing services (legal, accounting, IT support) - **Gift cards** issued but not yet redeemed - **Event tickets** sold before the event date - **Annual service agreements** for maintenance or warranty coverage - **Deposits for services** where work hasn't started yet (distinct from customer deposits, covered below) ### The Receipt Journal Entry When cash arrives, book it as a liability. The debit goes to Cash (or the bank account). The credit goes to Deferred Revenue, a current liability on the balance sheet. If you need a refresher on debit and credit mechanics, the [journal entry](/blog/journal-entry) glossary article covers the fundamentals. > **Example: $1,200 annual SaaS payment received January 2** > > Debit: Cash $1,200 > Credit: Deferred Revenue $1,200 > > *Memo: Annual subscription prepayment, Client ABC, January 2 through December 31.* The income statement sees nothing on January 2. The balance sheet shows a new $1,200 liability. ### The Monthly Recognition Journal Entry At the end of each month, the bookkeeper earns down a portion of the liability. For a $1,200 annual plan, that's $100 per month. > **Example: January 31 recognition entry** > > Debit: Deferred Revenue $100 > Credit: Revenue $100 > > *Memo: Monthly recognition, Client ABC subscription, January.* After 12 recognition entries, the deferred revenue balance for that contract reaches zero and total revenue of $1,200 has been recorded across the year. In practice, bookkeepers set up a recurring JE template for each contract so the monthly entry takes seconds to clone, not recalculate. ### The Waterfall Schedule A waterfall schedule is a spreadsheet (or section in your bookkeeping software) that lists every active contract with: - Client name and contract ID - Contract start and end date - Total prepayment amount - Monthly recognition amount - Running balance (original amount minus recognized to date) At close, the bookkeeper runs the waterfall, records one recognition JE per contract (or a grouped JE with contract-level detail in the memo), and verifies the Deferred Revenue balance on the balance sheet ties to the waterfall total. If those numbers don't match, something was skipped or booked to the wrong account. The waterfall is the audit trail. For firms with 10 or more active prepaid contracts, grouping similar-term contracts into a single JE line (with supporting waterfall attached as a document) is common. The memo stays specific: "Monthly recognition, 12-month SaaS contracts, see attached schedule." ### Deferred Revenue vs. Accrued Revenue These two concepts are mirror images. [Accrual-basis accounting](/blog/accrual-vs-cash-accounting) records both sides of timing differences. Deferred revenue is the liability side: cash arrived before the work. Accrued revenue (also called unbilled revenue) is the asset side: work was done before cash arrived. | | Deferred Revenue | Accrued Revenue | | --- | --- | --- | | Balance sheet | Liability | Asset | | Cash timing | Cash received first | Cash arrives later | | Income statement impact | Revenue recognized later | Revenue recognized now | | Example | $1,200 annual SaaS prepay | Consulting services billed monthly in arrears | If a client pays in advance, it's deferred revenue. If a client owes for work already completed, it's accrued revenue. A business can carry both at the same time. ### Deferred Revenue vs. Customer Deposit A customer deposit and deferred revenue are similar at first glance. Both represent cash received before delivery. The difference is in obligation structure. A [customer deposit](/blog/customer-deposit-prepaid-revenue) is typically refundable and tied to a specific future transaction like a security deposit on a service contract or a down payment on a project. The business holds that cash on behalf of the client until work begins or the project settles. Deferred revenue is typically non-refundable once the service period starts and is tied to a recurring or time-based obligation. The business is recognizing it systematically over the service period, not returning it. In practice: a refundable deposit for a custom project books as a customer deposit liability. An upfront annual subscription payment books as deferred revenue. ### A Note on ASC 606 ASC 606 is the GAAP revenue recognition standard that took effect for most small and mid-size businesses by 2019. It introduced a five-step model for when and how revenue gets recognized. For simple subscription contracts, ASC 606 doesn't change the bookkeeper's workflow much. You identify the performance obligation (the monthly service), determine the transaction price ($1,200 total), and recognize it as each month is delivered ($100 each). Where ASC 606 adds complexity is multi-element arrangements: a SaaS contract that bundles onboarding services, a license, and ongoing support. Each element may have a different recognition pattern. Most small-business bookkeepers don't encounter true multi-element bundling, but if a contract looks complex, flag it for CPA review before booking. ### Cash-Basis Caveat Cash-basis books don't use deferred revenue. The $1,200 annual payment hits revenue on the day received, full stop. That's fine for tax purposes if your client is a cash-basis taxpayer. But it means the income statement swings hard in months when annual renewals land and goes quiet in the months that follow. If a cash-basis client asks why January looks unusually profitable, the answer is usually renewal season. If the goal is smoother reporting, a switch to [accrual accounting](/blog/accrual-vs-cash-accounting) is the answer. Switching requires adding the deferred revenue liability retroactively on the date of conversion. ### Common Gotchas **Annual prepayment recognized all in the receipt month.** The most common error. A bookkeeper codes the $1,200 payment directly to revenue on January 2. Revenue is overstated in January and understated for the rest of the year. Fix: catch it at close by comparing cash receipts from subscription payments to the revenue account. Any single large credit to revenue from a subscription-type customer without a corresponding deferred balance is a red flag. **Refund processed without reversing deferred revenue.** A client cancels in March after paying $1,200 in January. The bookkeeper issues a refund but forgets the $900 still sitting in Deferred Revenue. The liability stays on the balance sheet even though the obligation is gone. Fix: whenever a refund processes on a subscription, the bookkeeper immediately checks the waterfall and zeros out the remaining deferred balance. **Mid-period contract amendment not updated on the waterfall.** A client upgrades from $100/month to $150/month starting in April. The bookkeeper keeps recognizing $100/month. By December, Deferred Revenue is understated and revenue is understated. Fix: treat any contract change as a waterfall update, not just a note in the file. **Cash-basis books missing deferred revenue entirely.** Some clients switch to accrual after years of cash-basis reporting without anyone adding the opening deferred revenue liability. The income statement looks clean but the balance sheet is wrong from day one. Fix: at the conversion date, identify all open prepaid contracts and book the unearned portion to Deferred Revenue with an offsetting adjustment to retained earnings. ### Frequently Asked Questions **Is deferred revenue an asset or a liability?** Deferred revenue is always a liability. It represents an obligation to deliver goods or services in the future. Until that delivery happens, the cash technically belongs to the customer. It sits on the balance sheet under current liabilities (if the service will be delivered within 12 months) or long-term liabilities (if the obligation extends beyond one year). **How does deferred revenue affect the income statement?** Deferred revenue doesn't appear on the income statement when cash is received. It appears only as it converts to earned revenue over the service period. This keeps reported income aligned with actual delivery. A $1,200 annual subscription shows as $100 of revenue per month across 12 months, not $1,200 in January. **What's the difference between deferred revenue and unearned revenue?** They're the same thing. "Unearned revenue" is the older term still common in academic accounting. "Deferred revenue" is the term used in practice and on most financial statements. Both describe cash received before the related obligation is fulfilled. **What happens to deferred revenue when a contract is canceled?** If the contract was fully prepaid and the business refunds the unused portion, the bookkeeper debits Deferred Revenue for the remaining balance and credits Cash (for the refund). If there's a cancellation fee and no refund, the remaining deferred balance converts to revenue at cancellation. The key is ensuring the balance clears completely so no phantom liability lingers. **Do I need to track deferred revenue by customer?** Yes. A single "Deferred Revenue" account balance doesn't tell you which customers it belongs to or when it converts. The waterfall schedule is how bookkeepers maintain customer-level detail. Some accounting software supports sub-accounts or tags by customer, which makes the waterfall easier to maintain, but the logic is the same either way. --- Bookkeeping software handles the bank feed automatically. The harder part is keeping the balance sheet clean at period-end. Growthy's [recognition tracking features](/ai-bookkeeping#features) flag subscription receipts and help you maintain recognition schedules. [Try Growthy free](/signup?utm_content=deferred-revenue). Recording deferred revenue for a SaaS company specifically? See the [deferred revenue for SaaS deep-dive](/blog/deferred-revenue-saas-companies) for the balance-sheet mechanics and monthly roll-forward pattern. For adjacent close-cycle definitions, browse the full [glossary](/topics/glossary). ### [How to Categorize Stripe Fees in QuickBooks (Net vs Gross, 1099-K, and Refunds)](https://growthy.com/blog/categorize-stripe-fees): Stripe fees go to Merchant Account Fees (Schedule C Line 27a), NOT Line 17. Each Stripe deposit splits into gross revenue, fees, refunds, and sales tax. Net-vs-gross posting is the #1 trap. 1099-K TY2026: $20,000 + 200 transactions per OBBBA. ## How to Categorize Stripe Fees in QuickBooks (Net vs Gross, 1099-K, and Refunds) A $3,847.92 Stripe deposit hits your bank on a Tuesday. The naive bookkeeper books it as income, codes it to Sales, and moves on. That single click just rotted the balance sheet. Here's what actually happened inside that deposit. Gross sales of $4,000. Stripe fees of $145. One refund of $7.08. Net payout: $3,847.92. Book the deposit as gross income and you've understated revenue by $145, hidden $145 of expense, and missed a $7.08 refund that belongs in contra-sales. Your P&L lies, your fees never reconcile, and the clearing account drifts for the rest of the year. Stripe is the most common Difficult-20% transaction in modern bookkeeping. QBO's bank-feed suggestions confidently propose "Sales" for the deposit and call it done. That suggestion is wrong almost every time. This guide walks the right split, the Schedule C line nobody gets right, the 1099-K threshold under OBBBA, and the six other Stripe traps that quietly break books. Start with the [chart of accounts hub](/topics/chart-of-accounts) if you need the broader framework first. > **How do you categorize Stripe fees in QuickBooks?** > > Create a Bank Charges sub-account called "Stripe Fees" (Detail Type: Bank Charges) or use a Merchant Account Fees account if you prefer to isolate processor costs from generic bank fees. Stripe fees flow to Schedule C Line 27a (Other expenses, "Merchant processing fees"), not Line 17 (Legal & Professional). You don't issue a 1099 to Stripe because Stripe, Inc. is a C-corporation. Stripe issues a 1099-K to YOU if you cross $20,000 AND 200 transactions in TY2026 (OBBBA reverted the lower stair). Every Stripe deposit is a NET number, so split each one: gross revenue + Stripe fees as a contra/expense + refunds + sales tax collected. Never book the net deposit as revenue. ### Key Takeaways - **Stripe deposits are net, never gross** - The $3,847.92 hitting your bank is gross sales minus fees minus refunds. Split every deposit into three or four lines, not one. - **Fees go to Schedule C Line 27a, not Line 17** - Merchant processing fees are "Other expenses," not Legal & Professional. Filing them on Line 17 is the most common Stripe error on small-business returns. - **You don't 1099 Stripe** - Stripe, Inc. is a C-corporation. No 1099-NEC required. The 1099 direction is reversed: Stripe issues a 1099-K to YOU. - **1099-K threshold is $20,000 AND 200 transactions (TY2026)** - OBBBA reverted the earlier $600 and $5,000 stair proposals. Both conditions must hit. - **Chargeback fees are separate from refunds** - A $15 chargeback fee is Bank Charges. The reversed sale amount is contra-revenue. Two different lines. - **Stripe Tax is a liability, not revenue** - Sales tax Stripe collects sits in Sales Tax Payable until remitted. Never lands on the P&L. ### What is Stripe? Stripe processes credit card, ACH, and bank-transfer payments for businesses. Standard pricing: 2.9% + $0.30 per online card transaction, ACH at 0.8% capped at $5, international cards add 1.5%. Used by SaaS, e-commerce, marketplaces, and any business taking online payments. The bookkeeping problem isn't Stripe itself. It's that Stripe generates two confusing data streams that don't match: deposits net of fees, and a separate fee schedule that has to be reconciled back. ### Where Stripe fees go in your books | Field | Value | | --- | --- | | **QBO account** | Merchant Account Fees OR Bank Charges (Detail Type: Bank Charges). Create a sub-account "Stripe Fees" under Bank Charges or Cost of Sales. | | **Xero account code** | 404 (Bank Fees), or a custom 410 Merchant Fees sub-account | | **Schedule C** | Line 27a (Other expenses, "Merchant processing fees" or "Credit card processing fees"). NOT Line 17. | | **Form 1120 / 1120-S** | Line 26 (Other deductions, "Merchant fees") / Line 19 | | **MCC range** | 6051 (Financial Institutions, Quasi Cash), 7372 (Data Processing) | | **1099-NEC required to Stripe** | No (Stripe, Inc. is a C-corp) | | **1099-K thresholds (TY2026)** | $20,000 AND 200 transactions (OBBBA) | | **Sales tax on Stripe fees** | Not subject in any US state | ### The Difficult 20% — The Stripe Trap Bookkeepers Walk Into #### 1. Net vs Gross (the headline) This is where most Stripe books break. The $3,847.92 Stripe deposit is NET. Inside it lives gross sales of $4,000, Stripe fees of $145, and a refund of $7.08. The right split looks like this: - DR Bank $3,847.92 - DR Stripe Fees (expense or contra) $145.00 - DR Refunds (contra-revenue) $7.08 - CR Sales Revenue $4,000.00 Book the $3,847.92 as a single Sales line and three things break at once. Revenue is understated by $152.08. Fees never show up as an expense. Refunds vanish. Pull Stripe's settlement report (the CSV behind every payout) and the split is laid out for you. Growthy reads the Stripe payout report to suggest the split; manual books still need someone to pull that report and reconcile it by hand. #### 2. Stripe Payouts vs Charges A Stripe Charge is one transaction. A Stripe Payout is a batch of charges minus fees minus refunds, settled to your bank as one number. One payout is typically 50 to 500 charges plus a single fee row. The reconciliation rule: payout-level total reconciles to your bank deposit, charge-level detail reconciles to your invoices. Mixing the two levels is what creates the unreconciled clearing account that auditors flag. #### 3. Refunds and chargebacks Refunds are contra-revenue. They reduce Sales, not increase expense. A chargeback is similar but adds a separate $15 chargeback fee from Stripe. Book the reversed sale against Sales (contra), book the $15 to Bank Charges. If you win the dispute, Stripe reverses both entries and you reverse them in books too. The number of Stripe books I've seen with chargeback fees buried inside Sales is too high. #### 4. Stripe Tax (sales-tax add-on) If you've enabled Stripe Tax, Stripe collects state sales tax inside each charge and remits it on your behalf. The sales tax collected is NOT revenue. It's a liability sitting in Sales Tax Payable until Stripe remits it (Stripe's deposit nets it out, the remittance shows on the settlement report as a separate line). The bookkeeper still records the liability on the way in and clears it on the way out. Stripe Tax automates remittance; it does not automate your books. #### 5. Stripe Atlas Stripe Atlas is the $500 one-time incorporation service for new C-corps and LLCs. Categorize as Legal & Professional Services (Schedule C Line 17), OR capitalize as Organizational Costs under IRC §195 if you want to amortize the deduction over 180 months. Most small filers expense it and move on; capitalize only when the §195 amortization actually matters. #### 6. Stripe Issuing and Stripe Capital Stripe Issuing creates physical and virtual cards funded from your balance. Issued cards sit on your books as Other Asset (debit balance) until spent. Stripe Capital is a merchant cash advance product: the deposit hitting your bank is a Notes Payable (liability), NOT income. Booking a Capital advance as Sales is the single most expensive Stripe mistake we've seen. It inflates revenue, distorts gross margin, and creates a phantom tax bill on borrowed money. #### 7. Currency conversion (FX) Cross-border charges add a 1% FX fee on top of the standard processing fee. Track it in a separate FX Fees sub-account if you do meaningful international volume; otherwise roll it into Stripe Fees with a transaction memo so you can pull a report if a CFO asks. Either path is defensible; mixing them inside the same period is not. ### How Growthy categorizes Stripe automatically Growthy suggests a category for the Stripe deposit on your bank feed. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### How do I categorize Stripe fees in QuickBooks? Create a sub-account "Stripe Fees" under Bank Charges (Detail Type: Bank Charges), or use a dedicated Merchant Account Fees account if you want to separate processor costs from generic bank fees. Map every Stripe deposit through a split that includes the fee line. #### What's the difference between Stripe gross and net deposits? Gross is total customer charges before any deductions. Net is what hits your bank: gross minus Stripe fees minus refunds minus sales tax remitted. The $3,847.92 deposit in our example is net of $145 in fees and $7.08 in refunds against $4,000 of gross sales. #### Do I report Stripe sales as gross or net on my tax return? Gross. Revenue on Schedule C Line 1 (or Form 1120 Line 1a) is gross sales. Stripe fees are deducted separately on Line 27a as an expense. Reporting net inflates your effective margin and understates deductible expense. #### Will Stripe send me a 1099-K? Yes if you cross BOTH $20,000 in gross volume AND 200 transactions in TY2026 (OBBBA threshold). Below either threshold, no 1099-K. The form goes to you and the IRS; you still report gross sales regardless of whether you receive one. #### Do I need to send Stripe a 1099-NEC? No. Stripe, Inc. is a C-corporation, and payments to C-corps are exempt from 1099-NEC reporting. Same rule applies to PayPal, Square, and Adyen. #### How do I reconcile a Stripe payout to my bank deposit? Pull the payout-level total from the Stripe dashboard or the settlement CSV. That number should match the bank deposit to the penny. If it doesn't, the difference is almost always a same-day refund or chargeback that posted after the payout cutoff. #### How do I record a Stripe refund or chargeback? Refund: debit Refunds (contra-revenue) for the refunded amount, credit Bank (Stripe clearing). Chargeback: debit Refunds for the reversed sale amount, debit Bank Charges $15 for the chargeback fee, credit Bank for the total. Won disputes reverse both legs. #### What Schedule C line is for Stripe processing fees? Line 27a, Other expenses, labeled "Merchant processing fees" or "Credit card processing fees." Not Line 17 (Legal & Professional Services). The Line 17 error is so common it shows up as an automatic IRS letter trigger when fees are large. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [Stripe bookkeeping deep dive](/blog/stripe-bookkeeping) (full Stripe accounting workflow beyond fees) - [How to categorize Shopify](/blog/categorize-shopify) (Shopify Payments parallel) - [How to categorize Uber for Business](/blog/categorize-uber-for-business) (processor parallel) - [How to categorize Upwork](/blog/categorize-upwork) (marketplace fee parallel) Stop letting Stripe deposits rot your balance sheet. [Get started with Growthy](/signup?utm_content=categorize-stripe-fees) so Growthy auto-categorizes high-confidence transactions and you review the rest. > *1099-K TY2026 threshold ($20,000 + 200 transactions) verified against tax-thresholds-2026.yaml on 2026-07-03 per OBBBA. Stripe pricing verified via stripe.com/pricing 2026-05-20. Sales-tax remittance varies by state.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Shopify in QuickBooks (Subscription, Payments, Capital, Apps)](https://growthy.com/blog/categorize-shopify): Shopify is two categories at once: subscription (Software) and Payments processing fees (Merchant Account Fees). 1099-K TY2026 threshold $20,000 + 200 transactions per OBBBA. Shopify Capital is a loan, not income. Sales tax collected is a liability. ## How to Categorize Shopify in QuickBooks (Subscription, Payments, Capital, Apps) One Shopify bill is never one thing. The $79 monthly subscription rides alongside Shopify Payments processing fees, a Klaviyo app charge, three shipping label purchases, and maybe a Shopify Capital repayment. Most bookkeepers dump the whole stack into a single "Shopify expense" line and move on. That's how books rot. The real problem starts when Shopify deposits hit the bank. Shopify Payments sends you the net, not the gross. Your $3,000 sales day shows up as $2,847.92 in the bank. If you book that deposit as revenue, your fees never hit the P&L and your gross sales are wrong by 5%. Then add sales tax collected (a liability, not income), a Capital advance (a loan, not revenue), and the wheels come off. This guide shows the right way to split Shopify across your [chart of accounts](/topics/chart-of-accounts). It covers the pricing tiers ($29 Basic, $79, $299, $2,300+ Plus) and the eight edge cases that bite e-commerce sellers every quarter. > **How do you categorize Shopify in QuickBooks?** > > Shopify is two or more different categories on the same bill. The monthly subscription ($29 to $2,300+) goes to Software or Dues & Subscriptions, Schedule C Line 27a. Shopify Payments processing fees (2.9% + $0.30 typical) go to Merchant Account Fees, also Line 27a. App subscriptions billed through Shopify (Klaviyo, Recharge) get categorized to that app's vendor account, not Shopify. A Shopify Capital advance is a Notes Payable liability, not income; repayments split between principal and interest. You don't issue a 1099 to Shopify (corporate). Shopify sends you a 1099-K if you cross $20,000 AND 200 transactions in TY2026 (OBBBA reverted threshold). Every Shopify Payments deposit splits into Gross Sales, Fees contra, Refunds, and Sales Tax Payable. ### Key Takeaways - **Two-part GL split is non-negotiable** - Subscription goes to Software/Dues & Subscriptions; Payments fees go to Merchant Account Fees. Same vendor, two accounts. - **Net vs gross deposit trap** - Shopify Payments deposits net of fees and refunds. Book the deposit as one revenue line and your P&L understates both sales and expenses. - **1099-K threshold for TY2026 is $20,000 AND 200 transactions** - OBBBA reverted the threshold from the $5,000 interim. Refresh annually. - **Sales tax collected is a liability, not revenue** - Shopify Tax collections go to Sales Tax Payable until remitted. Booking as income inflates revenue and creates a tax mess. - **Shopify Capital advance is a loan** - Notes Payable on the balance sheet. Repayments split: principal reduces the loan, interest hits Schedule C Line 16b. - **App subscriptions get their own GL** - Klaviyo on a Shopify bill is still Klaviyo. Each app is its own vendor (Marketing, Software, Subscriptions) regardless of who collects the payment. ### What is Shopify? Shopify is an e-commerce platform that bundles your online storefront, hosting, checkout, inventory, and POS into one subscription. Plans run from Basic at $29/month to Shopify Plus at $2,300/month and up. Most stores also use Shopify Payments, the built-in processor, at 2.9% + $0.30 per online card transaction (rates drop on higher tiers). Around 5 million+ active stores run on Shopify. The platform also sells discounted shipping labels, third-party apps through the App Store, and merchant cash advances through Shopify Capital, all billed to the same account. ### Where Shopify goes in your books Shopify has two distinct line items on almost every account. Map them separately or your e-commerce books won't reconcile. #### Part A: Shopify subscription | Field | Value | | --- | --- | | QBO account | Software OR Dues & Subscriptions (Detail Type: Software) | | Xero account code | 463 (Subscriptions) OR 408 (Software & IT) | | Schedule C | Line 27a (Other expenses, "E-commerce platform subscription") | | MCC | 7372 (Data Processing) | | 1099-NEC to Shopify | No. Shopify Inc. (NYSE: SHOP) is a C-corp, §6041 exemption | | Sales tax on subscription | State-dependent. As of 2026, generally taxable in states like TX (taxed as data processing, ~80% of the charge), NY, OH, WA and generally exempt in CA, FL, but treatment varies by state and locality and changes often. Verify your state's (and city's) current rule. | #### Part B: Shopify Payments processing fees | Field | Value | | --- | --- | | QBO account | Merchant Account Fees OR Bank Charges (sub-account "Shopify Payments Fees") | | Xero account code | 410 (Merchant Fees) or sub-account under Bank Fees | | Schedule C | Line 27a ("Merchant processing fees") | | 1099-K issued by Shopify to you | Yes if you cross $20,000 AND 200 transactions (TY2026 OBBBA) | | Sales tax on fees | Not subject. Processing fees aren't taxable. | ### The Difficult 20%: The Shopify Trap List These are the edge cases that turn a clean Shopify file into a quarter-end fire drill. #### 1. Net vs gross deposit A Shopify Payments deposit of $2,847.92 isn't $2,847.92 of revenue. It's gross sales of $3,000 minus processing fees of $86.50 minus a refund of $65.58. Book it as three lines: Gross Sales $3,000 (revenue), Shopify Fees $86.50 (contra-revenue or Merchant Account Fees), Refunds $65.58 (contra-revenue). Naive bookkeepers post the deposit as one revenue line, and the fees never hit the P&L. Sales are understated, expenses are understated, gross margin lies. #### 2. Sales tax collected via Shopify Tax If Shopify Tax is enabled, Shopify collects state sales tax at checkout and includes it in the deposit. That sales tax is NOT your revenue. It's a Sales Tax Payable liability you owe the state. Split the deposit so the sales tax portion lands on the balance sheet, not the P&L. Shopify remits or you remit per each state's filing schedule. #### 3. Subscription vs Payments vs Apps Three different lines on one Shopify invoice, three different GLs. Monthly subscription = Software. Per-transaction Payments fees = Merchant Account Fees. App charges (Klaviyo, Recharge, Yotpo) = that app's vendor category. Lumping all three into "Shopify" hides where the money actually goes. #### 4. Shopify Shipping labels Discounted USPS, UPS, and DHL labels billed through Shopify are shipping costs, not platform fees. For product sellers, shipping out is COGS (Schedule C Line 38, Materials & supplies, for resellers). For service businesses shipping samples or returns, it's Line 22 (Supplies). #### 5. Shopify Capital advance A Shopify Capital advance is a loan. Book the inbound funds as Notes Payable (liability), not as revenue. Repayments are deducted from each daily Shopify Payments deposit. Each repayment splits between principal (reduces the loan balance) and interest expense (Schedule C Line 16b). Booking the original advance as income inflates revenue by tens of thousands and then double-counts the repayment as an expense. It's the most common Shopify Capital error. #### 6. POS hardware Card readers, terminals, and Shopify POS hardware are capital purchases. Book to Equipment as an asset and depreciate, or expense to Office Supplies if the invoice is under the §263 de minimis safe harbor ($2,500 per invoice for taxpayers without an audited financial statement). Don't bury hardware in "Shopify subscription". #### 7. Returns and chargebacks Refunds are contra-revenue, not an expense. Shopify chargeback dispute fees ($15 typical) go to Bank Charges. If the chargeback is upheld, the lost revenue is a refund (contra-revenue) plus the fee. #### 8. App subscriptions on the Shopify bill Apps like Klaviyo (email), Recharge (subscriptions), Yotpo (reviews), and ShipStation often bill through your Shopify account for convenience. Ride-along billing doesn't change the category. Klaviyo is still Marketing/Software with Klaviyo as the vendor, not Shopify. Otherwise you can't see what each app actually costs. ### How Growthy categorizes Shopify automatically Growthy suggests a category for the Shopify lines on your bank feed: subscription to Software, Payments fees to Merchant Account Fees, app charges to their own vendor. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### What expense category is Shopify in QuickBooks? Shopify is two categories. The monthly subscription is Software (or Dues & Subscriptions). Shopify Payments processing fees are Merchant Account Fees. App charges billed through Shopify are categorized to each app's vendor. #### How do I separate Shopify subscription from Shopify Payments fees? Look at the Shopify billing statement, not just the bank feed. The statement breaks out subscription fees, processing fees, app charges, shipping labels, and Capital repayments. Book each line to its own GL. In QBO, use sub-accounts under Shopify if you want the same parent vendor. #### Do I record Shopify sales as gross or net? Gross. Always gross. The Shopify Payments deposit is net of fees and refunds, but for accurate revenue, COGS, and gross margin reporting, post gross sales to revenue, then book the fees and refunds as separate lines. #### Will Shopify send me a 1099-K? For TY2026, yes if you cross both $20,000 in gross payments AND 200 transactions through Shopify Payments. OBBBA reverted the threshold from the $5,000 interim. Even if you don't get a 1099-K, you still report all revenue. The form doesn't define what's taxable. #### How do I categorize Shopify Capital? The advance is Notes Payable (balance sheet liability), not revenue. Each repayment splits between principal (reduces the loan) and interest (Schedule C Line 16b). Track the loan balance separately from any other Shopify activity. #### What Schedule C line covers Shopify? Both the subscription and the Payments processing fees go on Line 27a (Other expenses), labeled separately as "E-commerce platform subscription" and "Merchant processing fees". Shipping labels go on Line 38 (Materials & supplies) for resellers or Line 22 (Supplies) for service businesses. Capital advance interest goes on Line 16b. #### How do I record Shopify sales tax collected? Sales tax collected at checkout is Sales Tax Payable, a balance sheet liability. It's not revenue. When you (or Shopify) remit to the state, you reduce the liability. If you book it as revenue, you'll overstate income and have to unwind the mess at tax time. #### Do I issue a 1099 to Shopify? No. Shopify Inc. is a publicly traded C-corp (NYSE: SHOP), exempt from 1099-NEC reporting under §6041. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize Stripe fees](/blog/categorize-stripe-fees) (payment-processing parallel) - [How to categorize Amazon Business](/blog/categorize-amazon-business) (e-commerce supplies parallel) - [How to categorize Adobe Creative Cloud](/blog/categorize-adobe-creative-cloud) Stop letting Shopify Payments rot your books. [Get started with Growthy](/signup?utm_content=categorize-shopify) and review the suggested split instead of rebuilding it by hand. > *1099-K TY2026 threshold ($20,000 + 200 transactions) verified against tax-thresholds-2026.yaml on 2026-07-03 per OBBBA. Pricing verified shopify.com/pricing 2026-05-20. Sales-tax remittance via Shopify Tax varies by state and nexus.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Upwork in QuickBooks (And Why You Don't Issue a 1099)](https://growthy.com/blog/categorize-upwork): Upwork goes to Contract Labor (Schedule C Line 11). You don't issue a 1099-NEC to Upwork OR to the freelancer: §6041 corporate exemption applies because Upwork is the payee. The direct-pay-outside-platform $2,000 TY2026 OBBBA threshold is the trap. ## How to Categorize Upwork in QuickBooks (And Why You Don't Issue a 1099) It's late January. A bookkeeper pulls the prior-year vendor list, sees $4,800 paid to "Sarah the designer" through Upwork, and issues her a 1099-NEC. A few weeks later, Sarah forwards a confused email: she already got a 1099-K from Upwork covering the same payments. Now the IRS has two reports for one income stream, and somebody owes an explanation. The bookkeeper didn't actually pay Sarah. They paid Upwork, and Upwork paid Sarah. That distinction is the entire ballgame. Upwork Global Inc. is a C-corporation, and IRC §6041 exempts payments to corporations from 1099-NEC reporting. The mistake is easy to make because the QuickBooks vendor list shows Sarah's name on the bill description, not Upwork's legal entity. This article covers where Upwork payments go in your [chart of accounts](/topics/chart-of-accounts), the 1099 rules under OBBBA for tax year 2026, how to handle the Marketplace Fee, foreign freelancers, and when developer payments need to be capitalized instead of expensed. > **Do I issue a 1099 to my Upwork freelancer?** > > No, in almost every case. You paid Upwork (a C-corporation), and Upwork paid the freelancer. IRC §6041 exempts corporate payees from 1099-NEC reporting, so no form goes to Upwork or to the freelancer from you. Upwork itself issues a 1099-K to qualifying US freelancers who cross $20,000 AND 200 transactions in TY2026 (the OBBBA threshold). The exception: if you pay the freelancer directly outside Upwork's flow (their PayPal, Venmo, or bank), you do owe a 1099-NEC when total payments hit $2,000 in TY2026 (OBBBA raised the threshold from $600). Categorize Upwork payments to Contract Labor on Schedule C Line 11. The 5% Marketplace Fee belongs in the same bucket, not in Bank Charges. ### Key Takeaways - **Contract Labor, Schedule C Line 11** - Upwork payments map to QBO "Contract Labor" or "Subcontractors" (Detail Type: Cost of Labor - COS), Xero account 310 or 477. - **No 1099-NEC to Upwork or the freelancer** - You paid a C-corp (Upwork), so §6041 exempts the payment. Upwork handles freelancer reporting via 1099-K. - **TY2026 1099-NEC threshold is $2,000** - OBBBA raised this from $600. Only relevant if you bypass Upwork and pay a contractor directly. - **Marketplace Fee (5%) stays in Contract Labor** - Don't split it into Bank Charges. It's a service fee on labor, not a banking cost. - **Foreign freelancers need W-8BEN, not 1099** - Upwork collects the form. Non-US persons working outside the US aren't 1099 reportable. - **§263A may apply to software builds** - Custom software with a 3+ year useful life may need capitalize-and-amortize treatment, not immediate expense. ### What is Upwork? Upwork is a freelance marketplace where businesses post jobs and freelancers bid. Two payment models: hourly contracts with timer-tracked hours, and fixed-price milestones released on delivery. Upwork charges the client a 5% Marketplace Fee on contract value. Freelancers pay their own service fee (10% sliding to 5% by tenure with a client). The platform is common for design, development, content, virtual assistants, and marketing work. ### Where Upwork goes in your books | Field | Value | | --- | --- | | QBO account | **Contract Labor** or Subcontractors (Detail Type: Cost of Labor - COS for hire tied to revenue; Subcontractors for general project work) | | Xero account code | 310 (Contract Labor) or 477 (Subcontractor Costs) | | Schedule C | **Line 11 (Contract Labor)**. Line 17 (Legal & Professional Services) only when the work is professional services (CPA, attorney, consultant) | | Form 1120 / 1120-S | Line 26 Other deductions, labeled "Contract labor" | | MCC range | 7389 (Business Services Not Elsewhere Classified) | | 1099-NEC required? | **No** to Upwork (corporate exemption §6041). **No** to the freelancer (you didn't pay them). | | Sales-tax flag | As of 2026, generally not subject to sales tax on services in most states. HI, NM, SD, and WV tax services broadly, but treatment varies by state and locality and changes, so verify your state's (and city's) current rule. | ### The Difficult 20% — The 1099 Landmine and Other Upwork Edge Cases This is the #1 contractor-payment mistake bookkeepers make. The QuickBooks forum threads on this topic are frequently wrong, so the section below covers what actually happens. #### You do NOT issue a 1099-NEC to your Upwork freelancer Concrete example: you paid $4,800 in TY2026 to "Sarah the designer" through Upwork. The 1099-NEC you owe Sarah is $0. The IRS treats Upwork as your payee. Upwork (Upwork Global Inc., a C-corp) is exempt from 1099-NEC under §6041. Sarah gets her own 1099-K directly from Upwork if she crossed $20,000 AND 200 transactions across all her clients on the platform. Your books show one vendor (Upwork) with $4,800 in Contract Labor, no 1099 obligation. #### Bring Your Own Contractor (BYOC) and Upwork Payroll If you use Upwork's payroll product, Upwork becomes the W-2 employer of record for that worker. You still book the expense as Contract Labor on your side. Upwork handles W-2 issuance, payroll tax withholding, and worker's comp. No 1099 either way, and no payroll-tax exposure for you. #### Hourly vs Fixed-Price reporting Both contract types go to Contract Labor / Line 11. Hourly contracts bill incrementally as the timer logs hours; fixed-price contracts post on milestone release. Cash-basis books recognize the expense at deposit (when Upwork pulls funds). Accrual-basis books recognize at completion (when the freelancer delivers the milestone or logs the hours). Most small businesses on QBO use cash-basis, so the post date matches the bank transaction. #### Upwork Marketplace Fee (5%) The 5% client-side Marketplace Fee belongs in the same Contract Labor bucket as the underlying payment, or a sub-account called "Upwork Fees" if you want visibility for budgeting. It does not belong in Bank Charges. It's a service fee on labor, not a banking transaction. Splitting it out as Bank Charges understates your true cost of contract labor and misclassifies an operating expense as a financing cost. #### Foreign freelancers Different rules apply. The IRS uses Form W-8BEN to establish non-US-person status, and Upwork collects the W-8BEN from the freelancer at onboarding. You don't issue a 1099 for non-US persons performing services outside the US (no US-source income for them). The expense still books as Contract Labor on your side. If Upwork ever asks you to confirm a freelancer's status, point them at the W-8BEN on file. #### §263A capitalization for long-lived software builds If the contractor is building a custom software asset you'll use for 3+ years, such as an internal tool, a customer-facing application, or a proprietary system, you may need to capitalize the development cost instead of expensing it immediately. That treatment falls under §263A or §174. Most marketing, admin, content, and design work expenses in the year incurred. The capitalization question kicks in for substantial dev engagements where the output is a durable asset. When in doubt, ask your CPA before year-end so the cost can be tracked correctly through the build. #### Direct-pay outside Upwork If you pay a freelancer's PayPal, Venmo, or bank account directly (bypassing Upwork entirely), the 1099-NEC obligation snaps back to you. The TY2026 threshold is $2,000 total payments per recipient (OBBBA raised this from $600). The freelancer is now your direct payee, not Upwork's, so §6041 corporate exemption doesn't apply. Easiest fix: keep all payments inside the Upwork flow and the 1099 question disappears. ### How Growthy categorizes Upwork automatically Growthy suggests Contract Labor for the Upwork line on your bank feed, with the Marketplace Fee landing in the same bucket. Growthy auto-categorizes high-confidence transactions; you review the rest. ### FAQ #### What expense category is Upwork in QuickBooks? Contract Labor (or Subcontractors), Detail Type: Cost of Labor - COS. The Marketplace Fee belongs in the same account. #### Do I issue a 1099-NEC to my Upwork freelancer? No. You paid Upwork (a C-corporation, §6041 exempt), and Upwork paid the freelancer. Upwork issues a 1099-K to qualifying US freelancers above $20,000 and 200 transactions in TY2026. #### What Schedule C line is Upwork? Line 11 (Contract Labor). Use Line 17 (Legal & Professional Services) only if the work is professional services from a CPA, attorney, or consultant. #### How do I categorize the Upwork Marketplace Fee? Contract Labor, same as the underlying payment. Optional: create a sub-account "Upwork Fees" for visibility. Do not use Bank Charges, because it's a service fee on labor, not a banking cost. #### Is Upwork tax deductible? Yes. Payments to Upwork for legitimate business work are ordinary and necessary business expenses, deductible in the year paid (cash-basis) or earned (accrual-basis). #### How do I categorize a foreign Upwork contractor? Same as a US contractor: Contract Labor / Line 11. No 1099 is required for non-US persons performing services outside the US, and Upwork already holds the W-8BEN on file. #### Should I capitalize Upwork developer payments for software builds? If the contractor is building a long-lived software asset (3+ year useful life), §263A or §174 may require you to capitalize and amortize rather than expense immediately. Ask your CPA before the build starts. #### What's the difference between Upwork and direct-pay 1099 contractors? Upwork payments don't trigger a 1099 from you because Upwork is your corporate payee. Direct-pay contractors (you pay their PayPal or bank outside Upwork) do trigger a 1099-NEC when annual payments reach $2,000 in TY2026 under OBBBA. ### Related - [Chart of Accounts hub](/topics/chart-of-accounts) - [How to categorize QuickBooks Payroll](/blog/categorize-quickbooks-payroll) - [How to categorize Stripe fees](/blog/categorize-stripe-fees) - [How to categorize Adobe Creative Cloud](/blog/categorize-adobe-creative-cloud) Stop guessing on contractor bookkeeping. [Get started with Growthy](/signup?utm_content=categorize-upwork) and low-confidence items wait for your review. > *1099-NEC TY2026 threshold ($2,000) and 1099-K TY2026 threshold ($20,000 + 200 transactions) verified against tax-thresholds-2026.yaml on 2026-07-03 per OBBBA. §6041 corporate exemption current. Foreign-contractor W-8BEN process current per IRS guidance 2026-05.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Payroll Processing Fees in QuickBooks (and Xero)](https://growthy.com/blog/categorize-quickbooks-payroll): QuickBooks Payroll spend splits into separate buckets: the service fee, gross wages (Schedule C Line 26), employer payroll taxes (Line 23), and employee withholdings, which are liabilities. Book each bucket to its own account. ## How to Categorize Payroll Processing Fees in QuickBooks (and Xero) Your client runs QB Payroll. You're staring at the January bank feed. In this example, there's a $98 Intuit service charge on the 3rd, a $13,456.25 payroll funding draw on the 15th, then another $98 on February 3rd. (These are example amounts, not Intuit's prices.) The naive move is to book all of it to "Payroll Expense" and call the month clean. Wrong. And it'll cost your client at tax time when the CPA can't tie wages back to Form 941. The $98 is a service fee. The $13,456.25 funding draw holds two pieces: $12,500 of gross wages (net pay plus the employee withholdings) and $956.25 of employer FICA match (6.2% Social Security plus 1.45% Medicare on $12,500, which is under the annual Social Security wage base). To keep the example simple, it leaves out FUTA and SUTA. Wages and employer taxes go on different Schedule C lines, and the fee goes on a third. The employee withholdings inside gross wages aren't extra expenses at all. They're liabilities sitting on the balance sheet until they're paid over to the IRS and the state. This guide breaks QB Payroll spend into the four buckets a clean [chart of accounts](/topics/chart-of-accounts) needs: subscription fee, gross wages, employer-paid taxes, and employee withholding liabilities. Get the split right once and your monthly close stops fighting Form 941 reconciliations. ## How should businesses categorize payroll processing fees in their chart of accounts? Book the QuickBooks Payroll subscription fee to its own expense account, such as Payroll Service Fees. Keep it separate from gross wages (Schedule C Line 26) and employer payroll taxes (Line 23). Employee withholdings are liabilities, not expenses. Use one account per bucket, every month, so your Form 941 ties to the books. **Full rules at a glance:** > The QB Payroll subscription fee goes to **Payroll Service Fees**. On Schedule C, list it under other expenses in Part V, which totals to Line 27b. Line 17 is for accountant and attorney fees. Gross wages go to **Wages & Salaries** on Line 26. Employer payroll taxes (FICA match of 6.2% Social Security up to the annual wage base plus 1.45% Medicare, FUTA, SUTA) go to **Payroll Taxes** on Line 23. Employee withholdings (federal income tax, employee FICA, state tax) are **liabilities**, not expenses, and sit in Payroll Liabilities until they're paid over. Workers' comp premiums go to **Insurance** on Line 15. For 1099s, verify the payee's W-9; payments to corporations are generally exempt under §1.6041-3(p). Check the invoice and applicable state guidance before recording any sales tax. The biggest mistake is lumping fees with wages. ### Key Takeaways - **Three different GL accounts** - QB Payroll subscription fee = its own fee account (Schedule C Part V other expenses). Gross wages = Line 26 (Wages). Employer payroll taxes = Line 23 (Taxes & Licenses). One line item per bucket, every month. - **Employee withholdings are liabilities** - Federal income tax, employee FICA, and state withholding deducted from gross pay are not expenses. They're Payroll Liabilities on the balance sheet until they're paid over to the IRS and the state. - **Workers' comp goes to Insurance** - Even when you buy it through your payroll provider, the premium hits Schedule C Line 15 (Insurance), not payroll fees. - **1099 contractor processing is a separate split** - If your payroll service files 1099-NECs for you, the processing fee is Payroll Service Fees. The actual contractor payments are Contract Labor on Schedule C Line 11. - **Check the W-9 before any 1099** - Verify the payee's W-9; payments to corporations are generally exempt under Treas. Reg. §1.6041-3(p). - **Always book gross, not net** - Debit Wages for the gross amount, credit Payroll Liabilities for withholdings, credit Cash for the net deposit. Booking only the net wipes the liabilities and breaks your 941 reconciliation. ### Where QuickBooks Payroll goes in your books Use the payroll register and service invoice to identify each bucket. The subscription fee is one bucket. The actual payroll (wages, taxes, withholdings) is a separate set of buckets. Don't mash them together. #### Part A: The subscription fee | Field | Value | | --- | --- | | QBO account | Payroll Service Fees. Some firms use a Bank Charges sub-account "Payroll Fees" | | Xero account | The matching payroll-fee or professional-fees expense account in your Xero chart (codes vary by chart) | | Schedule C | Part V other expenses (totals to Line 27b). Line 17 is for accountant and attorney fees | | Form 1120 / 1120-S | Line 26 (Other deductions) / Line 20 (Other deductions) | | 1099-NEC | Verify the payee's W-9; payments to corporations are generally exempt under §1.6041-3(p) | | Sales tax | Check the invoice and applicable state guidance before recording any sales tax | #### Part B: The actual payroll | Bucket | QBO account | Schedule C | | --- | --- | --- | | Gross wages to employees | Wages & Salaries | Line 26 (Wages) | | Employer FICA match (6.2% Social Security up to the wage base + 1.45% Medicare) | Payroll Taxes | Line 23 (Taxes & Licenses) | | Employer FUTA + SUTA | Payroll Taxes | Line 23 (Taxes & Licenses) | | Employee benefits (health) | Employee Benefits | Line 14 (Employee Benefit Programs) | | 401(k) match | Retirement Plan Contributions | Line 19 (Pension and profit-sharing plans) | | Workers' comp insurance | Insurance | Line 15 (Insurance) | | Garnishments, voluntary deductions | Payroll Liabilities | Balance sheet | ### Edge Cases: Where QB Payroll Trips Bookkeepers Up #### Lumping wages with payroll fees Take the same example. The monthly service fee is $98 (an example amount, not Intuit's price). Add $12,500 in gross wages and $956.25 in employer FICA, and you've got three different Schedule C lines: the fee line, 26, and 23. The naive bookkeeper books all $13,554.25 ($98 + $12,500 + $956.25) to a single "Payroll Expense" account. The CPA then has to unwind it at year-end. Split at entry, not at year-end. #### Gross vs net wage entry Always book wages gross. Debit Wages & Salaries for the gross pay. Credit Payroll Liabilities for employee withholdings (federal income tax, employee FICA, state tax). Credit Cash for the net deposit that leaves the bank. The naive bookkeeper sees only the net amount, books that single number to Wages, and skips the liabilities. The balance sheet quietly rots, and your Form 941 won't reconcile to the GL. #### Employer-paid vs employee-paid taxes Employer FICA match (6.2% Social Security up to the annual wage base plus 1.45% Medicare), FUTA, and SUTA are employer expenses on Schedule C Line 23. Employee FICA (Social Security and Medicare), federal income tax withholding, and state withholding are employee money. Liabilities, not expenses. The cash is just passing through on its way to the Treasury. #### Workers' comp through a payroll provider The premium is Insurance (Schedule C Line 15), not Payroll Service Fees. The payroll service is the delivery mechanism. Classification follows the expense, not the vendor. #### 1099 contractor processing via QB Payroll If your payroll service files 1099-NECs for you at year-end, the processing fee is Payroll Service Fees. The actual contractor payments are Contract Labor on Schedule C Line 11. See the [Upwork categorization guide](/blog/categorize-upwork) for the contractor-payment side. #### Direct-deposit per-charge fees If a per-deposit charge appears as a separate line item, it's still Payroll Service Fees, not Bank Charges. The fee is for the payroll service, not the banking transaction. #### Multi-state payroll surcharges If your plan charges extra for each additional state, the surcharge goes to Payroll Service Fees alongside the base subscription. Don't carve out a separate "Multi-State Payroll" account. #### Job-costed payroll For construction, agency, or any project-billed business, you may split wages across class or customer. Each piece still flows to Wages & Salaries (or to COGS-Labor if you treat direct labor as cost of goods). The subscription fee doesn't get job-costed. It's overhead. Keep it at the entity level. ### How Growthy helps categorize QuickBooks Payroll Growthy pulls the QB Payroll charges in through Plaid bank feeds and suggests a category for each one with a confidence score. Growthy auto-categorizes high-confidence transactions; you review the rest, each with its confidence score. New entries wait for your approval before they sync to QuickBooks, and the categorization audit history shows every change. ## Frequently asked questions ### How should businesses categorize payroll processing fees in their chart of accounts? The subscription fee goes to its own account, such as Payroll Service Fees. On Schedule C, list it in Part V other expenses (Line 27b). On Form 1120 it's an other deduction (Line 26), and on Form 1120-S, Line 20. Wages, employer taxes, benefits, and workers' comp are separate deductions on their own lines, so don't lump them in with the fee. ### How do I categorize payroll in QuickBooks Online? Split every payroll cycle into buckets. Use the payroll register and service invoice to identify each bucket. Book the fee to its fee account, then split the payroll into Wages & Salaries, Payroll Taxes, and Payroll Liabilities. ### How do I categorize payroll taxes in QuickBooks Online? Employer-paid taxes (FICA match of 6.2% Social Security up to the annual wage base plus 1.45% Medicare, FUTA, SUTA) are expenses on Schedule C Line 23. Employee withholdings (federal income tax, employee FICA, state tax) are liabilities, not expenses. They sit in Payroll Liabilities until they're paid over. Book wages gross, then credit the withholdings to Payroll Liabilities. ### Is workers' comp a payroll expense? Not for categorization. Workers' comp premiums are Insurance, Schedule C Line 15. They aren't Payroll Service Fees, even when you buy the policy through your payroll provider. The payroll service is only the delivery mechanism. Classification follows the expense, not the vendor. ### What chart of accounts category should contract labor fall under? Contract Labor, Schedule C Line 11. If your payroll service files 1099-NECs for you, the processing fee for that filing is Payroll Service Fees. The actual contractor payments those 1099s report are Contract Labor. Keep the fee and the payments in separate accounts. ### Do I issue a 1099 to Intuit for QB Payroll? Verify the payee's W-9; payments to corporations are generally exempt under §1.6041-3(p). The exceptions are attorneys' fees and medical and health care payments, and payroll service fees are neither. ### Are QuickBooks Payroll fees subject to sales tax? Check the invoice and applicable state guidance before recording any sales tax. If tax is charged, keep it with the fee in the same expense account. ### Related - [Chart of Accounts hub](/topics/chart-of-accounts) - [How to categorize Upwork](/blog/categorize-upwork) (contractor labor parallel) - [How to categorize Stripe fees](/blog/categorize-stripe-fees) (service-fee parallel) - [How to categorize Google Workspace](/blog/categorize-google-workspace) (SaaS subscription parallel) Stop lumping fees, wages, and employer taxes together. [Get started with Growthy](/signup?utm_content=categorize-quickbooks-payroll). Confidence-scored suggestions with human review. > *FICA rate 7.65% (6.2% Social Security up to the annual wage base + 1.45% Medicare), per IRS Publication 15.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ### [How to Categorize Amazon Business Purchases in QuickBooks (By Line Item)](https://growthy.com/blog/categorize-amazon-business): Amazon Business expense category depends on what's in the box. A $487 example order with a printer, paper, coffee maker, and a book gets split line by line. The §263(a) $2,500 de minimis rule plus tax-exempt misuse traps round it out. ## How to Categorize Amazon Business Purchases in QuickBooks (By Line Item) Here's an example. A single Amazon Business order lands in your bank feed at $487. Inside that order: a $235 printer, $45 in printer paper, an $89 break-room coffee maker, and a $118 reference book. Four items. Separate treatment for each. One transaction in QuickBooks. You can split-categorize line by line. That's correct, but slow. Or you can dump the whole $487 to Office Supplies. That's fast, but it can be wrong on the printer and the book. The printer belongs in Office Equipment unless it qualifies for the de minimis safe harbor. Classify the reference book by its useful life and the applicable materials-and-supplies or expensing rules. Coding both to Office Supplies can hide a depreciable asset and inflates your office expense line on Schedule C. This guide covers Amazon Business categorization by line item, the §263(a) de minimis safe harbor, sales tax and 1099 rules, and the seven cases that need separate treatment. For the broader framework, see the [chart of accounts hub](/topics/chart-of-accounts). ## How do I categorize Amazon Business purchases in my bookkeeping? Code each Amazon Business order by what's in the box, not by merchant. Office supplies go to Office Supplies (Schedule C Line 18, office expense). Equipment generally capitalizes to an asset account unless it qualifies for the §263(a) de minimis safe harbor. Software and subscriptions go to Dues & Subscriptions or Software (other expenses, Part V). Classify reference books by useful life. Split multi-item receipts line by line. **Full rules at a glance:** > It depends on what you bought. Office supplies go to Office Supplies (Schedule C Line 18). The de minimis safe harbor covers qualifying amounts up to $2,500 per item or invoice without an applicable financial statement (AFS), or $5,000 with an AFS, if elected; Schedule C reports those amounts as other expenses (Part V). Otherwise, assess capitalization and available deductions (depreciation goes on Line 13). Computers and peripherals go to Computer Equipment. Software and subscriptions go to Dues & Subscriptions or Software (Part V other expenses, which total to Line 27b). Classify reference books by useful life and the applicable materials-and-supplies or expensing rules. For 1099s, verify the payee's W-9; payments to corporations are generally exempt under §1.6041-3(p). Sales tax you pay on an item is part of that item's cost. Multi-line receipts need split-categorization. Use tax-exempt purchasing only if your business actually qualifies for the exemption. ### Key Takeaways - **GL varies by item, not by merchant.** One Amazon order can hit four accounts. Code line by line. - **§263(a) de minimis covers qualifying amounts up to $2,500 per item or invoice** without an AFS, or $5,000 with one, if elected. Above that, assess capitalization and available deductions. - **Sales tax follows the item.** Sales tax on property you buy for the business is part of the item's cost, so it lands in the same account. - **Check the W-9 before any 1099.** Verify the payee's W-9; payments to corporations are generally exempt under §1.6041-3(p). - **Refunds = contra to the original GL.** A returned printer reduces Office Equipment, not Income. - **Tax-exempt purchasing needs a real exemption.** Verify exemption eligibility using applicable state guidance before purchasing tax-free. ### What is Amazon Business? Amazon Business is Amazon's store for business buyers. Its accounts can hold multiple users. Prime Business has a free tier for sole proprietors with a personal Prime membership and paid tiers for larger teams. Plans and prices change, so check Amazon's site. Offices use it for supplies. Service businesses buy tools and equipment. Resellers source inventory. Startups buy everything from desk chairs to coffee. ### Where Amazon Business purchases go in your books The category depends entirely on what's in the box. Here's the line-item mapping. | Purchase type | QBO account | Schedule C | | --- | --- | --- | | Office supplies (pens, paper, toner) | Office Supplies | Line 18 (Office expense) | | Office equipment (printer, shredder) | Office Equipment (asset, depreciate), or expensed if §263(a) de minimis elected and $2,500 or less, subject to the safe-harbor requirements | Line 13, or Part V other expenses if de minimis | | Computers, monitors, peripherals | Computer Equipment (asset), or expensed if de minimis elected | Line 13, or Part V other expenses if de minimis | | Software, subscriptions | Software or Dues & Subscriptions | Part V other expenses (Line 27b) | | Reference books | Classify by useful life and the applicable materials-and-supplies or expensing rules | Depends on treatment | | Kitchen and break-room supplies | Office Supplies | Line 18 or Line 22 | | Cleaning supplies | Supplies | Line 22, subject to materials-and-supplies rules | | Promotional items | Advertising or Marketing | Advertising line | | Shipping supplies (boxes, tape) | COGS Packaging | Part III, cost of goods sold (resellers) | Sales tax, 1099, and Xero mapping in one place: | Field | Value | | --- | --- | | Xero account | Varies by line: use the matching office supplies, computer equipment, or general expense account in your Xero chart (codes vary by chart) | | Form 1120 / 1120-S | Varies by item, same logic as Schedule C | | 1099-NEC required | Verify the payee's W-9; payments to corporations are generally exempt under §1.6041-3(p). | | Sales tax | Check each order's invoice for a sales-tax line. Sales tax on property you buy for the business is part of that property's cost. Rules vary by state and locality and change, so verify your state's current treatment. | ### Edge Cases: Where Amazon Business gets messy The framework is simple. The following seven cases need separate treatment. #### Multi-line receipts (the $487 problem) Back to the example. The $235 printer goes to Office Equipment as an asset unless you elected de minimis, in which case you can expense it. The $45 paper is Office Supplies. The $89 coffee maker may qualify as materials and supplies under the rule for property costing $200 or less; assess Line 22 treatment. The $118 book: classify it by useful life and the applicable materials-and-supplies or expensing rules. Split the transaction across lines that match the receipt. Coding the whole $487 to Office Supplies because the bank feed shows one AMAZON BUSINESS charge can bury a depreciable asset. Year-end depreciation then misses the printer. #### §263(a) de minimis rule Under the §263(a) de minimis safe harbor, qualifying purchases of $2,500 or less per item or invoice can be expensed instead of capitalized. A $1,800 monitor can be expensed if you elected. A $3,200 server falls outside the safe harbor without an AFS, so assess capitalization and available deductions. You make the election each year by attaching a statement to your timely filed return. You also need accounting procedures in place at the start of the year that expense these items on your books. The election is annual, not a change in accounting method, so you don't file Form 3115 to start or stop using it. The threshold rises to $5,000 per item or invoice if you have an applicable financial statement. #### Returns and refunds The refund can post later as a separate Amazon credit. Match it to the original purchase and book it as contra to the same GL account. A returned $235 printer reduces Office Equipment by $235. It does not get booked as Income. Booking refunds as miscellaneous income inflates your top line and overstates asset basis. #### Amazon Prime Business membership A paid Prime Business plan fee is Dues & Subscriptions, reported under other expenses in Schedule C Part V. Not Office Supplies. #### Tax-exempt account misuse Amazon Business tax-exempt purchasing is only for buyers who qualify for an exemption. Verify exemption eligibility using applicable state guidance before purchasing tax-free. Don't claim an exemption just to skip the sales tax. #### Amazon gift cards for clients Gift cards sent to clients are Gifts (Schedule C Part V other expenses), capped at $25 per recipient per year under §274(b). The cap is per recipient per year, not per gift. Track recipient name and date in the QBO memo field. Spend over $25 and the excess is non-deductible. #### AWS charges on the Amazon Business invoice If AWS charges ever show up on an Amazon Business invoice, they're Cloud Services, not Office Supplies. See [How to categorize AWS](/blog/categorize-aws). ### How Growthy helps categorize Amazon Business Growthy pulls the Amazon Business charge in through Plaid bank feeds and suggests a category with a confidence score. Growthy auto-categorizes high-confidence transactions; you review the rest, each with its confidence score. New entries wait for your approval before they sync to QuickBooks, and the categorization audit history shows every change. ## Frequently asked questions ### What expense category is Amazon Business, and which Schedule C line? It varies by line item. Office supplies go to Office Supplies (Line 18). Equipment that doesn't qualify for the de minimis safe harbor ($2,500 without an AFS, $5,000 with one) generally capitalizes to Computer Equipment or Office Equipment; assess capitalization and available deductions. Software and subscriptions go to Dues & Subscriptions or Software (Part V other expenses, totaled on Line 27b). Classify reference books by useful life. Promo items go to Advertising, and resellers' packaging goes in cost of goods sold. Code by item, not by merchant. ### How do I split a multi-item Amazon Business receipt, and what about shipping? Allocate the purchase across the appropriate item categories using the receipt. The split total must match the bank-feed total exactly, including sales tax and shipping prorated across lines. Sales tax on an item is part of its cost. Shipping isn't its own category on an order. Each item line carries its share. ### Do I issue a 1099 to Amazon? Verify the payee's W-9; payments to corporations are generally exempt under §1.6041-3(p). Keep your receipts and the Amazon Business invoice history for your records. ### Is Amazon Business tax deductible? Yes, when the purchase is an ordinary and necessary business expense under §162. Personal purchases on the business account are not deductible, even if they ran through the Amazon Business login. Keep personal and business orders on separate accounts so your bank feed and your books stay clean. ### How do I record Amazon Business returns and refunds? Book the refund as a contra entry to the original GL account. A returned printer reduces Office Equipment by the refund amount. It does not get booked as Income. The refund can post later as a separate Amazon credit, so match it back to the original order before you code it. ### Do I owe sales tax on Amazon Business orders? It depends on your state and what you buy. Check each order's invoice for a sales-tax line. Sales tax you pay on business purchases is part of the item's cost, so it goes to the same account as the item. Rules vary by state and locality and change. ### What's the de minimis rule for Amazon equipment under $2,500? The §263(a) safe harbor lets you expense qualifying purchases of $2,500 or less per item or invoice instead of capitalizing and depreciating them. You elect it each year with a statement attached to your timely filed return, and you need book procedures in place at the start of the year. The threshold rises to $5,000 with an applicable financial statement. ### Related - [Chart of accounts hub](/topics/chart-of-accounts) - [How to categorize Adobe Creative Cloud](/blog/categorize-adobe-creative-cloud) - [How to categorize Shopify](/blog/categorize-shopify) - [How to categorize AWS](/blog/categorize-aws) Stop dumping every Amazon order into Office Supplies. [Get started with Growthy](/signup?utm_content=categorize-amazon-business). > *De minimis safe harbor: Treas. Reg. §1.263(a)-1(f). Gift limit: IRC §274(b). Sales-tax rules vary by state and locality and change.* > > Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. ## Optional - [Blog (all articles)](https://growthy.com/blog) - [Search](https://growthy.com/search)