Automation in the back.
Dashboard in the front.
The tech infrastructure for a $5–30M company's finance function — transactions automated at the source, leadership dashboards built with AI on top. Your company owns every account; a fractional controller/CFO runs the whole thing for you.
13-Week Cash Flow
rolling forecast, drill-down to the transaction
Leadership KPIs
the numbers the exec team runs the week on
AR Command Center
who owes what, who to call today
Customer Dashboard
revenue, margin & aging by customer
Income Statement
monthly P&L vs budget, drillable to the entry
Any Report You Want
if it's in the warehouse, it's a dashboard
BigQuery + dbt — the modeled layer
per-client warehouse · governed metric definitions · daily tie-out to the Xero trial balance
Xero · GL
general ledger, AP/AR, bank rec — one ledger for the whole business
Gusto · Payroll
payroll, benefits, HR records — synced to Xero
Cloudflare Access — one door, your keys. Every dashboard sits behind Access; your team signs in with the Google or Microsoft accounts they already have. Secure by architecture, not by policy memo.
Six layers, top to bottom
Dashboards the leadership team actually runs on
Custom static apps built with AI in HTML and Python, deployed to Cloudflare Pages in your company's own account. No BI license, no engineering backlog — and each person sees only what they're authorized to see.
A modeled warehouse — every metric defined once
Your company's own BigQuery project, with dbt models playing the role certified semantic models play in the enterprise stack. Every dashboard inherits the same numbers, and the warehouse ties out to the Xero trial balance daily — a reconciliation, not a hope.
Scheduled, reconciled extracts
Nightly Python extractors on GitHub Actions pull Xero, Gusto, Ramp, and Stripe into the warehouse. Control totals are checked on every run; a broken feed pages your controller before anyone opens a stale dashboard.
Xero and Gusto — one ledger, one payroll
Your company owns the subscriptions; your fractional controller/CFO connects as an advisor. A standard, proven pairing means nothing exotic to maintain — the bank rules, chart of accounts, and dashboard templates are battle-tested, not bespoke.
Transactions coded at the source
Bank feeds with rules, Ramp for cards and AP, Dext or Hubdoc for receipts and supplier bills, Stripe or GoCardless for AR. The goal: the ledger largely writes itself, and the controller reviews exceptions instead of keying entries.
Cloudflare Access — one identity, end to end
The SMB answer to Entra ID: an access layer your controller administers that accepts the Google Workspace or Microsoft 365 sign-in your team already uses. One place governs who sees what, across every tool in the stack.
Your infrastructure. Managed for you.
Your company owns everything
Xero, Gusto, Ramp, the Cloudflare account, the warehouse project — all in your company's name, billed to you, with the fractional controller/CFO as the administering advisor. Change advisors someday? You hand over admin rights. Your data never moves.
A dedicated instance, isolated by design
Your stack is a dedicated copy of a proven template — no shared database, no commingled data with any other business. Your numbers can never surface in someone else's dashboard, by architecture.
Proven before it touches your books
Every component runs in a lab against vendor sandboxes — the Xero Demo Company, Gusto's demo environment, Stripe test mode — before it ever connects to live company data. Changes are rehearsed there first, too.