<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[AI Ledger]]></title><description><![CDATA[Real AI workflows for solo and small-team QBO bookkeepers. 2 hours back every close.]]></description><link>https://ailedger.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg</url><title>AI Ledger</title><link>https://ailedger.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 01 Sep 2026 07:30:41 GMT</lastBuildDate><atom:link href="/__u/ailedger.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Nata]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[ailedger@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[ailedger@substack.com]]></itunes:email><itunes:name><![CDATA[Nata]]></itunes:name></itunes:owner><itunes:author><![CDATA[Nata]]></itunes:author><googleplay:owner><![CDATA[ailedger@substack.com]]></googleplay:owner><googleplay:email><![CDATA[ailedger@substack.com]]></googleplay:email><googleplay:author><![CDATA[Nata]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Quick Win #186: Catch the Transfers and Card Payments Your Client Double-Counted as Expenses with ChatGPT in 7 Minutes]]></title><description><![CDATA[Moving money between a client's own accounts isn't spending &#8212; but in the bank feed it looks identical to it. When a transfer gets expensed, the same dollar is deducted twice and the card balance never goes down. Here's the 7-minute sweep.]]></description><link>https://ailedger.substack.com/p/quick-win-186-catch-the-transfers</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-186-catch-the-transfers</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Mon, 31 Aug 2026 16:03:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a category of error that never looks like an error. It looks like a slightly expensive month.</p><p>Here is how it happens. The client pays their business credit card from checking. The bank feed shows $6,400 leaving the checking account. QBO offers a category &#8212; often whatever was used last time, or a plausible guess like Office Expense &#8212; and the client, moving fast on a Sunday night, accepts it. That $6,400 is now an expense on the P&amp;L. Meanwhile every individual charge on that credit card was already categorized as an expense when it imported. The same money is deducted twice.</p><p>The same thing happens with owner contributions, transfers to a savings or tax-reserve account, transfers between two checking accounts, and loan payments where the entire payment gets expensed instead of splitting principal against the loan balance.</p><p>If you are thinking QBO catches this automatically, it catches the easy half. It matches transfers where both accounts are connected, the amounts are identical, and the dates line up. It misses the ones where only one side of the transfer is a connected account, where the amounts differ because a fee came out, where the transfer straddles a month boundary, or where the client already accepted a category before the other side imported. Every miss lands in the exact blind spot this review covers.</p><p>There is a second tell worth knowing, because it is visible in ten seconds without any export. If card payments are being expensed instead of applied to the card, the credit card liability on the balance sheet never really goes down &#8212; it just grows, month after month, while the client insists they pay it off. A liability that only climbs on a client who says they pay in full is this error, nearly every time.</p><h3>The 7-minute review</h3><p><strong>1. Export from QBO (2 min).</strong> Reports &#8594; Transaction Detail by Account for the trailing 12 months, filtered to all expense accounts, plus a second export of the Transfer account type if the client uses one. You need date, payee/description, account, amount, memo, and the source bank account. Also pull Reports &#8594; Balance Sheet with a monthly comparison column for the same 12 months, so you can see how each credit card and loan balance moved. Export both to Excel.</p><p><strong>2. Paste into ChatGPT (30 sec):</strong></p><blockquote><p>I'm a bookkeeper reviewing a QBO client's expenses for transfers between the client's own accounts that were miscoded as expenses, which double-counts the deduction. Below is a trailing-12-month expense transaction detail with date, payee/description, account, amount, memo, and source account, followed by a monthly balance sheet comparison. Analyze: (1) PAYEE SIGNATURES &#8212; flag every expense whose payee or description suggests an internal money movement rather than a purchase: bank and credit card issuer names, "payment thank you", "online payment", "transfer", "xfer", "ACH", the client's own entity or account names, savings, tax reserve, and any payee that matches a bank or card account listed in the balance sheet. Group by payee with count and total dollars. (2) AMOUNT MATCHING &#8212; find expense transactions whose amount matches, within two dollars, a deposit or another account's activity within a three-day window, and list them as matched pairs with both dates. These are the most likely uncategorized transfers. (3) RECURRING ROUND PAYMENTS &#8212; flag expenses that recur monthly to the same payee at amounts that vary widely month to month, which is the pattern of a credit card balance payment rather than a subscription or bill. (4) BALANCE SHEET CROSS-CHECK &#8212; for each credit card and loan account, state whether the balance decreased in months where a large matching expense appears. If a card balance never decreases while large payments to that issuer are being expensed, flag the account as high confidence. (5) LOAN SPLIT ERRORS &#8212; flag any loan or note payee where the full payment amount hits an expense account, and note that only the interest portion belongs on the P&amp;L. (6) OUTPUT &#8212; a table sorted by dollar impact with columns for date, payee, amount, account it hit, my confidence tier, and the correction I should make, using HIGH only where two independent signals agree. (7) TOTAL &#8212; the estimated overstatement of expenses for the 12 months if every HIGH item is a true transfer.</p></blockquote><p><strong>3. Verify before you touch anything (4 min).</strong> This is the step that separates a cleanup from a disaster. For each HIGH item, confirm the other side of the transaction actually exists in QBO. If the credit card is set up as an account in QBO and its charges are all categorized, then the payment is a transfer and expensing it is a genuine double-count &#8212; recategorize it to the credit card account. But if the card is *not* in QBO and the client only ever records the monthly payment, that expense is the only record of that spending. Deleting it erases real deductions. In that case the fix is a setup conversation, not a reclass.</p><p>Work top-down by dollar impact and stop when the remaining items are under whatever materiality you would defend. Fix the current open period directly; anything in a closed or filed period goes on a list for the client's CPA rather than into a locked year.</p><div><hr></div><p><strong>This is one of 35+ done-for-you QBO workflows in the Member Library.</strong> First 50 readers to go paid lock in <strong>$50/year for life</strong> (annual goes to $120 this fall).</p><p><strong><a href="/__u/ailedger.substack.com/p/start-here-your-ai-ledger-member">&#8594; See what is inside the Member Library</a></strong></p><div><hr></div><p><strong>Paid members unlock the Member Library</strong> &#8212; 35+ done-for-you QBO workflows, plus every Deep Dive. <strong>The first 50 readers to go paid lock in $50/year for life (annual goes to $120 this fall).</strong> <a href="/__u/ailedger.substack.com/p/start-here-your-ai-ledger-member">See what is inside the Member Library &#8594;</a></p><div><hr></div><p><strong>Run this on any new client during cleanup, and once a year on existing ones &#8212; especially the ones with more than two bank accounts.</strong> The clients most exposed are the ones who transfer money constantly between operating, savings, and tax accounts, because every one of those movements is a chance for the feed to guess wrong.</p><p>Reply or comment &#8212; I read every one.</p>]]></content:encoded></item><item><title><![CDATA[Quick Win #185: Uncover Who Can Quietly Delete Transactions in Your Client's QBO with Claude in 7 Minutes]]></title><description><![CDATA[The bookkeeper who left in 2024 is still an active user. The office manager got Company Admin because of one permission error. A deleted transaction shows up on no report &#8212; only in the audit log nobody reads.]]></description><link>https://ailedger.substack.com/p/quick-win-185-uncover-who-can-quietly</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-185-uncover-who-can-quietly</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Sun, 30 Aug 2026 16:03:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>QBO access in a small business accumulates like a junk drawer. Nothing is ever removed, because removing things requires someone to decide it's safe.</p><p>Open a client's user list and you'll usually find some version of this: a bookkeeper who left eighteen months ago, still active. An accountant from a firm they no longer use. An office manager with Company Admin, granted because a permission error blocked them once on a Friday afternoon and nobody went back to narrow it. Maybe a "temp" login from a cleanup project in 2023.</p><p>Every one of those accounts can delete a transaction. And a deleted transaction is genuinely invisible &#8212; it doesn't show as voided, it doesn't leave a gap anyone will notice on a report, it simply isn't there anymore. The only record is the audit log, which no small business owner has ever opened.</p><p>The natural objection is that this is IT hygiene, not bookkeeping, and that raising it implies you don't trust people the client trusts. That's the reason it never gets done. But segregation of duties isn't a statement about anyone's character &#8212; it's a statement about structure, and you're the only person in the room who actually understands what "Company Admin" enables versus "Standard user, limited."</p><p>There's also a self-interested reason, and it's a good one. When the books don't tie and a transaction has vanished, the first person asked to explain it is the bookkeeper. Having produced an access map six months earlier &#8212; one that says exactly who could have done it and that you raised the risk in writing &#8212; changes that conversation from defensive to factual.</p><h3>The 7-minute audit</h3><p><strong>1. Pull the two sources (2 min).</strong> Gear icon &#8594; Manage Users. Capture every user: name, email, role, status, and date added. Note anyone showing as invited-but-never-accepted, too &#8212; a stale invitation is a live credential. Then Gear icon &#8594; Audit Log. Filter to the trailing 12 months, set events to Deleted and Changed, and export. If the client is on a plan with limited audit log export, filter to Deleted only and screenshot the summary.</p><p><strong>2. Paste into Claude (30 sec):</strong></p><blockquote><p>I'm a bookkeeper running an access and segregation-of-duties review on a client's QBO file. Below are the current user list (name, email, role, status, date added) and a trailing-12-month audit log filtered to deleted and changed transactions. Analyze: (1) ACCESS MAP &#8212; for each user, state plainly what their role lets them do in terms that a non-technical owner understands. Specifically call out who can delete transactions, who can change closed periods, who can add or modify users, and who can move money. (2) STALE ACCESS &#8212; flag users who appear inactive in the audit log for 90+ days, any invitation never accepted, any email address on a domain that doesn't match the company or a current service provider, and any account whose name suggests a departed employee or a former firm. (3) OVER-PERMISSIONED &#8212; identify users whose role exceeds what their audit-log activity suggests they actually do. If someone has Company Admin but only ever enters bills, say so and name the narrower role that would cover their real usage. (4) DELETION ACTIVITY &#8212; from the audit log, summarize deleted transactions by user, by month, and by transaction type. Flag any concentration: one user doing most deletions, deletions clustered near month-end or period close, or deletions of transaction types that should essentially never be deleted such as payments, deposits, and payroll. (5) DANGEROUS COMBINATIONS &#8212; identify any single user who can both create a vendor or customer and record or approve a payment to them, or who can both enter a transaction and delete it without review. Explain the specific risk each combination creates in one sentence. (6) CLIENT MEMO &#8212; draft a short, non-accusatory memo to the owner presenting this as routine access hygiene rather than a fraud investigation. Structure it as: users to remove, roles to narrow, and one control to add. Give a concrete recommended action per user, and keep the tone matter-of-fact.</p></blockquote><p><strong>3. Hand it over &#8212; don't act on it (4 min).</strong> This is the important boundary. Do not remove users yourself, even if you have the access. Send the memo, let the owner make the calls, and document their decisions in your reply. Removing someone's access is a personnel event, and it's not yours to trigger.</p><p>Two things to push for specifically. First, remove departed users today &#8212; that's the one item with no legitimate counterargument. Second, if the client's plan supports it, turn on closing the books with a password. It won't stop a Company Admin, but it stops everyone else from reaching into a closed period, which is where most of the damage happens.</p><p>If the deletion analysis in step 4 surfaced something that looks like a real pattern rather than housekeeping, stop and talk to the owner privately before it goes into any written memo.</p><div><hr></div><p><strong>Run this at every new client onboarding and once a year after that.</strong> The access map is a five-minute artifact that makes you look like the most professional person the client works with &#8212; and it's the document you'll be glad exists if anything ever goes missing.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Paid members unlock the Member Library</strong> &#8212; 35+ done-for-you QBO workflows, plus every Deep Dive. <strong>The first 50 readers to go paid lock in $50/year for life (annual goes to $120 this fall).</strong> <a href="/__u/ailedger.substack.com/p/start-here-your-ai-ledger-member">See what is inside the Member Library &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #184: Spot the Personal Charges Sitting in Your Client's Business Expense Accounts with ChatGPT in 7 Minutes]]></title><description><![CDATA[It's never a moral problem &#8212; it's a signature problem. Personal charges in business accounts overstate deductions on a return the owner signs, and they're the first thing an examiner pulls. Here's how to surface them without accusing anyone.]]></description><link>https://ailedger.substack.com/p/quick-win-184-spot-the-personal-charges</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-184-spot-the-personal-charges</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Sat, 29 Aug 2026 16:02:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every small business file has some of this, and almost every bookkeeper leaves it alone.</p><p>The reason we leave it alone is decent: it feels like overstepping. Telling a client that their Saturday charge at a garden center looks personal is uncomfortable, it can read as judgment, and you're usually not certain. So the transaction gets categorized to Supplies and everyone moves on.</p><p>Here's the reframe that makes this your job instead of your opinion. The owner signs the return. Personal expenses sitting in business accounts overstate the deduction on that return, and if it's ever examined, they're the easiest items in the file to pull &#8212; the vendor names give it away without any investigation at all. You're not policing their spending. You're removing signature risk from a document they're personally attesting to.</p><p>And the correction is genuinely *good* for them. Reclassifying a personal charge to owner's draw or distribution isn't a punishment. A distribution generally isn't taxable income to the owner. A disallowed deduction, plus interest, plus an accuracy penalty, absolutely costs money. Moving the item is the cheaper outcome by a wide margin, and it's an easier conversation when you say it that way.</p><p>There's a second cost nobody talks about. If the client's P&amp;L includes personal spending, every margin conversation you have with them is based on a fiction. They think their overhead is higher than it is. They price against a distorted cost structure. Cleaning this up doesn't just reduce risk &#8212; it gives them a real number to run the business on.</p><h3>The 7-minute review</h3><p><strong>1. Export from QBO (2 min).</strong> Reports &#8594; Transaction Detail by Account, trailing 12 months, filtered to expense accounts. You need vendor/payee name, date, day of week if available, amount, account, memo, and payment method. Include the owner's business credit card specifically &#8212; that's where the density is highest. Export to Excel.</p><p><strong>2. Paste into ChatGPT (30 sec):</strong></p><blockquote><p>I'm a bookkeeper reviewing a small business client's expenses for charges that may be personal rather than business, so the owner isn't overstating deductions on a return they sign. Below is a trailing-12-month expense transaction detail with payee, date, amount, account, memo, and payment method. Analyze: (1) VENDOR-TYPE FLAGS &#8212; identify transactions with payees that are typically personal in nature: grocery stores, pharmacies, clothing and department stores, salons and personal care, veterinary, streaming and entertainment subscriptions, gyms, airlines and hotels without an adjacent business pattern, restaurants without a memo, and consumer electronics. Group by payee with count and total dollars. (2) PATTERN FLAGS &#8212; separately flag transactions by pattern rather than vendor type: weekend and holiday charges in accounts that should be weekday-only, round-dollar amounts at unusual vendors, charges in a geography far from the client's operating area with no corresponding travel expenses, and any vendor appearing on a regular monthly cadence in a category where recurring spend is unexpected. (3) DUAL-USE CATEGORIES &#8212; separately list the categories where business use is plausible but substantiation is required: meals, travel, vehicle, home office, cell phone, and anything at a warehouse club or big-box retailer. Do not call these personal &#8212; call them undocumented. (4) CONFIDENCE TIERS &#8212; sort everything into three tiers: LIKELY PERSONAL (vendor type leaves little room for a business purpose), NEEDS SUBSTANTIATION (plausibly business but requires a memo or receipt), and PROBABLY FINE (flagged by one weak signal only). Total the dollars in each tier. (5) CLIENT-READY QUESTION LIST &#8212; draft a neutral, non-accusatory list I can send the client asking for the business purpose of the top items. Phrase every line as a question about business purpose, never as an assertion that something is personal. Open with a one-sentence framing that this protects them on a return they sign. (6) FORWARD FIX &#8212; recommend the practical prevention: which items suggest the client needs a separate personal card, and which recurring charges should be moved off the business account entirely.</p></blockquote><p><strong>3. Send the questions, then reclassify what comes back (4 min).</strong> Do not reclassify first and tell them after. Send the question list and let the client answer &#8212; you will be wrong on a meaningful share of them, and finding out that the grocery run was catering for a client meeting is exactly the point. Whatever comes back without a business purpose goes to owner's draw or distribution, dated in the current period unless the year is still open.</p><p>Then have the real conversation, which is about the recurring items. A one-time charge is a cleanup. A streaming subscription billing the business card every month for two years is a setup problem, and the fix is a separate personal card, not an annual purge.</p><div><hr></div><p><strong>Run this before every tax package hand-off, and once mid-year on any client whose personal and business cards are the same plastic.</strong> Lead with the signature-risk framing &#8212; it turns an awkward review into the thing they thank you for.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Paid members unlock the Member Library</strong> &#8212; 35+ done-for-you QBO workflows, plus every Deep Dive. <strong>The first 50 readers to go paid lock in $50/year for life (annual goes to $120 this fall).</strong> <a href="/__u/ailedger.substack.com/p/start-here-your-ai-ledger-member">See what is inside the Member Library &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #183: Claude Just Moved Into Your Browser — Here's the One QBO Review to Run With It Today]]></title><description><![CDATA[Claude in Chrome went GA this week. The narrow version is genuinely useful. The broad version is how you lose a client.]]></description><link>https://ailedger.substack.com/p/quick-win-183-claude-just-moved-into</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-183-claude-just-moved-into</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Fri, 28 Aug 2026 14:04:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>On Wednesday, Anthropic made Claude in Chrome generally available on every paid Claude plan. The same week, Claude's desktop app got its own built-in browser.</p><p>Here's the part that matters for you: Claude can now see the page you're looking at &#8212; including QuickBooks Online &#8212; and read it using your existing login. No export. No copy-paste. No CSV that mangles your columns.</p><h2>What actually shipped</h2><p>Claude in Chrome is an extension that lets Claude view your current tab and act on it: read text, click links, navigate between pages, fill out forms. Anthropic's own pitch is that it's for "internal dashboards, legacy systems, and vendor portals" &#8212; tools that don't have a clean integration. QBO in a browser tab is exactly that category.</p><p>It can also now take actions <strong>autonomously</strong>, without asking approval for each click. A safety classifier checks each action against your original request before it runs.</p><p>Before you go any further: <strong>turn that off.</strong> Open the extension settings and require manual approval for every action. I'll explain why in a minute.</p><h2>The one QBO review to run today: the Audit Log</h2><p>Most of what you do in QBO is still better handled the way you already handle it &#8212; pull the report, export it, hand Claude the file. That workflow isn't broken and this doesn't replace it.</p><p>But there's one QBO screen that has always been miserable to export and genuinely painful to read by hand: <strong>the Audit Log.</strong></p><p>You know the problem. A client "fixed something" in a closed period. Somebody changed a transaction date. An invoice got deleted three weeks after you reconciled it. The Audit Log holds all of it, and it's hundreds of rows of Deleted / Invoice / Customer / 08/14/2026 / user@client.com that you scan until your eyes glaze over and you decide it's probably fine.</p><p>That's the task worth handing to a model that can read your screen.</p><p>Do this:</p><p>1. In QBO: Settings (gear icon) &#8594; Audit Log.</p><p>2. Filter first &#8212; this is the whole game. Set Date Changed to your last close date through today. Under Events, narrow to Transactions, and check Deleted and Changed. Leave "Added" off for this pass.</p><p>3. Open the Claude in Chrome side panel on that tab.</p><p>4. Paste this:</p><blockquote><p>You're looking at a QuickBooks Online Audit Log for a client file. Read only what is visible on this page &#8212; do not click anything, do not navigate, do not change anything. List every entry where a transaction was deleted, or where its date, amount, or account was changed. For each one give me: date changed, who changed it, transaction type, and what specifically changed (old value to new value). Then flag any entry where the transaction date falls in a period before the current month. Do not summarize. Give me the list.</p></blockquote><p>5. Page through the log and re-run the prompt on each page. Claude sees one screen at a time &#8212; it does not know page 4 exists.</p><p>6. Take the flagged list back into QBO and open each transaction yourself to confirm.</p><p>Five minutes of filtering plus a prompt, and you walk into the close knowing exactly which prior-period entries moved &#8212; instead of finding out when the balance sheet won't tie.</p><h2>The honest case against this</h2><p>I want to argue the other side, because there is one.</p><p><strong>"An AI reading my screen is a hallucination risk on a task that demands precision."</strong> Correct. Which is why the output of this is a triage list, not a finding. Every flagged row gets opened in QBO before you act on it. If Claude invents a row, it dies the second you go looking for it. If Claude misses a row &#8212; and it might &#8212; you've lost nothing you had before, because you weren't reading all 400 rows anyway.</p><p><strong>"Autonomous clicking in a live client file is insane."</strong> Also correct, and that's the real risk in this week's release. A safety classifier is not a substitute for your professional judgment about a client's general ledger. A miscategorized transaction in your client's books is your liability, not Anthropic's. Read-only, manual approval, always. There is no version of this where you let a model click Save in a client's QBO file.</p><p><strong>"Client data is sitting on that screen."</strong> Yes. Know what your engagement letter says about AI tools, and disclose it. That's not a reason to avoid this &#8212; it's a reason to be deliberate, the same as with any other tool that touches client books.</p><p>The narrow version of this is genuinely useful. The broad version &#8212; "Claude does my bookkeeping now" &#8212; is how you lose a client.</p><p><strong>What's the one QBO screen you've never been able to export cleanly? Tell me in the comments and I'll build the prompt for it.</strong></p><div><hr></div><p><strong>Want the full system, not just the win?</strong></p><p>Quick Wins are the 7-minute version. The Member Library has the complete Deep Dives &#8212; the Bank Rules Audit, the Sales Tax Liability Reconciliation, the Fixed Asset Reality Check &#8212; each one a full 25-to-30-minute workflow with the exact reports to pull, the prompts to paste, and the review steps that keep you out of trouble.</p><p>Founding members lock in <strong>$50/year for life</strong>, and that price goes away at the next library expansion.</p><p><a href="/__u/ailedger.substack.com/subscribe">Join the Member Library &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #182: Catch the Duplicate Invoices Inflating Your Client's Revenue and A/R with ChatGPT in 7 Minutes]]></title><description><![CDATA[Everyone hunts duplicate bills, because paying twice hurts. Nobody hunts duplicate invoices &#8212; they make revenue look *better*. Then they age into 90+ days and get written off as bad debt that was never real.]]></description><link>https://ailedger.substack.com/p/quick-win-182-catch-the-duplicate</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-182-catch-the-duplicate</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Thu, 27 Aug 2026 16:03:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We're all trained to look for duplicate bills. Paying a vendor twice is a visible, painful, cash-out-the-door mistake, and there's a whole category of controls built around preventing it.</p><p>Duplicate invoices get almost no attention, because the error points the other way. Bill the same job twice and revenue goes *up*. A/R goes up. The P&amp;L looks better. Nothing about that trips an alarm, and the client is unlikely to complain about a month that looks strong.</p><p>Here's how it actually plays out. A job gets invoiced from the field app and again from the office. Or an invoice gets created, the client thinks it didn't send, and they create another. Or a recurring invoice template fires the same month a manual one gets cut. The customer receives two, pays one, and either says nothing or mentions it to someone who isn't you.</p><p>Now the phantom invoice ages. At 30 days it looks like slow payment. At 90 it looks like a collections problem, so someone chases it &#8212; occasionally chasing a customer for money they genuinely don't owe, which is a relationship cost with no upside. At year-end it gets reserved against, and eventually written off as bad debt.</p><p>Count the damage: revenue recognized that didn't exist, income tax paid on it, a customer annoyed, and a bad-debt write-off that misstates the client's real collection performance. Four wrong things to unwind one entry that should never have existed. And on an accrual-basis client, that inflated revenue flowed straight onto a tax return.</p><h3>The 7-minute scan</h3><p><strong>1. Export from QBO (2 min).</strong> Reports &#8594; Invoice List (or Transaction List by Customer filtered to type "Invoice"), trailing 12 months. Make sure these columns are showing: date, invoice number, customer, amount, memo/description, and status. If the client uses a field service or e-commerce app that pushes invoices into QBO, include the source or reference number column too &#8212; that's where the tell usually is. Export to Excel.</p><p><strong>2. Paste into ChatGPT (30 sec):</strong></p><blockquote><p>I'm a bookkeeper hunting for duplicate customer invoices in a client's QBO file. Below is a trailing-12-month invoice list with date, invoice number, customer, amount, memo, and status. Analyze: (1) EXACT DUPLICATES &#8212; same customer and same amount within 45 days of each other. List each pair with both invoice numbers, dates, amounts, and payment status. (2) NEAR DUPLICATES &#8212; same customer, amounts within 2% of each other, within 45 days, or same customer with matching or near-matching memo/description text at different amounts. These catch the cases where someone re-keyed with a small variation. (3) EVIDENCE RANKING &#8212; for each candidate pair, rate the likelihood it's a true duplicate as HIGH, MEDIUM, or LOW, and say what drove the rating. Weight these signals heavily: one invoice paid and the twin unpaid and aging is strong evidence of a duplicate; both paid is strong evidence of two legitimate jobs; matching memo text is strong; recurring-schedule cadence (a customer legitimately billed the same amount monthly) is strong evidence AGAINST. (4) RECURRING-BILLING FALSE POSITIVES &#8212; explicitly identify customers who appear to be on a regular same-amount billing cycle and exclude their normal cadence from the duplicate list, so I'm not chasing subscription revenue. (5) EXPOSURE &#8212; total the dollar value of HIGH-confidence duplicates, split into (a) still open in A/R and (b) already written off or credited. Tell me the revenue overstatement for the period. (6) For each HIGH-confidence open duplicate, tell me whether a credit memo or a void is the cleaner fix given its status and age.</p></blockquote><p><strong>3. Fix by status, not by size (4 min).</strong> The status determines the mechanism. An unpaid duplicate in an open period: void it, with a memo explaining why. An unpaid duplicate in a closed period: credit memo dated in the current period &#8212; don't reach back into a closed month. A duplicate that got *paid*: that's not a void, that's a customer credit or a refund, and it needs a conversation with the client before you touch it. And any duplicate already written off as bad debt needs the write-off reversed too, or you've corrected the revenue and left the expense.</p><p>Then look at the pattern. If most of the duplicates trace to one source &#8212; a field app, a recurring template, a specific person &#8212; the real fix is upstream, not in the ledger.</p><div><hr></div><p><strong>Run this before every year-end close, and on any client whose invoices flow in from a second system.</strong> The dual-entry-point clients are where nearly all of these come from.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Paid members unlock the Member Library</strong> &#8212; 35+ done-for-you QBO workflows, plus every Deep Dive. <strong>The first 50 readers to go paid lock in $50/year for life (annual goes to $120 this fall).</strong> <a href="/__u/ailedger.substack.com/p/start-here-your-ai-ledger-member">See what is inside the Member Library &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[The Fixed Asset Reality Check: How a Solo QBO Bookkeeper Finds the Ghost Assets, Miscoded Repairs, and Missing Depreciation Hiding in a Client's Balance Sheet — in 30 Minutes]]></title><description><![CDATA[Fixed assets drift for years because they never hit the bank feed. Four exports, four prompts, and a CPA handoff that gets you referred.]]></description><link>https://ailedger.substack.com/p/the-fixed-asset-reality-check-how</link><guid isPermaLink="false">https://ailedger.substack.com/p/the-fixed-asset-reality-check-how</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Thu, 27 Aug 2026 15:06:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Your client bought a $6,800 commercial mixer in March.</p><p>It went in as Repairs and Maintenance, because that's what the bank feed suggested and that's what the rule you built eighteen months ago told QBO to do. It's sitting in an expense account right now. Their P&amp;L is $6,800 light. Their balance sheet is missing an asset. And in February, their CPA is going to find it, adjust it, and quietly wonder what else you missed.</p><p>Meanwhile the Fixed Assets section of that same balance sheet still carries a 2019 delivery van at $22,400 net book value. The van was totaled in a parking lot in November 2024. Nobody told you. It's been depreciating on paper ever since.</p><p>This is the least glamorous corner of a QBO file and the one that quietly does the most damage. Fixed assets don't hit the bank feed every week, so they never show up in your normal review rhythm. They drift for years. And because QBO Simple Start and Essentials have no fixed asset module at all &#8212; just a set of accounts you're expected to babysit manually &#8212; the drift is structural, not sloppy.</p><p>Thirty minutes, four exports, and Claude or ChatGPT will hand you a defensible exceptions list. Here's the workflow.</p><div><hr></div><h2>First, the objection: isn't this the CPA's job?</h2><p>Mostly, yes &#8212; and you should not pretend otherwise.</p><p>Depreciation method, useful life, Section 179 elections, bonus depreciation, the difference between book and tax basis: that's the CPA's call, it lives in their fixed asset software, and it gets locked at year-end. If you start posting your own depreciation entries because ChatGPT gave you a number, you will create a mess that costs your client real money to unwind.</p><p>So this workflow does not compute depreciation for the tax return. That's the wrong frame, and it's how bookkeepers get burned here.</p><p>What it actually does is three things that *are* squarely your job:</p><p>1. <strong>Catch the capex sitting in expense accounts</strong> &#8212; and the repairs sitting in asset accounts. This is a coding question, not a tax question. You own coding. It's also where the real dollars are.</p><p>2. <strong>Flag assets that no longer exist.</strong> You can't know the van was totaled unless you ask. The workflow generates the question list.</p><p>3. <strong>Hand the CPA a clean, reconciled schedule instead of a mystery.</strong> The CPA is going to reconstruct this anyway. If you hand it over already reconciled, you've saved them two hours &#8212; and that's the kind of thing that gets you referred.</p><p>Frame it that way with your client and it lands. Frame it as "I did your depreciation" and you've overstepped.</p><p>One more constraint before you start: <strong>the AI cannot see the QBO file.</strong> Everything below runs on CSVs you export yourself. Anything the model tells you about a transaction it didn't receive in an export is invented. Check every dollar figure against the source report before it leaves your desk.</p><div><hr></div><h2>Workflow 1: The Capex/Repairs Split (10 minutes, and where the money is)</h2><p>This is the one that pays for the whole exercise. You're looking for purchases that should have been capitalized but got expensed, and the reverse.</p><p><strong>The QBO pull:</strong></p><p>1. Reports &#8594; search <strong>Transaction Detail by Account</strong>.</p><p>2. Customize &#8594; Report period: <strong>Last calendar year to date</strong> (or the full fiscal year you're cleaning).</p><p>3. Filter &#8594; <strong>Distribution Account</strong> &#8594; select these: Repairs and Maintenance, Office Supplies, Computer and Internet Expenses, Small Tools and Equipment, and any account with "Equipment," "Furniture," or "Software" in the name.</p><p>4. Run report &#8594; <strong>Export to Excel</strong> &#8594; save as CSV.</p><p>5. Open it and delete every row under $1,000. You're hunting for large items; the noise underneath just burns tokens and attention.</p><p><strong>The prompt</strong> &#8212; paste your CSV rows where indicated:</p><pre><code>You are reviewing a QuickBooks Online transaction detail export for a
small business client. Your job is to flag purchases that were coded to
an expense account but may need to be capitalized as fixed assets.

