Owner's Manual · v3 · July 2026 · now with the real screens

BID REVIEW — powered by Mirror Engineer

The whole job in one file. Every estimate line, every actual sub bid, every award, every note — organized, compared, reconciled to the penny, and printed on your letterhead. No logins. No platform. No data ever leaves your machines.

1 · What it is

Bid Review is estimating software that lives in a single HTML file per job. Open it in any browser — it works. Email it — everything rides along: the estimate, the actual bid PDFs, the comparisons, the awards, the activity log. There is no server, no account, no subscription wall between you and your own job.

It was built by an estimator, on real jobs, against real signed contracts. It is not a demo. On its second job it read a 656-page executed contract edge to edge and found $68,500 of signed, selected scope that had fallen out of the contract total during hand-assembly — and an $83,429 vendor-switch discrepancy between two revisions of the same trade sheet inside the same signed document. Software that pays for itself by reading carefully.

2 · Your work cannot be lost — the save story

If you have ever lost an afternoon because Excel forgot to save or the computer crashed — this is the feature built from that scar. Four layers, oldest to newest:

Layer 0 — every click saves itself, instantly. The moment you award a bid, type a note, or edit a number, it is written to this machine. Crash, power cut, closed tab — reopen the job and everything is exactly where you left it. There is no “forgot to save” here.
Layer 1 — the save chip. In the header, a small counter reads “7 edits since save.” Green, then amber at 10, then red at 30. Click it any time — that IS the Save Pack button. It never interrupts you; it just refuses to let you forget.
Layer 2 — the door guard. Try to close the tab with unsaved work and the browser stops you and asks. The absent-minded close on a Friday afternoon can’t hurt you anymore.
Layer 3 — true autosave (Chrome and Edge). Click Autosave… in the header once, point it at your job file, and from then on every edit writes the whole job to disk automatically — like AutoRecover, except it never forgets and it’s always current. (Firefox doesn’t allow browsers to write files yet — layers 0–2 protect you there, and Save Pack is one click.)

Why Save Pack still matters: the instant self-saving in Layer 0 lives in ONE browser on ONE machine. Save Pack writes the real file — the one you can back up, email, open on another computer, or drop into a fresh engine a year from now. End every work session with the chip green. That’s the whole discipline.

3 · Chain of custody & privacy — where your data lives

Short version: on your machines, and nowhere else.

WHATWHERE IT LIVESWHO CAN SEE IT
The job pack (estimate, bids, awards)The HTML file itself — on your disk, your Drive, wherever you put itWhoever you give the file to. Nobody else.
Your working changes (edits, notes, statuses)Your browser's local storage, on your machineOnly you, until you deliberately hit Save Pack / Save HTML
The activity log (who did what, when)Inside the pack — every change stamped with name + time, append-onlyEveryone you share the pack with. That's the point.
Mirror Engineer's serversThere are none. We cannot see, sell, lose, or subpoena your data, because we never have it. Your bids, your margins, your clients — structurally private.
The accidental safety feature that isn't an accident: browsing a pack changes nothing in the file. Clicks and edits live only in that person's browser until they consciously save. Nobody wrecks the master by looking at it. If someone deletes something by mistake — press F5; the file restores everything. Deliberate deletes go to a restorable Trash. The only permanent delete in the entire product is labeled "Empty trash (permanent)" and asks first.

