Skip to main content

How do I reconcile the AR subledger to the GL control account?

Pull the AR subledger balance (sum of open customer invoices, from an AR aging or register report) and compare it to the GL's AR control account balance for the same period-end. They should match exactly. When they don't, the almost-always cause is a journal entry posted directly to the AR GL account instead of through an actual invoice or payment transaction.

Zuny FesterBy Zuny Fester, Head of Operations and Marketing
Reviewed by Zuny Fester
Published Last reviewed Editorial policy

Part of the accounts receivable and collections guide.

What's being comparedAR subledger total (sum of open customer invoices) vs. the GL's AR control account balance
Expected resultThey tie exactly — a difference means something posted to one side but not the other
Most common root causeA journal entry posted directly to the AR GL account, bypassing the invoice/payment transaction types that also update the subledger
Other causesA void or deleted transaction not reversed consistently on both sides; a multi-currency revaluation posted to GL only
This page vs. the general subledger-close pageThis covers AR specifically — see the separate page on tying AR/AP/inventory subledgers to the GL for the general close-task version

Why the subledger and GL are supposed to match exactly

The AR subledger — the customer-level detail of every open invoice — and the GL's AR control account are meant to be two views of the same number: the subledger is the detail, the control account is the summary total that detail rolls up into. NetSuite's own A/R Register report exists specifically to support this comparison, combining posting sales and payment transactions across AR accounts so the subledger total can be checked directly against the control account balance for the same period. When every transaction that touches AR goes through a proper transaction type — an invoice, a payment, a credit memo — both sides move together automatically, and they tie.

The most common reason they stop matching

The break almost always traces back to a journal entry posted directly against the AR GL account instead of through an actual AR transaction. A journal entry that credits AR and debits some other account updates the GL balance immediately — but it doesn't touch the subledger, because the subledger only updates from transaction types actually designed to affect customer balances (invoices, payments, credit memos). The moment someone uses a journal entry to make an AR adjustment for convenience — correcting a balance, writing something off manually — the GL and subledger diverge by exactly that amount, and they stay diverged until it's found and corrected.

Other causes worth checking before assuming it's a journal entry

A voided or deleted transaction that wasn't reversed consistently on both sides can produce the same symptom — if a void updates the GL balance but the subledger detail record wasn't fully removed or reversed, the totals stop matching even though no journal entry was involved. Multi-currency accounts add another path: a currency revaluation adjustment posted to the GL to reflect a period-end exchange rate doesn't always have a corresponding update on the subledger side, since subledger detail is typically held at the transaction's original rate.

How to actually find the break

Rather than searching the whole period's activity, isolate the difference amount first, then look for a single transaction (or small set of transactions) matching that amount posted directly to the AR GL account outside a normal invoice or payment. A GL account activity report filtered to the AR account, scanned for entries whose source transaction type is a journal entry rather than an invoice or payment, finds this quickly in most cases — because a properly posted invoice or payment never shows up as a bare journal entry against that account.

Next step

Map the finance workflow with the most exposure and prove the automation path.

Bring the invoice, contract, payment reconciliation, or customer finance workflow you have to defend at audit. Loopfour can map the trigger, controls, integrations, and approval loop.

Book a workflow review

Worked example

A $6,000 write-off journal entry that broke the tie for two closes

At month-end, the AR subledger total (sum of all open customer invoices) is $412,300. The GL's AR control account shows $406,300 — a $6,000 difference. The subledger side is correct as far as it goes: every open invoice on it is real and unpaid. The GL side is off because a controller, closing out an account they'd determined was genuinely uncollectible, posted a journal entry three weeks earlier: debit bad debt expense $6,000, credit AR $6,000 — directly against the GL account, not through a credit memo against the specific invoice.

The GL now correctly shows $6,000 less AR exposure, but the subledger still lists the original invoice as fully open, because nothing about a bare journal entry touches subledger detail. The fix isn't reversing the write-off — the write-off itself was the right economic call — it's redoing it as a credit memo applied against the specific invoice, which reduces both the subledger and the GL together, then reversing the original journal entry so the $6,000 isn't removed twice. After the correction, both sides read $406,300, and the subledger no longer carries a phantom open invoice for an amount already written off in the GL.

Frequently Asked Questions

Rarely, and it should be the exception with a documented reason — most legitimate AR adjustments (write-offs, corrections, reclassifications) have a proper transaction type (a credit memo, an adjustment against a specific invoice) that keeps the subledger and GL moving together. A direct journal entry against AR should be treated as a red flag to investigate during reconciliation, not a routine adjustment method.

This page is specifically about AR's own break patterns — journal-entry bypasses, void handling, currency revaluation. A broader close task also covers AP and inventory subledgers, which have their own distinct common break causes rather than sharing AR's specific ones.

Month-end is the minimum, since that's when the balances need to tie for close, but checking more frequently (weekly, or after any direct journal entry touching AR) catches a break closer to when it happened, while the responsible transaction and its context are still fresh and easy to trace.

Sources

Related

Topic

AR & Collections

Accounts receivable is the money customers owe a business for goods or services already delivered on credit — a current asset on the balance sheet until it's collected. AR and collections, as a practi…

Read more

Definition

What is an AR aging report and how do I read it?

An AR aging report lists every open invoice grouped by how long it's been outstanding — current, 1-30, 31-60, 61-90, and 90+ days past due. Read it by tracking the bucket distribution over time, not just the total; a shrinking current bucket and growing 90+ bucket signal a collections problem before it shows up in a blended DSO figure.

Read more

Diagnostic

Why does my AP aging report not match my GL AP balance?

The AP aging report is your subledger detail; the GL AP balance is the control account it should sum to. A mismatch almost always means a journal entry hit the control account without a matching subledger entry — a manual JE to AP, a bill dated into the wrong period, or an accrual that never reversed. Find the entry that only exists on one side.

Read more

Diagnostic

What is unapplied cash in AR and how do I clear it?

Unapplied cash is a customer payment that's been received and recorded, but not yet matched to a specific open invoice — it sits in a clearing or unapplied-payments balance instead of reducing a receivable. It's cleared by identifying which invoice(s) the payment is actually for and applying it; until that happens, it inflates cash while AR aging still shows the invoice as fully open.

Read more