The client's capitalization policy: any single item over $2,500 with a
useful life beyond one year should be capitalized. (This matches the IRS
de minimis safe harbor for a taxpayer without applicable financial
statements.)

For each transaction, tell me:
- Date, vendor, amount, current account
- CAPITALIZE / EXPENSE / ASK CLIENT
- One sentence of reasoning

Rules:
- Repairs that restore an asset to working order = expense, regardless
  of amount. Improvements that extend useful life or add capacity =
  capitalize.
- Multiple line items on one invoice that together exceed the threshold
  but are individually cheap = usually expense, but flag it as ASK CLIENT.
- If the vendor name or memo is too vague to judge, say ASK CLIENT.
  Do not guess.
- Do not invent transactions. Only evaluate rows I give you.

Return a markdown table sorted by amount, largest first.

Transactions:
[PASTE YOUR CSV ROWS HERE]</code></pre><p><strong>What comes back</strong> is typically 6&#8211;15 flagged items on a year of a small client's books. Two or three will be genuine capitalization misses. A handful will be ASK CLIENT &#8212; which is exactly right, because "Ace Hardware, $3,140" is genuinely ambiguous and the model shouldn't pretend otherwise.</p><p><strong>The QBO push:</strong> For each confirmed capitalization miss, don't edit the original transaction &#8212; that breaks the bank reconciliation. Instead: <strong>+ New &#8594; Journal Entry</strong>, debit the fixed asset account, credit the expense account, dated the same as the original purchase, memo referencing the original transaction. If the period is closed, date it to the first open period and note why.</p><div><hr></div>
      <p>
          <a href="/__u/ailedger.substack.com/p/the-fixed-asset-reality-check-how">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Quick Win #181: Find the Vendor Credits Your Client Paid Full Price to Ignore with Claude in 7 Minutes]]></title><description><![CDATA[A return got processed. The credit got entered. Then the next bill from that vendor got paid in full anyway. The credit is still sitting in A/P &#8212; and if the client stopped using that vendor, it's cash that expires.]]></description><link>https://ailedger.substack.com/p/quick-win-181-find-the-vendor-credits</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-181-find-the-vendor-credits</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Wed, 26 Aug 2026 16:04:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Vendor credits are the quietest kind of lost money, because nothing looks wrong at any point in the process.</p><p>The return happens. The vendor issues a credit memo. Somebody enters it in QBO correctly, as a vendor credit. So far, flawless. Then three weeks later the next bill from that vendor comes in, gets entered, and gets paid at full face value &#8212; because the person cutting the payment is looking at a bill, not at the vendor's whole balance. The credit stays open.</p><p>Now the client has paid full price for something they already had a credit against. The credit doesn't disappear; it sits in accounts payable as a debit, making the A/P balance understated. Nobody notices because the balance is *lower* than it should be, and low payables never triggers anyone's alarm.</p><p>The credits worth finding fall into a specific bucket. Big vendors with real receivable systems will auto-apply a credit on the next statement, so those mostly self-resolve. The ones that don't self-resolve are the small suppliers, the one-off overcharge refunds, and &#8212; the expensive category &#8212; vendors the client stopped buying from entirely. A credit with a vendor you're never going to order from again will never get applied by anyone. It sits there until it expires. Most vendors will refund it in cash if you ask inside their window, and almost nobody asks.</p><h3>The 7-minute hunt</h3><p><strong>1. Export from QBO (2 min).</strong> Three things. Reports &#8594; Transaction List by Vendor, trailing 24 months, filtered to transaction type "Vendor Credit" &#8212; you want two years because these age quietly. Then Reports &#8594; A/P Aging Detail as of today, which will show open credits as negative lines. Then Reports &#8594; Expenses by Vendor Summary for the trailing 12 months, which tells you who the client is still actively buying from. Export all three.</p><p><strong>2. Paste into Claude (30 sec):</strong></p><blockquote><p>I'm a bookkeeper hunting for unapplied vendor credits in a client's QBO file. Below are three exports: a 24-month list of vendor credit transactions, a current A/P Aging Detail (open credits appear as negative lines), and a trailing-12-month Expenses by Vendor Summary showing current purchasing activity. Analyze: (1) OPEN CREDITS &#8212; list every vendor credit that appears to still be unapplied, with vendor name, date, amount, and age in days. Total the dollars. (2) PAID ANYWAY &#8212; for each vendor with an open credit, check whether bills from that same vendor were paid in full after the credit's date. If so, flag it: the client had a credit available and paid face value regardless. Show the credit amount and the subsequent payments. (3) DEAD VENDOR CREDITS &#8212; cross-reference open credits against the trailing-12 expense summary. Flag every open credit belonging to a vendor with no purchasing activity in the last 12 months. These will never auto-apply and are the highest priority &#8212; rank them first and total them separately. (4) LIKELY SELF-RESOLVING &#8212; identify credits with vendors the client still buys from regularly and where prior credits show a pattern of getting applied. Tell me which ones I can reasonably leave alone. (5) RECOVERY LIST &#8212; for the dead-vendor credits, draft a short, polite email template I can adapt per vendor requesting either a cash refund or written confirmation the credit remains valid, with placeholders for vendor name, credit date, credit number, and amount.</p></blockquote><p><strong>3. Split the list and act (4 min).</strong> Two piles. The still-active vendors: apply the credits against open bills right now in QBO &#8212; Pay Bills, select the vendor, the credit shows up as available to apply. Takes seconds each and immediately corrects the payables balance. The dead vendors: send the recovery email from step 5. Set a two-week follow-up. Anything a vendor confirms as unrecoverable, write off deliberately with a note, so the A/P aging stops carrying a credit that isn't real.</p><p>The write-off is not a failure. An A/P aging with a phantom credit in it is worse than one that's honest.</p><div><hr></div><p><strong>Run this quarterly, and always during a new client cleanup</strong> &#8212; inherited files are where the dead-vendor credits pile up, because nobody who knew about them still works there.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Paid members unlock the Member Library</strong> &#8212; 35+ done-for-you QBO workflows, plus every Deep Dive. <strong>The first 50 readers to go paid lock in $50/year for life (annual goes to $120 this fall).</strong> <a href="/__u/ailedger.substack.com/p/start-here-your-ai-ledger-member">See what is inside the Member Library &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #180: Spot the Impossible Balances on Your Client's Balance Sheet Before Their CPA Does with ChatGPT in 7 Minutes]]></title><description><![CDATA[Negative A/R. A debit-balance credit card. Inventory below zero. They're hiding inside collapsed subtotals that net to something reasonable &#8212; and they're the first thing the CPA's software flags in January.]]></description><link>https://ailedger.substack.com/p/quick-win-180-spot-the-impossible</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-180-spot-the-impossible</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Tue, 25 Aug 2026 16:04:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There's a specific flavor of embarrassment in getting an email from a client's CPA in February that says "can you explain why accounts receivable is negative $8,400?"</p><p>You can explain it. It'll take you an hour of digging, it'll turn out to be four customer overpayments and one credit memo applied to the wrong invoice, and it'll be fine. But the CPA now thinks about your work differently, and the client watched the whole exchange.</p><p>The frustrating part is that these are trivially findable. A negative accounts receivable balance is logically impossible as a steady state. So is a credit card account with a debit balance, or inventory below zero, or accumulated depreciation that's positive. The reason nobody catches them is that they hide inside collapsed parent accounts. "Accounts Receivable" shows $310,000, which looks fine. Expand it and one customer sub-balance is negative $8,400 while the rest are positive.</p><p>Same with credit cards. Three cards, two with normal balances, one showing a debit because a refund posted after the account went to zero and stayed there. The parent nets positive. Nothing looks wrong until someone expands it.</p><h3>The 7-minute scan</h3><p><strong>1. Export from QBO (2 min).</strong> Reports &#8594; Balance Sheet. Set the date range to trailing 12 months with monthly columns &#8212; the trend matters as much as the current sign. Critically: expand everything. Click the gear or the expand-all control so sub-accounts and customer/vendor detail show as their own lines rather than rolling into parents. If the client uses A/R and A/P sub-detail, also run the A/R Aging Summary and A/P Aging Summary so you can see per-customer and per-vendor signs. Export to Excel.</p><p><strong>2. Paste into ChatGPT (30 sec):</strong></p><blockquote><p>I'm a bookkeeper doing a sign-logic audit on a client's QBO balance sheet before handing the file to their CPA. Below is a fully expanded trailing-12-month Balance Sheet with monthly columns, plus A/R and A/P aging detail. Analyze: (1) IMPOSSIBLE SIGNS &#8212; flag every account or sub-account whose balance sign is logically wrong for its type. Specifically check for: negative accounts receivable, negative bank balances, debit balances on credit card and loan accounts, negative inventory, negative accumulated depreciation, debit-balance liability accounts, and negative equity components that aren't retained-earnings deficits. List each with its current balance. (2) AGE AND TREND &#8212; for each flagged account, show how many of the last 12 months it has been wrong-signed and whether the balance is shrinking, stable, or growing. This is the key sort: a one-month blip is timing, an eleven-month growing negative is an error. (3) EXPLAINABLE VS. NOT &#8212; for each flag, give me the most likely innocent explanation (vendor prepayment, customer overpayment, unapplied credit memo, refund after zero balance, deposit in transit) and tell me whether the age-and-trend pattern actually supports that explanation or contradicts it. Rank the flags by how likely they are to be a real error rather than legitimate timing. (4) HIDDEN BY NETTING &#8212; identify any parent account whose total looks normal but which contains sub-accounts with opposing signs. These are the ones a collapsed report will never show. (5) CPA-READY NOTE &#8212; for the flags you judge to be real errors, draft a short internal to-do list for me with the specific fix for each.</p></blockquote><p><strong>3. Work the ranked list (4 min).</strong> Start at the top of the "likely real error" ranking, not the top of the balance sheet. Most of the fixes are small: apply the floating credit memo to the right invoice, reclass the vendor prepayment to a prepaid asset instead of leaving it as negative A/P, journal the stray refund out of the credit card account. Negative inventory is the one exception &#8212; that usually means items were sold before purchases were recorded, and it needs a real quantity investigation rather than a journal entry.</p><p>Seven minutes in August beats an hour of forensics in February.</p><div><hr></div><p><strong>Run this on every client the month before you hand the file to their CPA.</strong> The netting check in step 4 is the one that earns its keep &#8212; those are invisible on the report the client and the CPA are both looking at.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Paid members unlock the Member Library</strong> &#8212; 35+ done-for-you QBO workflows, plus every Deep Dive. <strong>The first 50 readers to go paid lock in $50/year for life (annual goes to $120 this fall).</strong> <a href="/__u/ailedger.substack.com/p/start-here-your-ai-ledger-member">See what is inside the Member Library &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[The Bank Rules Audit: How a Solo QBO Bookkeeper Finds the Auto-Categorization Rules Quietly Misfiling a Client's Expenses — in 25 Minutes]]></title><description><![CDATA[Every rule you wrote at 11 PM two years ago is still posting transactions. Here's the 25-minute audit that catches the ones misfiling a client's expenses.]]></description><link>https://ailedger.substack.com/p/the-bank-rules-audit-how-a-solo-qbo</link><guid isPermaLink="false">https://ailedger.substack.com/p/the-bank-rules-audit-how-a-solo-qbo</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Tue, 25 Aug 2026 15:05:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every bank rule you've ever created in QuickBooks Online is still running.</p><p>Not the ones you remember. The one you made at 11 PM in March 2024 because a client had forty-one Amazon charges and you needed the reconciliation done before a 9 AM call. The one where you set the condition to "Description contains AMZN" and the category to Office Supplies, checked "Auto-add," and never looked at it again.</p><p>That rule has now categorized roughly six hundred transactions. Some of them were office supplies. Some were inventory. Some were a $2,400 laptop that should have been a fixed asset. Some were the client's wife buying a patio set.</p><p>This is the quiet failure mode of bank rules: they don't break. They keep working exactly as written, on a business that stopped matching the description years ago. And because the transactions land in the register pre-categorized and un-flagged, they never show up in your review queue. You are not looking at them. That's the whole point of the rule.</p><p>The good news is that the entire rule set is a small, structured, exportable list &#8212; and a list is exactly the kind of thing an AI is good at cross-examining. In about 25 minutes you can pull every rule out of QBO, have Claude or ChatGPT tell you which ones are dangerous, test that judgment against 90 days of what the rules actually did, and delete or fix the offenders.</p><p>Here's the workflow I run at every new client onboarding and once more before tax season.</p><h2>Why bank rules rot (and why you can't see it)</h2><p>Three things happen to a rule set over time, and all three are invisible from the register.</p><p><strong>Rules are written under time pressure, then inherited by a different business.</strong> The condition that was precise in 2024 &#8212; "contains SQ *" for a client with one Square terminal &#8212; is now catching a second location, a merchant-fee line, and a payout reversal. The rule doesn't know that. It fires.</p><p><strong>Auto-add turns a suggestion into a decision.</strong> A rule without auto-add is a helpful default you still approve. A rule with auto-add is an unsupervised posting engine. Most bookkeepers can't tell you which of their rules have it on, because the Rules screen doesn't sort by it.</p><p><strong>Rules stack, and the first match wins.</strong> QBO applies rules in priority order. Add a broad rule above a narrow one and the narrow one becomes dead code &#8212; it will never fire again, and you will never be told. A client's specific "Home Depot &#8594; Job Materials" rule silently stops working the day someone adds "Home Depot &#8594; Repairs &amp; Maintenance" above it.</p><p>None of this produces an error. It produces a P&amp;L that looks fine and is wrong by a few thousand dollars in ways no one can trace, because the audit log just says the rule did it.</p><h2>Workflow 1: Pull the rule set and get a risk ranking</h2><p><strong>Time: 8 minutes.</strong></p><p><strong>Step 1 &#8212; Export the rules from QBO.</strong></p><p>Go to <strong>Transactions &#8594; Rules</strong> (older layouts: Banking &#8594; Rules). At the top right, next to the <strong>New rule</strong> button, open the dropdown and choose <strong>Export rules</strong>. QBO downloads an .xlsx with every rule: name, conditions, the category or payee it assigns, and whether auto-add is enabled.</p><p>Open that file. Delete nothing. Select all, copy.</p><p><strong>Step 2 &#8212; Give the AI the client context first, then the rules.</strong></p><p>This is the step people skip, and it's the one that determines whether you get useful output or a generic lecture. The AI cannot tell that "Job Materials" is correct for a contractor and wrong for a law firm unless you say what the client does.</p><p>Paste this into Claude or ChatGPT:</p><pre><code>You are reviewing the bank rules from a QuickBooks Online file.

