Read me first
Everything you need to open this, demo it, and hand it to someone else.
How to open it
Double-click index.html. That is the whole procedure — there is no install, no server,
no npm, and nothing to configure. It runs from a folder on a laptop, a USB stick, or a
shared drive. Chrome, Edge and Safari are all fine.
You need a network connection the first time so the three webfonts load from Google. Offline it still works and falls back to the system typeface — a little plainer, everything else identical.
A ten-click demo
Read the hero, then press Watch one invoice go through. That drops you on the command centre with the pipeline already running.
Twenty seconds, eight stages, live counters. It narrates each decision as it goes and ends with a bill in QuickBooks.
Bottom of the dashboard. Watch the straight-through count move as the confidence threshold changes. This is the dial they control.
The hero screen. Hover a field on the right and watch it light up on the document. Note that only the two uncertain fields are flagged — the confident ones are left alone.
The AI cards go from dashed and dimmed to solid. That is the point: the model proposes, the person owns it.
Find Passaic Valley Plumbing on the wall. Their general liability lapsed, so the pay column reads Blocked. Not a warning — a gate.
Four rows are flagged Amount mismatch. Click one and read why New Jersey makes that a hard stop.
The cutoff clock is counting down. Try to decision an exception without picking a reason code — the bank will not take it, so neither will this.
Grove Street Development needs reconnecting because a refresh token rotated out from under it. Scroll down for the IIF preflight.
Type a vendor name, an invoice number, or >
for actions.
Every screen
What is real and what is not
Real
- Every screen and every interaction. Filters filter, sorts sort, search searches, forms hold state.
- The data model. Six entities, five projects, 22 vendors, 91 cost codes, 69 invoices, 16 commitments, 42 waivers, 14 envelopes — all internally consistent, so the dashboard totals really are the sum of the rows behind them.
- The workflow logic. Routing tiers, compliance gating, duplicate scoring, retainage, landed-cost allocation and the freight three-way match all compute from that data.
- The file formats. The IIF structure, the Positive Pay layouts and the QuickBooks field mapping are the real ones, researched against bank and Intuit documentation.
- The statutory detail. N.J.S.A. 2A:44A-38 on lien waivers, the Prompt Payment Act clocks, New Jersey retainage rules, the CG 20 10 / CG 20 37 endorsement distinction, the $600 1099 threshold and 24% backup withholding.
Not real
- There is no backend. No Python is running, there is no database, and nothing calls an API.
- Every company, project and person is invented. No real client data is in this folder.
- The documents are drawn, not scanned. The invoice on the review screen is SVG we generate; the OCR is scripted rather than live.
- Nothing leaves the machine. No email sends, no envelope signs, no dollar moves.
- Insurance minimums and approval ceilings are sensible defaults, not yours.
Making it yours
All the data is in one file: assets/js/data.js. Replace the entity, project and vendor
arrays at the top with real names and every one of the 31 screens updates. It is a find-and-replace,
not a rebuild — which makes a good second meeting.
Three things we guessed at
- The sixth AI prompt. The brief names five but says six. We built the sixth as approval routing recommendation. If yours is vendor matching or price-variance detection, one card on the AI console swaps.
- The cost codes. We read "CS-to-GL mapping with ~80 codes" as CSI MasterFormat, and keyed
the mapping on the pair (cost code, cost type) rather than the code alone. If yours is an
NAHB-derived residential list the format changes from
03 30 00to3300. - Which LLCs sit on QuickBooks Online versus Desktop. We invented a plausible split. It also decides whether the sync console is one connection or six.
And one question only your bank can answer: Positive Pay layouts and cutoff times vary by institution. The format-profile screen is the right abstraction, but the default profile should be theirs.