General Ledger
Pre-Journal
The control stage between a business event and the immutable ledger. Nothing here is an accounting record: pre-journal entries are excluded from the Trial Balance, the general ledger, statements and actuals until an authorized approver posts them through AWS.
How an entry becomes accounting
One business event maps idempotently to one accounting treatment.
Event captured → Coded & validated → Reviewed → Approved & posted → Settled
pre-journal pre-journal pre-journal immutable journal clears A/R or A/P
(no GL) (no GL) (no GL) Dr / Cr recorded no second expense
or revenue entryPosted entries are never edited. A correction posts a linked reversal and, where needed, a corrected replacement. Recoding is free while an entry sits in pre-journal; after posting it becomes a reclass entry.
Every source flows through pre-journal
Banking feed: Checking AWS. Other unified source adapters are planned and not deployed; this is separate from connection health.
| Source | What pre-journal proves | Accrual rule enforced | Feed |
|---|---|---|---|
| Customer invoices (A/R) | Revenue vs deferred revenue, service period, customer, dimensions | Revenue is recognized in the service period, not on receipt | Not deployed |
| Vendor bills (A/P) | Expense/asset coding, service period, duplicate check, evidence | Expense is recorded when incurred, not when paid | Not deployed |
| Bank activity (Plaid) | Match of a deposit or payment to an existing invoice or bill | Settlement clears A/R or A/P; it never re-records revenue or expense | Checking AWS |
| Credit-card activity | GL coding of each card charge, receipt evidence, cardholder | The charge is the expense event; the statement payment clears the card liability | Not deployed |
| Payroll (Gusto) | Gross pay, employer taxes, benefits and jurisdictional liabilities by account | Payroll accrues at finalization; a bank debit alone never clears a tax liability | Not deployed |
| Custodial / station funds | Earned ONX fee split from funds held for stations | Only ONX fees are revenue; station money is a custodial liability | Not deployed |
| Manual accruals, deferrals, reclasses | Balanced lines, support, scheduled reversal | Period-end estimates reverse next period rather than being edited | Not deployed |
Banking pre-journal (live)
Proposed entries derived from imported bank activity. These are matching proposals only — approving and posting happens in AWS, never in this browser.
Loading from AWS staging…
Remaining sources and approval controls
Banking feed: Checking AWS. The unified adapters and approval contracts below are planned, not deployed. Missing contracts are not connection failures; no data or approval controls are fabricated.
- GET /v1/pre-journal — Unified register filtered by period, date range, source, state and account
- GET /v1/pre-journal/{id} — Proposed balanced lines, validations and linked evidence
- POST /v1/pre-journal — Create a manual accrual, deferral or reclass draft (no GL effect)
- PATCH /v1/pre-journal/{id}/coding — Recode accounts and dimensions while the entry is unposted
- POST /v1/pre-journal/{id}/submit — Request review; still no GL post
- POST /v1/pre-journal/{id}/approve-and-post — Idempotent atomic post to the immutable general ledger
- POST /v1/pre-journal/{id}/reject — Reject or return for coding, with reason
- GET /v1/card-transactions — Imported credit-card spend awaiting GL coding
- GET /v1/payroll/runs — Gusto finalization events feeding payroll pre-journal entries
Controls AWS enforces before any approval button is enabled
- • Server-side authorization and separation of duties on approval
- • Balanced debits and credits validated before posting
- • Posting-level, active Chart of Accounts validation
- • Open-period (or approved prior-period adjustment) validation
- • Duplicate-source prevention — one business event, one accounting treatment
- • Idempotency keys so a retry never double-posts
- • Immutable posted journals; corrections post reversals, never edits
- • Full actor, timestamp, prior/new state audit on every transition
Accuracy first, lock last
Period stages used by month-end, quarter-end and year-end close.
Open
Routine entry for the period. Pre-journal fills up and is worked daily.
Month soft close
Closed for routine entry once the checklist is complete and no pre-journal item is left unapproved. Not locked.
Prior-period adjustment
Inside the same open quarter, an authorized approver may still post into a soft-closed month with a reason. The month is restated visibly, never silently.
Quarter hard lock
Applied only when the quarter is final and no month has open pre-journal or unresolved restatement. Nothing further may post.
Year hard lock
All four quarters locked, schedules complete, retained earnings rolled forward, audit package produced.