CLIENT CONTEXT:
- Industry: [e.g., residential remodeling contractor, 6 employees]
- Revenue: [approx annual]
- Entity type: [S-corp / LLC / sole prop]
- Known quirks: [e.g., owner uses the business card for
  occasional personal charges; two Square terminals;
  inventory is tracked]

Below is the full rule export. Each row is one rule.

For each rule, assess:
1. Is the condition SPECIFIC enough that it can only match the
   intended vendor? Flag any condition that is a short or generic
   string likely to catch unintended transactions.
2. Is the assigned category plausible for this industry?
3. Does auto-add being ON create risk given how broad the
   condition is?
4. Does this rule overlap with any other rule in the list &#8212; same
   or similar condition, different category?

Return a table sorted by risk, highest first, with columns:
Rule Name | Condition | Category | Auto-add | Risk (High/Med/Low)
| Why it's risky | What to change

Do not suggest software. Only changes I can make inside QBO.

RULES:
[paste the export here]</code></pre><p><strong>Step 3 &#8212; Read the High rows only.</strong></p><p>You'll typically get 4&#8211;9 High-risk rules out of a 40-rule set. The recurring offenders are consistent across clients:</p><ul><li><p><strong>Short generic conditions.</strong> "Contains: PAY" catches PayPal, payroll, and a vendor named Paylocity. "Contains: AMZN" catches everything from a $9 cable to a $3,000 asset.</p></li><li><p><strong>Anything mapping to a single catch-all expense account</strong> with auto-add on. That's a rule designed to make transactions disappear.</p></li><li><p><strong>Big-box and marketplace vendors mapped to one category.</strong> Home Depot, Amazon, Costco, Walmart. These vendors sell across four categories. A single rule can't be right.</p></li><li><p><strong>Rules assigning a category that doesn't exist in this industry's normal chart</strong> &#8212; Job Materials at a consultancy, Cost of Goods Sold at a service firm with no inventory.</p></li></ul><p>Flag these. Don't change anything yet. The ranking is a hypothesis, and the AI has never seen a single actual transaction. That's Workflow 2's job.</p>
      <p>
          <a href="/__u/ailedger.substack.com/p/the-bank-rules-audit-how-a-solo-qbo">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Quick Win #179: Catch the Payroll Liabilities Your Client Withheld But Never Actually Remitted with Claude in 8 Minutes]]></title><description><![CDATA[A payroll liability account should breathe &#8212; in on payday, out on the due date, back to zero. When one only grows, somebody's withholding never reached the agency. Claude finds it in a trailing-12 detail export.]]></description><link>https://ailedger.substack.com/p/quick-win-179-catch-the-payroll-liabilities</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-179-catch-the-payroll-liabilities</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Mon, 24 Aug 2026 16:03:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Payroll liability accounts are supposed to move like a heartbeat.</p><p>Money goes in on payday. Money comes out on the remittance date. The balance returns to something near zero, or to exactly one payroll period of accrual. That's a healthy account.</p><p>The unhealthy version looks like a staircase. Every payroll adds to the balance. Nothing meaningful ever leaves. Six quarters later there's $14,000 sitting in "Payroll Liabilities: State Withholding" and everyone has been assuming it's a timing difference.</p><p>It usually isn't. It's usually one of four things: paychecks the client entered manually outside the payroll service, a mid-year provider switch where the old balances never got cleared, a state the client registered in late and started withholding for before the account was set up, or a garnishment order configured once and never remitted. In every one of those, real money was taken out of an employee's check and never sent anywhere.</p><p>That's the part that makes this different from a normal cleanup. Withheld payroll tax isn't the client's money. Penalties and interest accrue monthly, and the responsible-person rules mean the owner is personally on the hook. A balance nobody has questioned in eighteen months is exactly the kind of thing that surfaces during a financing due diligence or a sale &#8212; at the worst possible moment.</p><h3>The 8-minute audit</h3><p><strong>1. Export from QBO (3 min).</strong> Two exports. First: Reports &#8594; Balance Sheet, trailing 12 months with monthly columns, and collapse everything except the payroll liability section &#8212; you want to see the shape of each account over time. Second: Reports &#8594; Transaction Detail by Account, filter to the payroll liability accounts only, trailing 12 months, all transaction types. Export both to Excel.</p><p><strong>2. Paste into Claude (30 sec):</strong></p><blockquote><p>I'm a bookkeeper auditing payroll liability accounts in a client's QBO file for withholding that was accrued but never remitted. Below are two exports: a trailing-12 monthly Balance Sheet showing each payroll liability account, and a transaction detail for those same accounts. Analyze: (1) BREATHING TEST &#8212; for each payroll liability account, classify it as HEALTHY (accrues and clears on a regular cycle, ending near zero or at one period of accrual), LAGGING (clears but late or partially), or STUCK (balance only grows, no meaningful outflows). Show the monthly balance trend for each. (2) STUCK DOLLARS &#8212; for every STUCK or LAGGING account, quantify the oldest unremitted layer: how much of the current balance has been sitting there since before the trailing 12 months began, and how much accrued in each quarter since. (3) MISSING REMITTANCES &#8212; in the transaction detail, identify accrual entries with no corresponding payment within 45 days. Group them by account and by quarter. (4) ROOT CAUSE HYPOTHESIS &#8212; for each stuck account, tell me which explanation best fits the pattern: manual paychecks entered outside the payroll service, a provider switch leaving stale balances, a jurisdiction registered late, or a garnishment/deduction never remitted. Point to the specific transactions that support your read. (5) EXPOSURE SUMMARY &#8212; a plain-English paragraph I can send the client stating the total dollars withheld but apparently unremitted, which agencies are involved, and why this needs an answer this week rather than at year-end. Do not soften it.</p></blockquote><p><strong>3. Verify before you alarm anyone (4 min).</strong> This is the step to not skip. Take each stuck balance and check it against the actual filings &#8212; the payroll provider's tax payment history, the state agency portal, the quarterly 941s. Two things can make a healthy account look stuck on paper: remittances posted to a different account than the one they accrued to, and a client whose provider pays from an impound account that never touches this GL. Both are mapping problems, not money problems, and both are fixable in ten minutes. What's left after that verification is the real exposure.</p><p>Then call the client. Not an email.</p><div><hr></div><p><strong>Run this on every payroll client before quarter-end</strong>, and immediately on any client who switched payroll providers in the last two years &#8212; that migration is where most of these start.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Paid members unlock the Member Library</strong> &#8212; 35+ done-for-you QBO workflows, plus every Deep Dive. <strong>The first 50 readers to go paid lock in $50/year for life (annual goes to $120 this fall).</strong> <a href="/__u/ailedger.substack.com/p/start-here-your-ai-ledger-member">See what is inside the Member Library &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #177: Build Next Year's Budget from Your Client's QBO Actuals with ChatGPT in 7 Minutes]]></title><description><![CDATA[Your client already has twelve months of actuals in QBO. A useful budget is mostly that, with the one-offs stripped out and three assumptions the owner picks. ChatGPT does the tedious part in seconds.]]></description><link>https://ailedger.substack.com/p/quick-win-177-build-next-years-budget</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-177-build-next-years-budget</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Sun, 23 Aug 2026 16:02:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Small businesses skip budgeting because it sounds like a project. It isn't. A budget that gets used is last year's actuals, cleaned of one-time noise, adjusted by a few assumptions the owner actually believes.</p><p>The reason it feels hard is the cleaning. Last October had a $9,000 equipment purchase that won't repeat. March revenue was inflated by a one-time job. Insurance renewed in July at a higher rate, so the first six months understate it. Copy last year forward without handling those and you get a budget that's wrong in ways nobody can explain &#8212; which is worse than no budget.</p><p>That separation work is exactly what an LLM is good at, if you give it monthly detail instead of annual totals.</p><h3>The 7-minute build</h3><p><strong>1. Export the P&amp;L by month (2 min).</strong> Reports &#8594; Profit and Loss &#8594; set the period to the trailing 12 months &#8594; Display columns by Month &#8594; Run. Export to Excel. Monthly columns matter: annual totals hide seasonality and one-time spikes, which are the two things you're budgeting around.</p><p><strong>2. Paste into ChatGPT (30 sec):</strong></p><blockquote><p>I'm a bookkeeper building a next-year budget for a small business client from their QBO actuals. Below is a monthly Profit &amp; Loss for the trailing 12 months. Build a draft budget: (1) BASELINE &#8212; for each revenue and expense line, classify the pattern as fixed (roughly the same each month), variable (moves with revenue), or seasonal (predictable peaks). Say which and show the evidence. (2) ONE-TIME ITEMS &#8212; flag any month/account combination that looks like a non-recurring event: a spike more than 2x the line's normal monthly level, a single-occurrence expense, or a step change mid-year suggesting a rate change rather than a one-off. Separate true one-offs (exclude from next year) from step changes (annualize at the new level). Show your reasoning for each. (3) MONTHLY BUDGET &#8212; produce a 12-month budget by line item that preserves seasonality, excludes true one-offs, annualizes step changes, and holds variable costs at their historical percentage of revenue. Assume flat revenue growth for now. (4) ASSUMPTIONS LIST &#8212; list every judgment you made as a numbered assumption in plain English, phrased so a business owner can approve or change each one. (5) SENSITIVITY &#8212; show budgeted net income at revenue growth of -10%, 0%, +10%, and +20%, so the owner can see how much cushion exists. Output the budget as a clean table I can paste into Google Sheets.</p></blockquote><p><strong>3. Turn the assumptions into a conversation (4 min).</strong> Don't send the budget. Send the assumptions list &#8212; "I've assumed the October equipment purchase doesn't repeat, insurance stays at the July rate, and revenue is flat. Which of these should change?" The owner corrects two or three, you update, and now it's their budget instead of your spreadsheet. Load the final version into QBO under Settings &#8594; Budgeting so the Budget vs. Actuals report works from month one.</p><p>Seven minutes to build the thing your client keeps meaning to do.</p><div><hr></div><p><strong>Do this in August or September, not December.</strong> A budget built while there's still a quarter left to influence is a planning tool. Built in December, it's a New Year's resolution.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Want the full workflow?</strong> Paid subscribers get step-by-step Deep Dives with templates, prompt packs, and ready-to-use tools every week. <a href="/__u/ailedger.substack.com/subscribe">Upgrade to get the complete system &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #176: Review Your Client's Vehicle and Mileage Deductions Before the IRS Does with Claude in 7 Minutes]]></title><description><![CDATA[Clients deduct gas, insurance, repairs &#8212; and mileage on top. On a vehicle that also does the school run. Claude reads the detail and flags the double-dipping before it becomes an amended return.]]></description><link>https://ailedger.substack.com/p/quick-win-176-review-your-clients</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-176-review-your-clients</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Sat, 22 Aug 2026 16:00:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Vehicle expense is one of the most audited small-business deductions, and one of the easiest to get wrong without noticing.</p><p>The classic failure is double-dipping: the client tracks mileage and claims the standard rate, and also expenses gas, insurance, repairs, and the lease payment through the business. You can't do both. Pick actual expenses or the standard mileage rate &#8212; not both on the same vehicle.</p><p>The second failure is personal use. A sole owner with one truck that hauls materials Monday through Friday and the family on Saturday does not have a 100% business vehicle. Somebody has to make that adjustment, and it never happens automatically.</p><p>The third is substantiation. The deduction requires a contemporaneous record &#8212; date, miles, destination, business purpose. "I drive a lot for work" is not a record.</p><p>Your file has the detail. The CPA only sees a total.</p><h3>The 7-minute review</h3><p><strong>1. Export the vehicle accounts from QBO (2 min).</strong> Reports &#8594; Transaction Detail by Account, filtered to the vehicle-related accounts: Auto Expense, Gas/Fuel, Vehicle Insurance, Repairs &amp; Maintenance, Vehicle Lease or Loan Interest, Parking &amp; Tolls, and Depreciation if applicable. Trailing 12 months. If the client keeps a mileage log in QBO or a spreadsheet, export that too.</p><p><strong>2. Paste into Claude (30 sec):</strong></p><blockquote><p>I'm a bookkeeper reviewing a client's vehicle expense deductions in QBO for substantiation and method problems before year-end. Below is the transaction detail for all vehicle-related accounts for the trailing 12 months, plus the mileage log if one exists. Review and flag: (1) METHOD CONFLICT &#8212; is the client claiming both actual vehicle expenses AND standard mileage? If both appear, quantify each and state clearly that only one method is allowed per vehicle. (2) PERSONAL USE INDICATORS &#8212; flag transactions that suggest personal use: fuel purchases far from the business's service area, weekend or holiday charges, repair shops in a different city, amounts inconsistent with a work vehicle. List them with dates and amounts. (3) SUBSTANTIATION GAPS &#8212; for the mileage log, flag entries missing date, miles, destination, or business purpose. Also flag suspiciously round numbers or identical repeating daily mileage, which auditors treat as reconstructed rather than contemporaneous. (4) COMMUTING &#8212; flag any pattern that looks like a regular home-to-office commute, which is not deductible. (5) MAGNITUDE CHECK &#8212; total the annual vehicle deduction and compare it against the implied miles. Does the fuel and maintenance spend make sense for the miles claimed? Show the math. (6) CLIENT QUESTIONS &#8212; give me a short, non-accusatory list of questions to ask the client to close each gap. Keep the tone practical, not alarming &#8212; these are usually honest mistakes.</p></blockquote><p><strong>3. Send the questions, not the verdict (4 min).</strong> Don't restate a conclusion the client will hear as an accusation. Send the three or four questions Claude surfaced: which method are we using this year, what's your business-use percentage, do you have the log for these months. Document the answers in the client file. If there's a genuine method conflict, loop in the CPA now &#8212; in August it's a bookkeeping decision, in March it's a return being redone.</p><p>Seven minutes on the account most likely to draw a letter.</p><div><hr></div><p><strong>Run this on every client with a vehicle on the books, before Q4.</strong> The magnitude check alone &#8212; miles claimed versus fuel actually purchased &#8212; catches more than you'd expect.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Want the full workflow?</strong> Paid subscribers get step-by-step Deep Dives with templates, prompt packs, and ready-to-use tools every week. <a href="/__u/ailedger.substack.com/subscribe">Upgrade to get the complete system &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #175: Catch the Half-Tracked Transactions Breaking Your Client's Class and Location Reports with ChatGPT in 7 Minutes]]></title><description><![CDATA[Class tracking gets turned on, used for two months, then abandoned &#8212; leaving a "Not Specified" column that makes every departmental report useless. ChatGPT tells you exactly which transactions to fix to get the report working again.]]></description><link>https://ailedger.substack.com/p/quick-win-175-audit-the-qbo-class</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-175-audit-the-qbo-class</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Fri, 21 Aug 2026 16:01:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Class tracking is the feature clients ask for and then quietly stop using.</p><p>The setup conversation goes great. They want to know whether the Portland location is profitable, or whether the install side subsidizes the service side. You turn on classes, build the list, tag everything for a couple of months. Then the client's bookkeeper leaves, or the bank feed starts auto-categorizing, and the tagging stops.</p><p>Six months later you run the P&amp;L by Class and 40% of expenses land in "Not Specified." The report is worse than useless &#8212; it looks authoritative while being wrong. And if the client is using it to decide which location to close, that's a real problem with your name on it.</p><h3>The 7-minute audit</h3><p><strong>1. Export from QBO (2 min).</strong> Reports &#8594; Profit and Loss by Class, trailing 12 months, monthly columns. Make sure the "Not Specified" column is showing (it appears automatically when untagged transactions exist). If the client uses Locations instead of or alongside Classes, run Profit and Loss by Location too. Export to Excel.</p><p><strong>2. Paste into ChatGPT (30 sec):</strong></p><blockquote><p>I'm a bookkeeper auditing class tracking quality in a client's QBO file. Below is a monthly Profit &amp; Loss by Class for the trailing 12 months, including a "Not Specified" column for untagged transactions. Analyze: (1) COVERAGE RATE &#8212; for each month, what percentage of total expenses and total revenue is tagged to a class versus Not Specified? Show the trend. Identify the month tagging discipline broke down. (2) WORST ACCOUNTS &#8212; which specific expense accounts have the highest dollar value sitting in Not Specified? Rank the top 10 by dollar amount. These are where fixing a few recurring transactions gets the most coverage back. (3) EIGHTY-TWENTY LIST &#8212; what is the smallest set of accounts I would need to fix to bring overall coverage above 90%? Show the accounts and the cumulative coverage gain. (4) DISTORTION CHECK &#8212; for each class, estimate how much its reported profit could shift if the Not Specified expenses were allocated proportionally to revenue. Flag any class whose profitability conclusion would actually reverse. (5) REPORT RELIABILITY &#8212; give me a one-paragraph plain-English verdict I can send the client about whether the current class report can be trusted for decisions, and what it will take to fix it.</p></blockquote><p><strong>3. Fix the top accounts and automate (4 min).</strong> Take the 80/20 list and open those accounts in QBO. Most of the untagged volume will be a handful of recurring vendors &#8212; rent, insurance, software, one payroll account. Tag the historical transactions in batch from the account register, then set the bank rule or recurring template to apply the class automatically going forward. For genuinely shared costs like rent, decide an allocation with the client once and apply it consistently.</p><p>Seven minutes to find out whether the report you've been sending is real.</p><div><hr></div><p><strong>Run this before the next quarterly review on any client with classes or locations turned on.</strong> The distortion check is the part that matters &#8212; knowing a class's profitability could reverse is very different from knowing it's "roughly right."</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Want the full workflow?</strong> Paid subscribers get step-by-step Deep Dives with templates, prompt packs, and ready-to-use tools every week. <a href="/__u/ailedger.substack.com/subscribe">Upgrade to get the complete system &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #174: Find the Customer Deposits Your Client Booked as Revenue Before They Earned It with Claude in 7 Minutes]]></title><description><![CDATA[Deposits, retainers, and prepaid packages hit the bank and get booked as income. Then the work happens in a later month with no revenue attached. Claude finds the mismatch so your client stops running the business on a number that isn't real.]]></description><link>https://ailedger.substack.com/p/quick-win-174-find-the-customer-deposits</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-174-find-the-customer-deposits</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Thu, 20 Aug 2026 16:02:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If your client takes money before doing the work &#8212; deposits, retainers, prepaid blocks, deposits on custom orders &#8212; there's a good chance their P&amp;L is telling them a story that isn't true.</p><p>The pattern is always the same. A $12,000 deposit lands in March. The bank feed says "money in," someone categorizes it to Sales, and March looks like a record month. The work runs April through June. Materials, subcontractors, and payroll all post in those months with nothing on the revenue line to cover them. The client concludes that spring was a disaster and starts cutting things.</p><p>Nothing was wrong with the business. The revenue was just recorded in the wrong month.</p><h3>The 7-minute analysis</h3><p><strong>1. Pull the data from QBO (2 min).</strong> Two exports: Reports &#8594; Sales by Customer Detail for the trailing 12 months (all transaction types), and Reports &#8594; Transaction List by Customer filtered to Payments and Credit Memos. If the client uses a specific "Customer Deposits" item or account, run that account's detail too. Export to Excel.</p><p><strong>2. Paste into Claude (30 sec):</strong></p><blockquote><p>I'm a bookkeeper reviewing a client's QBO file for unearned revenue that was recorded as income too early. Below is the sales and payment history for the trailing 12 months. Analyze: (1) PREPAYMENT PATTERN &#8212; identify customer payments that arrived with no invoice dated on or before the payment date, or payments materially larger than the invoice they were applied to. These are likely deposits or retainers. List customer, date, amount. (2) TIMING GAP &#8212; for each likely prepayment, find the invoice or invoices that appear to have fulfilled it later. Show the number of days between money received and work invoiced. Flag any gap that crosses a month-end or, worse, a fiscal year-end. (3) DOUBLE-COUNT RISK &#8212; flag cases where a deposit was booked to income AND a later invoice for the same customer and scope was also booked to income. That's revenue counted twice. (4) OPEN BALANCE &#8212; list customers who have paid more than they have been invoiced, with the net credit amount. That total is the client's current unearned revenue balance. (5) MONTHLY RESTATEMENT &#8212; show what monthly revenue would look like if each prepayment were recognized in the month the work was invoiced instead of the month cash arrived. Present a simple before/after table by month. Keep the output practical: I need to explain this to a non-accountant owner.</p></blockquote><p><strong>3. Sanity-check and decide the fix (4 min).</strong> Confirm two or three of the flagged prepayments against the actual transactions &#8212; Claude is inferring intent from timing, so it will occasionally call a fast-paying customer a deposit. Then pick the treatment: if the client only needs tax basis reporting, note the unearned balance and move on. If they use the P&amp;L to run the business, set up a Customer Deposits liability account and start posting prepayments there, releasing to income when invoiced.</p><p>Seven minutes to explain why "our best month" and "our worst month" were the same job.</p><div><hr></div><p><strong>Run this on any client who takes money up front.</strong> The before/after monthly table is one of the most useful things you can put in front of an owner &#8212; it turns an accounting concept into a picture of their actual year.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Want the full workflow?</strong> Paid subscribers get step-by-step Deep Dives with templates, prompt packs, and ready-to-use tools every week. <a href="/__u/ailedger.substack.com/subscribe">Upgrade to get the complete system &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[The Sales Tax Liability Reconciliation: How a Solo QBO Bookkeeper Finds the Gap Between the Sales Tax Center and the General Ledger — in 30 Minutes]]></title><description><![CDATA[Reconcile QBO's Sales Tax Center against the actual GL liability account &#8212; four workflows, 30 minutes, no third-party tools.]]></description><link>https://ailedger.substack.com/p/the-sales-tax-liability-reconciliation</link><guid isPermaLink="false">https://ailedger.substack.com/p/the-sales-tax-liability-reconciliation</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Thu, 20 Aug 2026 15:05:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A client forwards you a notice from the state. Assessed balance, penalty, interest. They're confused, because they've been filing every quarter and paying every quarter, and QuickBooks Online has never once complained.</p><p>You open the file. The Sales Tax Center looks perfect &#8212; every period filed, every payment recorded, nothing overdue. Then you run a Balance Sheet and the Sales Tax Payable account is sitting at $6,140 when it should be sitting near zero.</p><p>Neither number is wrong. They're measuring different things, and QBO will never tell you that.</p><p>The Sales Tax Center is a calculation engine. It looks at taxable transactions in a period and tells you what it thinks you owe. The general ledger is a record of what actually happened &#8212; including everything that touched Sales Tax Payable <em>without</em> going through the Sales Tax Center. Manual journal entries. A payment recorded as a plain check to the Department of Revenue. A customer credit memo issued after the period was filed. An old opening balance from a conversion nobody ever cleaned up.</p><p>Every one of those creates a permanent, silent drift between the two numbers. And because the Sales Tax Center keeps reporting clean, nothing ever surfaces it. You find out when the state finds out.</p><p>This is a 30-minute reconciliation you can run on any QBO client, and it's the kind of thing that separates a bookkeeper from a data-entry service. You're not recalculating the tax &#8212; QBO already did that, and it's usually right. You're finding the <em>gap</em>, explaining where it came from, and clearing it before it compounds into a notice.</p><p>Here's the full workflow, using QBO exports and Claude or ChatGPT. Nothing else.</p><div><hr></div><h2>Why the Sales Tax Center Can't See the Problem</h2><p>Before the workflow, you need to understand the specific blind spot, because it determines what you pull.</p><p>The Sales Tax Center tracks <em>agency-level</em> activity: taxable sales it recognized, tax it computed, filings you recorded, payments you made through the Record Payment flow. That's a closed loop, and inside that loop everything reconciles by construction.</p><p>Sales Tax Payable is a regular balance sheet liability account. It accepts postings from anywhere. Anything that hits it from outside the Sales Tax Center's closed loop is invisible to the Sales Tax Center &#8212; but permanently present in your balance sheet.</p><p>The five things that cause almost every gap I've seen:</p><ol><li><p><strong>Payments recorded as expenses or checks</strong> instead of through Record Payment. The cash leaves, the liability never clears. Balance grows every quarter.</p></li><li><p><strong>Manual journal entries to Sales Tax Payable</strong> &#8212; usually made by a prior bookkeeper or the client's CPA at year end to "true up" the account, with no corresponding filing.</p></li><li><p><strong>Post-filing credit memos and refunds</strong> on invoices in an already-filed period. QBO reverses the tax in the current period; the state already got the money.</p></li><li><p><strong>Conversion or opening balances</strong> carried in from a prior system that were never real liabilities.</p></li><li><p><strong>Cash vs. accrual basis mismatch</strong> &#8212; the client files on cash basis, QBO's default reports run accrual, and the two never agree until you force the setting.</p></li></ol><p>You can't find any of these by staring at the Sales Tax Center. You find them by rolling the liability account forward and asking what doesn't belong.</p><h2>Workflow 1: The 12-Month Liability Rollforward</h2><p>This is the core of the reconciliation and the one that finds the money. Everything after this is refinement.</p><p><strong>Step 1 &#8212; Pull the ledger detail.</strong></p><p>In QBO: <strong>Reports &#8594; Account QuickReport</strong> on your Sales Tax Payable account (or <strong>Transaction Detail by Account</strong>, filtered to that one account). Set the date range to the last 12 months. Critically, set <strong>Report period basis to match how the client actually files</strong> &#8212; Customize &#8594; General &#8594; Accounting method. If they file cash basis and you run accrual, every number in this workflow will be wrong.</p><p>Add these columns: Date, Transaction Type, Num, Name, Memo, Amount, Balance.</p><p>Export to Excel or CSV.</p><p><strong>Step 2 &#8212; Pull the filing history.</strong></p><p>In QBO: <strong>Taxes &#8594; Sales Tax &#8594; Recent Filings</strong> (or View Return History). Export or copy the list of periods, filing dates, tax amounts, and payment amounts. This is your "what the closed loop thinks happened" reference.</p><p><strong>Step 3 &#8212; Hand both to Claude or ChatGPT.</strong></p><p>Paste this prompt, then paste the ledger export beneath it:</p><pre><code>You are a bookkeeper reconciling a QuickBooks Online Sales Tax