Multi-estimator setup (today's model)

One pack, one owner. The estimator assigned to a job owns its pack file. Host job folders on Google Drive: the admin grants each estimator edit on their own job folders and view on the rest — that's your access control, backed by Google's logins and Drive's version history (who uploaded what, when, with rollback). Every saved pack carries its version number (files are never overwritten — v1, v2, v3… is your audit trail) and its activity log. A true login/role server with line-level permissions is the funded v2 — the architecture is specced and the money is in the raise for exactly that.

4 · The laws the engine obeys

No fake numbers. Every figure is extracted from the actual document and reconciled against printed totals before it ships. Unreadable source → $0 with a VERIFY flag. Never a guess.
Red means VERIFY. Ambiguity is flagged to a human eye, in the deliverable itself. A red flag is a feature; a silent wrong is a defect. When the numbers don't tie, the page says so in red — even when the discrepancy is in your own signed contract.
Read edge to edge. Full width, full height, every Notes column, every title block. The engine never samples, never truncates, never skims.
One bid = one document. A 500-page bid stays one PDF. Never exploded into fragments, never blended with its neighbor.
Every version numbered, nothing overwritten. The file trail is the audit trail.

5 · The demo, step by step — real screens

Six moves, photographed from the product itself (shot from a live demo job: five sub bids dropped on an empty engine — each one read by content, its total pulled off the actual paper, and every landing waiting on your eye). Drag · Drop · Done, with proof.

STEP 1 — Open your Start-a-Job file (02_START A JOB.html in your BID REVIEW folder). This is the whole product, empty: TOTAL $0.00, no bids, no databases — a clean slate. Gather ONE folder: every sub bid PDF and the plan set — plus your printed estimate summary if you have one. No summary? Keep reading; the engine has you covered.
STEP 2 — Drag the whole folder anywhere on the page. The engine hunts the drop for an estimate summary first. Have one? Your estimate comes back mirrored to the penny — confirm the four cards match your paper. Don't have one? The engine offers to start from the standard line structure: every trade line, all at $0 AWAITING — never a guessed number. Your bids land on their trades, and every empty category is yours to price from that line's takeoff card (quantities × your unit price → Set). Short on bids? That's the point: the blanks show you exactly what's missing.
STEP 3 — The sheet. Your columns, your format: Estimate · Site · Additional Options · Total w/Options, statuses, notes, the whole job on the left rail. Nothing here was typed — every number traces to a document.
STEP 4 — Every bid, grouped by trade, its total read off the actual PDF. Click a thumbnail: the real paper opens. The 📎 counts on each line show what landed where.
STEP 5 — Plans & Specs: the drawings, not the bids. Routed by content. If a drawing-heavy bid lands here by mistake (engineered snow-bar bids can look like plan sets), it is flagged for your eye — Open to check, Remove or Move to fix. Red = VERIFY: the engine flags, you decide. Nothing is silently guessed.
STEP 6 — Print. The paper is the estimate format your clients already know, now with the $/SF row: base / site / options / total per square foot, right above the columns — the “why does my house cost more per square foot” answer, on the page. Then Save HTML: the whole job leaves as one file, next version number, never overwritten.

6 · How a job flows — the full tour

The panels below are drawn in the product's own visual language. On your screen the real thing looks the same, with your builder's colors and logo.

1
Enter through your front door. Your branded home page shows the job wall — every job, newest version, always current (the wall re-reads your disk; it cannot show a stale file).
Your Job 123 Main Street · Anytown, USAOpen the job →
Your Next Job IN 00_NEW_JOBS · builds on next sweepBUILDING…
2
Read the summary. The executive summary shows every line — cost code, description, sub selected, estimate / site / options columns, your notes — with $/SF split four ways (base, site, options, total) so site work and options never inflate the build cost a client sees. If line sums don't reconcile to the printed totals, a red banner says so.
BASE CONTRACT$4,821,463.03
OPTIONS$868,029.34
COMPLETE Concrete Flatwork$156,597.50
RECONCILE MISMATCH vs printed totals — VERIFY before use
3
Drop the bids. Drag sub-bid PDFs anywhere on the page — several at once is the point. Each lands on its trade line automatically; anything uncertain goes to a landing report for your eye instead of being guessed. Wrong line? One Move… button. Duplicates? One Clean up duplicates button (they go to Trash, restorable).
4
Compare — scope, not just totals. Every trade with multiple bids gets a comparison read from the actual paperwork: totals side by side with the LOW flag, and only the scope differences — crane, timbers, hardware, tax, delivery. ASK means "not mentioned in that sub's bid — confirm before award."
BID TOTAL$83,500 LOW  ·  $115,430 +$31,930
Crane✓ IN BID  ·  ASK
Timbers✓ IN BID  ·  ASK
5
Award the winner, pass the rest. Award this bid ✓ locks your pick and offers to set the line to the bid's total. The engine then offers to Pass the losing bids — they fold away everywhere (pages, books, exports) so a dead bid can never end up in a contract. Recoverable any time. Site work? Award → SITE puts the money in the Site column in one click.
6
Shape the numbers. Type your own figures with ✎ (marked EDITED), move a line to Site ("this is site work"), carve part of a line into Options ("how much of this is an option? type the number"), set a status chip COMPLETE AWAITING INCOMPLETE, hide the robot's notes and write your own. The line total never changes when money moves columns — it just tells the truth in a different place.
7
Everything is on the record. The Activity page is the chain of custody: every award, pass, edit, note, and status change, stamped with name and time, append-only, riding inside every saved pack.
2026-07-09 22:41  Alma Jessop  AWARDSummit Concrete Footing and Foundation
2026-07-09 22:43  Alma Jessop  EDIT SITELandscape → $129,695.00
8
One button, the whole book. The Client Book: executive summary, then per trade a one-page brief followed by the actual sub bid — stacked, deduplicated, contract-ready. The document that takes three weeks to assemble by hand generates in seconds. (Real jobs have run 170 and 209 pages.) This is also how you walk a customer through the bid: click the trade, show the summary, show the real paper behind it.
9
Export where the money systems live. Your company Google Sheets template — filled in the exact rows you'd hand-type. QuickBooks vendor + bill CSVs that tie to the pack total to the penny. BuilderTrend CSV for the PO system. The pack is the source of truth; everything else is an output.
10
Save deliberately. Save Pack writes a small data file; Save HTML writes the whole self-contained job — new version number, never overwriting. Until you save, everything you did lives only in your browser. That's not a limitation. That's the custody model.

7 · Why this beats the platforms

BuilderTrend scatters one job across seven modules and makes your subs log into a platform they hate — real bid packages sit at "Responses: 0 · Viewed: Never" while the actual bidding happens by email around it. Excel-based systems strain against Excel. Bid Review keeps the whole job in one honest file, reads the actual paperwork, flags what it can't verify, and never asks a sub — or you — to live inside someone else's software. Your data. Your file. Your machine. Our engine.