Last updated 2026-04-26
AR / AP dashboard
/finance/ar-ap is the live receivables + payables view. Both per-entity and consolidated, with aging buckets (current, 30, 60, 90+ days).
What "AR" pulls from
Accounts Receivable = open sales whose payments don't yet cover the invoice.
- Source: rows in the
saletable withstatus = 'open'(or NULL). - Outstanding:
sale.amount_usd − SUM(sale_payment.amount_usd). - Aging anchor:
sale.signed_date. If you want due-date aging instead, log a payment terms field on the sale and we can switch. - Per-entity: each sale carries
entity_id, set when you create the sale.
This is canonical AR — the data is structured and you control it directly via Sales.
What "AP" pulls from
Accounts Payable = vendor bills the AI mailbox scanner has extracted and you've approved.
- Source: rows in
finance_emailwithstatus = 'approved'andextracted_json.doc_type ∈ ('vendor_bill', 'expense_receipt', 'payroll'). - Aging anchor: the document date the AI extracted (falls back to email received date).
- Currency: amounts in the original currency are converted to USD at the document month's FX rate (see Entities & FX).
- Per-entity: each bill is tagged to an entity at approval time in the Inbox.
Limitation in V1: there's no per-bill paid flag. So AP totals represent recognized bills inventory (bills you've acknowledged owe), not strictly outstanding payables. Once you mark a bill paid (future feature) it'll drop off this view. For now, treat the figure as a ceiling — actual outstanding will be lower.
Per-entity vs consolidated
- All (consolidated): sum of every entity's open AR + recognized AP. Shown by default.
- Pick an entity: click an entity tab to scope both numbers + the detail tables.
When viewing consolidated, a "By entity" table breaks out totals + the ≥60d figure per entity, so you can spot which subsidiary has the worst aging.
Aging buckets
| Bucket | Days old | Color |
|---|---|---|
| Current | 0–30 | neutral |
| 30–60 | 30–60 | neutral |
| 60–90 | 60–90 | warn (amber) |
| 90+ | 90 or more | danger (red) — chase these |
The detail tables tint rows with the same colors so overdue items stand out at a glance.
Permissions
Admin or has_finance_access flag holders only. See Roles.
What's not in V1
- Per-bill paid flag (so AP shows true outstanding)
- Customer statements / dunning emails for overdue AR
- AP payment scheduling
- AR / AP delta charts (trend over time)
- Pull AR straight from QuickBooks invoices (currently only via
salerecords)
See something wrong or outdated in this article? Report it →