Payable account against the QBO Sales Tax Center filing history.

I'm giving you two datasets:
1. A 12-month transaction detail of the Sales Tax Payable GL account
2. The Sales Tax Center filing and payment history for the same period

Build a month-by-month rollforward table with these columns:
Month | Opening Balance | Tax Accrued on Sales | Payments Applied |
Other Activity | Closing Balance

Then produce a second table, "Unexplained Activity," listing every
transaction in the GL detail that is NOT one of:
- sales tax accrued from an invoice or sales receipt
- a sales tax payment recorded through the Sales Tax Center

For each unexplained item, give me: date, transaction type, amount,
name, memo, and your best hypothesis for what it is &#8212; specifically
whether it looks like (a) a payment recorded outside the Sales Tax
Center, (b) a manual true-up journal entry, (c) a post-filing credit
memo or refund, or (d) a leftover opening/conversion balance.

Finally, state the total dollar value of unexplained activity and
whether the closing GL balance is higher or lower than what the
filing history implies it should be.

Do not guess at amounts. If a transaction is ambiguous, say so and
tell me what additional field would resolve it.</code></pre><p><strong>Step 4 &#8212; Read the Unexplained Activity table first.</strong></p><p>The rollforward is context. The second table is the deliverable. In a client with a real problem, it's usually three to eight transactions carrying almost the entire variance, and the pattern is obvious the moment they're isolated &#8212; six checks to "Dept of Revenue" coded to a Taxes expense account, or one $4,000 journal entry from a prior December with the memo "adj per CPA."</p><p><strong>Step 5 &#8212; Verify each item in QBO before you touch anything.</strong></p><p>Open every flagged transaction. The AI is pattern-matching on a memo field; it doesn't know your client. Confirm the transaction type, confirm the account it hit, and confirm whether cash actually moved. A payment recorded as a check <em>did</em> move money. A journal entry did not. That distinction decides the fix.</p><p><strong>Step 6 &#8212; Push the corrections back into QBO.</strong></p><p>For payments recorded outside the Sales Tax Center: the cleanest path is to void or reclassify the original check and re-record the payment through <strong>Taxes &#8594; Sales Tax &#8594; Record Payment</strong> for the correct period. If the period is closed, don't reopen it &#8212; post a correcting journal entry in the current period that clears the liability and reclassifies the expense, and document it.</p><p>For manual true-up entries with no filing behind them: reverse them unless you can produce the return that justifies them.</p><p>For post-filing credit memos: these are usually legitimate and represent a real overpayment to the state. That's a refund claim or a credit on the next return, not a book adjustment.</p><p>For conversion balances: write them off to the appropriate period's expense or equity only after you've confirmed with the client that no return was ever filed against them.</p><div><hr></div>
      <p>
          <a href="/__u/ailedger.substack.com/p/the-sales-tax-liability-reconciliation">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Quick Win #173: Clear Out the Undeposited Funds Account That's Been Growing Since 2023 with ChatGPT in 7 Minutes]]></title><description><![CDATA[Undeposited Funds is the most common broken account in small-business QBO. The bank rec still ties, so nobody looks &#8212; while the balance sheet carries thousands in payments that were already deposited and booked twice.]]></description><link>https://ailedger.substack.com/p/quick-win-173-clear-out-the-undeposited</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-173-clear-out-the-undeposited</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Wed, 19 Aug 2026 16:01:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Open any QBO file you inherited and check Undeposited Funds. If the balance is bigger than a normal week of sales, you've found something.</p><p>Here's how it happens. The client receives a payment in QBO, which parks it in Undeposited Funds waiting to be grouped into a deposit. The actual money hits the bank as part of a lumped deposit. Instead of matching that deposit to the pending payments, someone categorizes it straight to income from the bank feed. Done. Rec ties. Everyone's happy.</p><p>Except the payment is still sitting in Undeposited Funds, the revenue got recorded twice, and the balance sheet now has an asset that doesn't exist. Repeat weekly for two years.</p><h3>The 7-minute cleanup triage</h3><p><strong>1. Export the detail from QBO (2 min).</strong> Reports &#8594; search "Undeposited Funds" &#8594; run the account detail (or Balance Sheet &#8594; click the Undeposited Funds balance). Set the date range to All Dates. You want: date, customer, payment method, amount, and reference number for every open item. Export to Excel.</p><p><strong>2. Paste into ChatGPT (30 sec):</strong></p><blockquote><p>I'm a bookkeeper cleaning up a client's Undeposited Funds account in QBO. Below is the detail of every payment sitting in the account. Analyze and organize: (1) AGE BUCKETS &#8212; group items by age: 0-30 days (normal, in transit), 31-90 days, 91-365 days, over 1 year. Give count and dollar total per bucket. Anything past 30 days is almost certainly an error, not a payment in transit. (2) DUPLICATE RISK &#8212; flag items where the same customer and same or similar amount appears more than once. These are the most likely double-counted deposits. (3) PATTERN BY PAYMENT METHOD &#8212; total by payment method (check, credit card, ACH). Card and ACH payments stuck in Undeposited Funds usually mean the merchant-processor deposit was booked directly to income. Call that out. (4) ROUND NUMBERS &#8212; flag any amount that looks like a manual entry rather than a real customer payment (round hundreds, exactly repeating amounts). (5) CLEANUP PLAN &#8212; for each age bucket, tell me the likely root cause and the correct fix (match to an existing deposit, delete the duplicate payment, or leave as genuinely in transit). Output as a prioritized worklist with dollar totals so I can quote the cleanup time.</p></blockquote><p><strong>3. Work the oldest bucket first (4 min).</strong> Take the over-1-year items and search the bank register for a deposit on or near that date for that amount. If you find one that was booked to income, that's your double count &#8212; delete the stranded payment and apply the deposit to the invoice, or reverse the income entry. If you can't find a matching deposit, the payment may never have arrived, which is a different and more interesting conversation with the client.</p><p>Seven minutes to turn a mystery balance into a priced, ordered worklist.</p><div><hr></div><p><strong>Check Undeposited Funds on every client file this week.</strong> If the balance is older than 30 days, you have revenue recognition problems &#8212; and probably a tax return worth amending.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Want the full workflow?</strong> Paid subscribers get step-by-step Deep Dives with templates, prompt packs, and ready-to-use tools every week. <a href="/__u/ailedger.substack.com/subscribe">Upgrade to get the complete system &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #172: Catch the Inventory and COGS Errors Quietly Inflating Your Client's Margins with ChatGPT in 7 Minutes]]></title><description><![CDATA[Negative quantities, phantom inventory value, gross margin that swings 20 points a month &#8212; QBO posts all of it without complaint. ChatGPT cross-checks your inventory report against the P&L and tells you what doesn't add up.]]></description><link>https://ailedger.substack.com/p/quick-win-172-run-an-inventory-and</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-172-run-an-inventory-and</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Tue, 18 Aug 2026 16:02:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Inventory is where small-business books go bad quietly.</p><p>QBO will let a client sell 12 units of something they have 4 of. It will carry an item at $8,400 of value with zero quantity on hand. It will let COGS post to a random expense account because someone edited the item setup in March. None of it throws an error. None of it shows up on the bank rec. It just sits there until the CPA runs year-end and asks why gross margin went from 61% to 38% in Q2.</p><p>By then it's eight months of transactions to unwind.</p><h3>The 7-minute check</h3><p><strong>1. Pull two reports from QBO (2 min).</strong> Reports &#8594; Inventory Valuation Summary (as of today). Reports &#8594; Profit and Loss, set to monthly columns for the trailing 12 months. Export both to Excel.</p><p><strong>2. Paste both into ChatGPT (30 sec):</strong></p><blockquote><p>I'm a bookkeeper reviewing a client's QBO inventory and COGS for data quality issues. Below are two reports: an Inventory Valuation Summary and a monthly Profit &amp; Loss for the trailing 12 months. Check for: (1) NEGATIVE QUANTITIES &#8212; any item with quantity on hand below zero. These mean sales were recorded before purchases and the COGS is wrong. List item, quantity, and value. (2) VALUE WITHOUT QUANTITY &#8212; items with zero or negative quantity but a non-zero asset value, or quantity on hand with zero value. Both indicate broken item setup. (3) AVERAGE COST OUTLIERS &#8212; calculate value &#247; quantity per item and flag any unit cost that looks implausible versus the rest of the file (e.g. off by 10x, suggesting a data entry error). (4) GROSS MARGIN BY MONTH &#8212; compute revenue, COGS, and gross margin percentage for each month. Flag any month where margin moves more than 5 percentage points from the trailing 3-month average, and say whether the swing came from the revenue side or the COGS side. (5) COGS TIMING &#8212; flag any month with revenue but near-zero COGS, or COGS with near-zero revenue. These usually mean inventory adjustments posted in the wrong period. Output a prioritized list: issue, item or month affected, dollar impact, and what to check in QBO.</p></blockquote><p><strong>3. Verify the top three in QBO (4 min).</strong> ChatGPT is reading numbers, not the transactions behind them. Open the top three flags and confirm. A negative quantity usually traces to an invoice dated before the bill that stocked the item &#8212; fix the dates, the COGS corrects itself. A margin swing is often one large miscoded purchase. Fix what's clearly wrong; note what needs the client to answer.</p><p>Seven minutes on a report almost nobody runs monthly.</p><div><hr></div><p><strong>Run this on every client with an inventory account on the balance sheet</strong> &#8212; including the ones who told you they don't carry inventory. That's usually where the phantom items are.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Want the full workflow?</strong> Paid subscribers get step-by-step Deep Dives with templates, prompt packs, and ready-to-use tools every week. <a href="/__u/ailedger.substack.com/subscribe">Upgrade to get the complete system &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[The Reconciliation Discrepancy Hunt: How a Solo QBO Bookkeeper Finds the Edited-After-Close Transactions That Broke Last Month’s Beginning Balance — in 30 Minutes]]></title><description><![CDATA[Your July reconciliation was right. Your August beginning balance isn&#8217;t. Here&#8217;s the 30-minute hunt &#8212; and the four-minute setting that ends the problem for good.]]></description><link>https://ailedger.substack.com/p/the-reconciliation-discrepancy-hunt</link><guid isPermaLink="false">https://ailedger.substack.com/p/the-reconciliation-discrepancy-hunt</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Tue, 18 Aug 2026 15:08:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You open the client&#8217;s checking account to reconcile August. The beginning balance doesn&#8217;t match the ending balance you reconciled in July.</p><p>It was right in July. You checked. You have the reconciliation report saved.</p><p>Something moved after you closed. Someone opened a reconciled transaction and changed the amount, changed the date, changed the account, or deleted it outright &#8212; and QuickBooks Online let them, because by default QBO lets anyone do that with a shrug and a dialog box nobody reads.</p><p>This is the single most common reason a solo bookkeeper loses an afternoon. Not fraud. Not a hard technical problem. Just a client who &#8220;fixed&#8221; something in a period you already closed, and now every reconciliation after it is standing on sand.</p><p>Here&#8217;s the 30-minute version of finding it, fixing it correctly, and making sure it stops happening. Four workflows, all built on a QBO export, a paste into Claude or ChatGPT, and a decision you make.</p><h2>First, the objection you should be making</h2><p><em>&#8220;QBO already has a Reconciliation Discrepancy Report. Why do I need AI for this?&#8221;</em></p><p>Fair. And you should absolutely start there &#8212; Workflow 1 below opens with it. That report is the fastest way to see <em>that</em> something changed.</p><p>But it stops well short of the job. It shows you rows. It doesn&#8217;t tell you which of the eleven changes actually moved money versus which were harmless memo edits. It doesn&#8217;t tell you whether the correction belongs in the closed period or the current one. It doesn&#8217;t draft the message to the client that explains what happened without sounding like an accusation. And it doesn&#8217;t catch the case that burns the most time &#8212; a reconciled transaction that was <strong>deleted</strong>, which leaves the discrepancy report thin and the balance still wrong.</p><p>What the AI is doing here is triage and drafting, not arithmetic. Keep that split and this works. Blur it and you&#8217;ll get a confident, wrong answer. Every prompt below is written to enforce the split.</p><h2>Workflow 1: Pull the discrepancy and classify it (10 minutes)</h2><p><strong>Step 1 &#8212; Get the raw discrepancy list.</strong></p><p>In QBO: <strong>Transactions &gt; Reconcile &gt; History by account</strong>. Pick the account. Find the last reconciliation that was clean, and click <strong>View report</strong>. Then, at the top of the Reconcile screen, click the <strong>&#8220;We can help you fix it&#8221;</strong> link if QBO is flagging a beginning-balance issue &#8212; that opens the <strong>Reconciliation Discrepancy Report</strong>.</p><p>Export it to Excel. If QBO won&#8217;t surface the link (it doesn&#8217;t always), go to <strong>Reports &gt; Reconciliation Reports</strong>, open the last good one, and export that instead &#8212; you&#8217;ll compare it against current data in Step 2.</p><p><strong>Step 2 &#8212; Get the current state of the same period.</strong></p><p><strong>Reports &gt; Transaction Detail by Account</strong>. Set the date range to the closed period you&#8217;re checking. Filter to the one bank account. Add the columns <strong>Created</strong>, <strong>Last Modified</strong>, <strong>Last Modified By</strong>, and <strong>Cleared status</strong> &#8212; they&#8217;re in the Customize panel under Rows/Columns, and most people never turn them on. Export to Excel.</p><p>That &#8220;Last Modified&#8221; column is the whole ballgame. Any row modified after your reconciliation date is a suspect.</p><p><strong>Step 3 &#8212; Write down two numbers before you paste anything.</strong></p><p>Your reconciled ending balance from July (off the saved reconciliation report), and the beginning balance QBO is showing you now for August. The difference between them is the amount you&#8217;re hunting. Write it down. If the AI later hands you a set of transactions that doesn&#8217;t sum to that number, you know the analysis is incomplete &#8212; and that check is why you write it down first.</p><p><strong>Step 4 &#8212; Paste and classify.</strong></p><p>Open Claude or ChatGPT and use this:</p><pre><code><code>I'm a bookkeeper reconciling a QuickBooks Online checking account for a small business client. A previously reconciled period no longer ties.

