Not open for general onboarding yet. Join the list and we'll reach out when we're bringing on new teams.

How it works

One dollar, from vendor invoice to your client's screen

Four steps. Read just the headings for the shape of it, or open any step to see exactly what it does and the screen it does it on.

01Cost comes in

It reads the invoice so nobody has to

Drop in a PDF, a photo taken in a truck, or a whole scanned batch. The cost comes back already matched to the job and coded to a cost class, with the document still attached, ready for a person to agree with rather than a blank form to type into.

What it actually does
  • Read off the document Vendor, invoice number, dates, subtotals, tax and line items, including phone photos and HEIC files from the field.
  • Matched to the job by address Including the aliases your vendors actually write on their invoices instead of the legal address.
  • Coded from that vendor's history The same sub lands in the same cost class every time, which is what makes your job cost reports comparable month to month.
  • It declines to guess Two jobs on the same street and no house number on the paperwork? The cost is left unassigned and flagged. A blank field costs you thirty seconds; a confident wrong answer bills the wrong client.
  • Duplicates caught on intake Repeat invoice numbers, credit memos and re-sent statements are stopped at the door rather than found at reconciliation.

Extracted from invoice_50122.pdf

Review and post · 1 of 12 in batch

Auto-filled
Vendor
Sierra Concrete Inc.matched to vendor record
Exact
Project
Lot 14, Alta Vistaalias "Alta Vista 14"
Address
Cost class
03 Concretefrom 41 prior bills
History
Invoice total
Subtotal $39,350.00Tax $3,150.00
$42,500.00
Source document
attached and stays attached
On file
02It gets approved

Approvals that actually close

Everything waiting on a decision sits in one queue with a name attached to it. "Where is that bill?" becomes a question you answer off a screen instead of by asking three people.

What it actually does
  • Routed by project and role The approver who knows the job gets it, with email notification and a live count of what's pending.
  • Hold or reject with a reason The reason stays attached to the bill, so the vendor conversation has a record behind it instead of a memory.
  • A comment thread per bill The back-and-forth lives on the document rather than in somebody's text messages.
  • A tracker for whoever owns the money What's outstanding, how long it has been sitting, and who the holdup is, with reminders that go out on their own.
  • Then it hands off to QuickBooks A browser bridge fills the matching QuickBooks Online bill form from the approved bill. It fills fields only. It never clicks Save.

Approval tracker

Outstanding by approver

2 aging
M. Reyes, Superintendent
3 billsoldest 1 day
On pace
J. Whitfield, Project Manager
7 billsoldest 9 days
Reminder sent
Held, awaiting vendor
Duplicate invoice numberreason on file
2 held
Cleared to QuickBooks
this weekbridge fills, you save
18 posted
03Compliance clears

The right release, chosen for the right reason

California gives you four statutory waiver forms and no margin for picking the wrong one. Site OS reads the payment status and the invoice, then tells you which form to send and why, in a sentence you could read out loud to your client.

What it actually does
  • All four forms Conditional and unconditional, on progress payment and on final payment, prepared and emailed to the vendor for signature.
  • Conditional or unconditional is decided by the money Whether the vendor has actually been paid drives it, not whoever happens to be filling in the form.
  • Progress or final comes from the contract Contract total against billed-to-date, plus retention and "final" language read off the invoice itself.
  • The reasoning is written down And when there's no document on file, it falls back to deterministic rules and says so rather than pretending to have read something.
  • The rest of compliance sits next to it Insurance certificates and expiry, workers' comp status, contracts out for signature, and a searchable licence lookup covering every licensed contractor in the state.

Suggested release

Sierra Concrete · Inv 50122

Reasoned
Unconditional Waiver and Release on Final Payment
Our records show this invoice is fully paid, the contract is billed to 100%, and the invoice is marked final.
Paid in full
payment status is authoritative
Unconditional
Completes vendor billing
"FINAL INVOICE" found on document
Final
General liability
expires 14 Nov 2026
Current
04Your client sees it

An open book that assembles itself

By the time you bill your client, every cost is already coded, approved and carrying its backup. The billing builds from what's in the system instead of from a folder of screenshots and a spreadsheet formula nobody wants to audit.

What it actually does
  • Your fee applied the way the contract reads Configured per project, so markup, general conditions and excluded costs stop being a monthly recalculation.
  • Client invoices off the project budget Costs land against budget lines, so what you billed and what you budgeted are the same conversation.
  • Draw packages with the backup attached Bill allocations, funding sources and the document checklist a lender asks for, assembled rather than rebuilt.
  • A portal your client opens from an email No account to create and no password to reset before a Sunday phone call. You choose which sections are visible.
  • You can see that they looked Share links are scoped, logged when viewed, and rate-limited, so "I never got that" has an answer.

Client billing, July

Lot 14, Alta Vista

Backup complete
Hard costs this period
34 approved bills9 budget lines
$318,940.00
Builder fee
per project configuration
$25,515.20
Documents behind every line
Invoices, releases, receipts, photos
34 of 34
Total due
cost plus fee
$344,455.20
If you're evaluating seriously

The procurement questions

Skip these unless they're your job. They're here so you don't have to book a call to ask.

Is our data separated from other companies?

Every table is scoped to your organization with row-level security enforced by Postgres, not by a filter in application code that somebody can forget to write. The isolation doesn't depend on the application remembering.

What happens if someone changes the wrong thing?

Row-level change capture is append-only. You can see who changed what and when, and put a bad edit back without filing a support ticket. Unusual bursts of activity raise an alert rather than waiting to be noticed.

Can we get our data out?

Bills, invoices, documents and photos export on request in a machine-readable format, during your subscription and for 90 days after it ends. Leaving should be a task, not a negotiation.

Does this replace our accounting system?

No. QuickBooks Online stays your ledger and your accountant keeps working the way they already do. The bridge fills a QuickBooks bill from an approved bill and stops. Your controller presses Save.

Who can see what?

Named access profiles, per-project access and per-user overrides. A superintendent sees their jobs; the controller sees the money; the client sees their portal and nothing else.

How hard is it to move our existing data in?

Vendors, jobs, users and history come in as batches you can check a slice of first, then merge the duplicates every real dataset arrives with. Cost classes and vendor-to-class mappings come along, which is what makes the coding useful in week one instead of month three.