Documentation Index
Fetch the complete documentation index at: https://docs.arcuserp.com/llms.txt
Use this file to discover all available pages before exploring further.
What Subledger Drift Means
Arcus tracks two views of the same money:- The subledger is the operational detail. AR = the sum of open invoice balances. AP = the sum of open vendor bill balances. Inventory = the sum of on-hand x weighted-average-cost across every location. Sales Tax Payable = tax collected on posted invoices not yet remitted.
- The GL control account is the rolled-up financial statement view, driven entirely by posted journal entries.
Where Arcus Surfaces Drift
| Surface | When it fires | What it shows |
|---|---|---|
| Dashboard banner | Any open browser session, top of dashboard | Amber (>100 drift) card naming each out-of-balance subledger and the dollar gap |
| Period-Close pre-close | Operator opens “Close Period” modal | Inline amber banner listing every subledger out of balance, with the option to acknowledge and close anyway |
| GL Reconciliation page | Accounting > GL Reconciliation | Full per-subledger detail: GL balance, subledger balance, variance, and a CSV export per subledger for offline review |
| Period close response payload | Backend emits gl.subledger_drift_detected event on every period close | Logged to the GL integrity check log for audit trail |
Common Root Causes
Deleted payment without GL reversal
Deleted payment without GL reversal
DR Cash / CR AR journal entry was not reversed.
Result: GL AR is lower than the subledger by the deleted payment amount.Fix: find the missing payment via Accounting > Account Ledger
filtered by the Cash account around the suspect date. Either re-post
the payment if the deletion was an error, or post a corrective JE
DR AR / CR Cash referencing the original payment id in the
description.Manual UPDATE bypassing the canonical writer
Manual UPDATE bypassing the canonical writer
orders.balance_due or
accounts.credit_balance outside the canonical helper. The subledger
column changed but no journal entry was posted.Fix: identify the SQL change via the activity log. If the manual
UPDATE was correct, post a corrective JE to align the GL. If it was an
error, reverse the column UPDATE through the canonical workflow
(re-post the payment, re-issue the credit memo, etc.).Payment application mismatch
Payment application mismatch
Accounting > AR Management, find the payment, and
review its application rows. Re-apply the unapplied remainder, or post
a writeoff for the unallocated amount.Inventory adjustment with $0 cost
Inventory adjustment with $0 cost
unit_cost = NULL against a
fresh product whose weighted-average-cost was $0. The inventory units
increased but the inventory subledger value did not, while the GL
inventory control account may have posted at the system default.Fix: open Inventory > Adjustments, find the adjustment, and post
a follow-up adjustment with the correct unit cost to bring the WAC
back in line. The canonical helper now blocks this scenario
(ZeroCostAdjustmentError) but historical entries may exist.Voided invoice without GL reversal
Voided invoice without GL reversal
voided in the UI but the original posting JE
was not reversed. GL AR overstates by the voided invoice amount.Fix: look up the voided invoice via Orders filtered by
invoice_status = voided. Confirm the original posting JE exists and
has NO reversal entry. Post a reversing JE
DR Sales Revenue / CR AR for the invoice total (or whatever the
original posting pattern was) and reference the invoice number in the
description.Historical import with unbalanced JE
Historical import with unbalanced JE
Investigation Workflow
Confirm the drift on GL Reconciliation
Accounting > GL Reconciliation and click Run Reconciliation.
Verify the subledger and GL numbers shown on the dashboard banner
match the reconciliation page. Refresh once if the numbers are stale.Export the subledger detail
Export the GL detail
Accounting > Account Ledger and select the matching control
account (1300 AR, 2000 AP, 1400 Inventory, 2200 Sales Tax Payable).
Filter to the same date range. Export the journal entry lines.Diff the two CSVs
Identify the bad source record
Post the corrective journal entry
Accounting > Journal Entries > New. Use a description like
“Corrective JE to align AR subledger with GL control 1300 — ref
invoice INV-12345 voided 2026-05-01 without reversal”. Both legs must
cite the source record id and the root cause in plain English.Send for approval per your entity’s je_approval_threshold policy.
Re-run GL Reconciliation after the JE posts to verify the variance is
back to zero.When To Get Help
In any of these cases the corrective JE may need to be paired with a prior- period restatement, a tax amendment, or a bank-reconciliation reopen. The accounting lead owns the decision; the operator owns the documentation.Related Topics
- GL Reconciliation and Integrity — the full reconciliation surface and how to read the variance cards.
- Journal Entries — how to post a corrective JE through the approval workflow.
- Account Ledger — how to inspect transaction history on one GL account.
- Period Close — how the pre-close checklist warns on outstanding subledger drift before period close.