Known facts:
- Reconciled ending balance as of [DATE]: $[AMOUNT]
- Beginning balance QBO now shows for the next period: $[AMOUNT]
- Discrepancy to explain: $[AMOUNT]
- My reconciliation was completed on: [DATE]

Below is a Transaction Detail by Account export for that closed period, including Last Modified and Last Modified By columns.

Do this:
1. List every transaction with a Last Modified date AFTER my reconciliation date. For each, show: date, payee, amount, cleared status, last modified date, last modified by.
2. Group them into: (a) amount changed, (b) date changed, (c) account or category changed, (d) cleared status changed, (e) cosmetic only (memo/description/class).
3. Flag which groups could mathematically affect a bank reconciliation and which cannot.
4. Tell me what is MISSING from this picture - specifically, what a deleted transaction would look like in this data and how I would confirm it.

Do NOT try to compute the total discrepancy or reconcile the balance yourself. I will do the arithmetic. If the data is insufficient to answer any part, say so plainly instead of estimating.

Data:
[PASTE EXPORT]</code></code></pre><p>That last instruction &#8212; refuse-instead-of-estimate &#8212; is not decoration. Without it you will get a plausible total that&#8217;s off by one transaction, and you will spend twenty minutes trusting it.</p><p><strong>Step 5 &#8212; Do the math yourself.</strong> Take the flagged rows, add the deltas in Excel, and compare to the number you wrote down in Step 3. If it ties, you&#8217;ve found everything. If it doesn&#8217;t, the gap is almost certainly a deletion &#8212; which is Workflow 2.</p><p></p>
      <p>
          <a href="/__u/ailedger.substack.com/p/the-reconciliation-discrepancy-hunt">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Quick Win #171: Spot Dangerous Customer Concentration in Your Client's Revenue with Claude in 7 Minutes]]></title><description><![CDATA[If one customer accounts for 35% of your client's revenue and walks away tomorrow, can the business survive? You already have the data in QBO. Claude does the concentration analysis in seconds and shows you exactly where the risk is.]]></description><link>https://ailedger.substack.com/p/quick-win-171-spot-dangerous-customer</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-171-spot-dangerous-customer</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Mon, 17 Aug 2026 16:01:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Your client has 40 customers. Sounds diversified. But three of them generate 65% of the revenue. If the biggest one leaves &#8212; a dispute, a competitor, a budget cut &#8212; your client loses a third of their income overnight. Fixed costs don't shrink. Payroll doesn't pause. The business bleeds until they replace that revenue or cut deep enough to survive on what's left.</p><p>Bookkeepers see this pattern before anyone else. The Sales by Customer report is sitting in QBO right now. Most people look at it as a ranking &#8212; "who are our top customers?" The real question is "how dependent are we on them?"</p><h3>The 7-minute analysis</h3><p><strong>1. Export Sales by Customer Summary from QBO (2 min).</strong> Reports &#8594; Sales by Customer Summary. Set the date range to the trailing 12 months (or current fiscal year). Export to Excel. You need: customer name and total sales amount.</p><p><strong>2. Paste into Claude (30 sec):</strong></p><blockquote><p>I'm a bookkeeper analyzing customer concentration risk for my client. Below is a Sales by Customer Summary from QBO for the trailing 12 months. Analyze: (1) CONCENTRATION &#8212; rank all customers by revenue, show each one's percentage of total revenue, and cumulative percentage. (2) RISK TIERS &#8212; categorize each customer: "Critical" (over 20% of revenue individually), "Significant" (10-20%), "Moderate" (5-10%), "Diversified" (under 5%). (3) DEPENDENCY SCORE &#8212; what percentage of total revenue comes from the top 3 customers? The top 5? Industry rule of thumb: if the top 3 exceed 50%, concentration risk is elevated. If any single customer exceeds 25%, it's a business continuity risk. (4) SCENARIO &#8212; if the single largest customer left, what would the revenue shortfall be? If the client's estimated monthly fixed costs are approximately [ENTER ESTIMATE OR "unknown"], could they cover overhead on the remaining revenue? (5) TREND NOTE &#8212; are any of the top 5 customers' totals significantly different from what you'd expect for 12 months (e.g., suggesting they're new, growing, or declining)? Flag those. Output a summary paragraph I could include in a quarterly financial review for the client &#8212; professional tone, not alarmist, focused on awareness and action steps.</p></blockquote><p><strong>3. Add context and deliver (4 min).</strong> Claude doesn't know that Customer A signed a 3-year contract (lower risk) or that Customer B is month-to-month and has been shopping competitors (higher risk). Add those notes. Adjust the risk tiers if you know the relationships. Include the summary paragraph in your next financial review or client check-in email.</p><p>Seven minutes to surface the risk your client doesn't know they're carrying. This is the kind of insight that makes a client call you "their bookkeeper" instead of "a bookkeeper."</p><div><hr></div><p><strong>Run this on your highest-revenue client first.</strong> If no single customer exceeds 15%, congratulate them &#8212; that's healthy diversification. If someone's at 30%+, start the conversation before life starts it for them.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Want the full workflow?</strong> Paid subscribers get step-by-step Deep Dives with templates, prompt packs, and ready-to-use tools every week. <a href="/__u/ailedger.substack.com/subscribe">Upgrade to get the complete system &#8594;</a></p>]]></content:encoded></item><item><title><![CDATA[Quick Win #170: Audit QBO Voided and Deleted Transactions to Catch Mistakes or Fraud with ChatGPT in 7 Minutes]]></title><description><![CDATA[QBO tracks every voided and deleted transaction. Nobody reviews the log. ChatGPT scans it for patterns &#8212; large voids, repeat offenders, suspicious timing &#8212; so you can catch the data quality issues hiding in your client&#8217;s books.]]></description><link>https://ailedger.substack.com/p/quick-win-170-audit-qbo-voided-and</link><guid isPermaLink="false">https://ailedger.substack.com/p/quick-win-170-audit-qbo-voided-and</guid><dc:creator><![CDATA[Nata]]></dc:creator><pubDate>Sun, 16 Aug 2026 16:03:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v7dq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87ef25c1-ba08-4430-9271-ddbbdeefa2b2_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every QBO company file has a quiet graveyard: the voided and deleted transactions. They don't show on reports. They don't affect the trial balance. And nobody looks at them.</p><p>That's exactly why they matter.</p><p>Most of the time, voided transactions are innocent &#8212; someone entered a check twice and voided the duplicate, or deleted a draft invoice they never sent. But buried in the noise are the signals: a $12,000 check voided the day after it printed. An invoice deleted after the customer paid it (where did the payment go?). A journal entry voided and re-entered at a lower amount. These could be mistakes. They could be something else. Either way, you should know about them.</p><p>QBO logs every void and delete in the Audit Log. The problem is that the log is unreadable &#8212; hundreds of lines with no filtering for significance.</p><h3>The 7-minute audit</h3><p><strong>1. Pull the Audit Log from QBO (2 min).</strong> Go to Settings (gear icon) &#8594; Audit Log. Filter by &#8220;Events: Voided and Deleted.&#8221; Set the date range to the last 90 days (or since your last review). If QBO&#8217;s built-in filter doesn&#8217;t separate voids/deletes, export the full audit log and note that ChatGPT will filter it.</p><p><strong>2. Paste into ChatGPT (30 sec):</strong></p><blockquote><p>I'm a bookkeeper reviewing my client's QBO audit log for voided and deleted transactions. Below is the log data for the last 90 days. Analyze it and flag: (1) HIGH VALUE &#8212; any voided or deleted transaction over $1,000. Show the original transaction details. (2) PATTERN &#8212; any user who voided or deleted more than 3 transactions in the period. Show the count and total dollar value per user. (3) SUSPICIOUS TIMING &#8212; transactions voided or deleted within 48 hours of being created. These might be errors caught quickly (fine) or entries someone wanted to make disappear (investigate). (4) VOID-AND-RE-ENTER &#8212; any transaction that was voided and then a similar transaction (same vendor, similar amount) was entered. Show both the original and replacement with the amount difference. (5) REVENUE IMPACT &#8212; any voided or deleted invoices or sales receipts. Deleted revenue is a red flag that needs explanation. Summary: total voided/deleted count, total dollar value, number of flags by category, and recommended actions.</p></blockquote><p><strong>3. Review flags and investigate (4 min).</strong> Most flags will have innocent explanations. A void-and-re-enter where the replacement is $5 different is a correction. A deleted invoice where the customer was re-invoiced is fine. Focus on: high-value voids with no replacement, revenue deletions with no re-entry, and patterns where one user is doing most of the voiding. Document your findings &#8212; even &#8220;reviewed, no issues&#8221; is worth noting for audit trail purposes.</p><p>Seven minutes to review what most bookkeepers never look at. Do this quarterly and you'll catch problems in weeks, not years.</p><div><hr></div><p><strong>When was the last time you checked your client's voided transactions?</strong> If the answer is &#8220;never,&#8221; run this today. You might find nothing &#8212; and that&#8217;s fine. But you might find the entry that explains why the bank rec has been $200 off for three months.</p><p>Reply or comment &#8212; I read every one.</p><div><hr></div><p><strong>Want the full workflow?</strong> Paid subscribers get step-by-step Deep Dives with templates, prompt packs, and ready-to-use tools every week. <a href="/__u/ailedger.substack.com/subscribe">Upgrade to get the complete system &#8594;</a></p>]]></content:encoded></item></channel></rss>