{{ excAcross }} open exceptions across six entities — counted per entity, never combined. Each card below is an independent set of books, refreshed on its own schedule.
Deterministic rules first, a reasoning pass second — and when the reasoning layer fails validation, the document routes to a human instead of a guess. Every run writes an audit row.
Every vendor and subcontractor invoice checked against the actual contract terms before anyone approves it.
Invoices matched against what your accounting system says was actually received — designed to post the approval back once you click it.
Built for someone who is CFO of six companies at once. Every figure below derives from standard accounting-system reports — onboarding requires no new data entry from the client.
The four dashboards an owner actually opens — built entirely off standard accounting reports for one synthetic entity, Harbor Point Manufacturing.
Two documents that are supposed to agree, reconciled line by line, with every variance explained. In production this workflow reconciled a vendor’s monthly log against a client’s own settlement worksheet and landed on $18,087.60 — matching the client’s independently prepared figure to the cent.
How documents reach us. Structured payloads over authenticated HTTPS. Clients do not email documents into a shared mailbox and do not upload into a general-purpose environment. When we say API, we mean the document never sits in an inbox.
Who can see what. Per-user authentication. Every database query runs under the requesting user’s own credentials, with row-level policies enforced at the data layer — so an application bug cannot return another tenant’s rows. There is no privileged service key anywhere in the application.
Multi-tenant isolation. Every job row is tagged to its client. Clients receive only their own results. Access is per-key, with per-key quotas, and an invalid or inactive key is refused outright.
Secrets. Centrally managed and injected at deploy time. Nothing in source control, nothing in a repository, nothing in a config file a contractor can read.
Audit trail. Every request writes an immutable row: who, what, when, which rules fired, what was decided, who approved. The excerpt below is the same live trail your Approve and Reject clicks on the audit page write to.
Approval gates. Nothing reaches a client-visible or system-of-record state without a human decision:
Failure behavior. Validation failures route to human review. Upstream outages degrade one entity, never the report. Nothing is ever reported as current when it is stale.