Built to order · walkthrough

An RFQ packet in.
A provenance-backed, human-gated bid out.

BidWright is the estimating and takeoff system Elevare Edge builds for industrial electrical, fire alarm and HVAC controls contractors. It reads the plans and the spec book, counts what the legend says to count, reads the schedules, checks its own work, and hands your estimator a draft where every number can be traced to a rectangle on a sheet.

This page is a walkthrough on a public-record packet, not a sandbox and not an upload box. Read it, then ask for the pilot at the bottom if it fits how you bid.

The workflow

Eight stages, each one leaving receipts

  1. 01

    Ingest

    The packet goes in as it came: plans PDF, spec book, addenda.

    Every later value points back at a document, a page and a rectangle on that page. Nothing is retyped.

  2. 02

    Sheet intelligence

    Which sheets matter for your trade, and what each one is.

    The drawing index is read, sheets are classified (legend, plan, schedule, one-line, detail), and the spec book is indexed by CSI section so Division 26, 27, 28 and 40 sections surface first.

  3. 03

    Legend read

    The symbol legend becomes a table: glyph, description, mounting.

    The one place a human has counted against it so far, the read matched all 25 rows (see the numbers below).

  4. 04

    Counts with bounding boxes

    Each symbol family is counted on each plan sheet.

    Every counted instance keeps its coordinates. The receipts view draws the boxes back on the sheet, and a click removes or adds one as an audited human correction.

  5. 05

    Schedules and panel reconciliation

    Panel schedules are read cell by cell and the arithmetic is checked per phase.

    A load that reconciles against the stated total earns VERIFIED standing. A breaker rating that only passes a validity check stays PLAUSIBLE, because passing a check is not the same as being right.

  6. 06

    Validators raise flags

    Domain checks run over the whole takeoff and the flags are listed, not hidden.

    Sheet furniture counted as devices, missing legend families, schedules that do not add up, scope with no price basis: each becomes a flag a person clears or waives by name.

  7. 07

    Estimate, every price marked SEED

    Quantities meet assemblies; the numbers are placeholders until your price book and labor units replace them.

    Every line carries a price basis. SEED means the value is a starting point that was never yours; a vendor quote is a commitment and is never escalated; an unclassified material is not escalated at all.

  8. 08

    DRAFT-stamped scope letter and workbook

    A scope letter and an xlsx with Receipts and Flags tabs, stamped DRAFT.

    The stamp stays until the takeoff, the estimate and the scope have each been approved by a person. BidWright never submits a bid. You do, in the portal, as yourself.

Evidence

What the stages see, on a public packet

Every still below comes from one Missouri Office of Administration public bid, R2513-01 (an HVAC and controls upgrade, plans and specs). It is a public record of state procurement. Nothing here is a customer's packet, and nothing here carries a price.

A crop of sheet E-001, the electrical legend: lighting fixtures, receptacles, communication devices and fire alarm symbol columns, each glyph beside its description.
Stage 3, the legend read. A raw crop of sheet E-001 ELECTRICAL LEGEND, page 14 of 19, rendered from the packet PDF with no annotation. This is the table BidWright turns into glyph, description and mounting rows before it counts anything.
A crop of sheet E-201, the testing center power plan: unit heaters, VAV boxes, a rooftop unit and their circuits drawn over the floor plan.
Stage 4, the sheet the counter works on. A raw crop of sheet E-201 POWER NEW PLANS, detail A, page 18 of 19, again with no annotation. In a pilot, the receipts view draws a box around every counted instance on a sheet like this one. No receipts still is shown here because the only stored takeoff on this packet predates the phantom-scope fix and would misrepresent the counter; see the numbers below.
Spec sections indexed from the R2513-01 spec book
SectionTitlePages
000107PROFESSIONAL SEALS AND CERTIFICATIONS2
000110TABLE OF CONTENTS3–4
000115LIST OF DRAWINGS5
001116INVITATION FOR BID6
002113INSTRUCTIONS TO BIDDERS7–13
005213CONSTRUCTION CONTRACT14–16
006113PERFORMANCE AND PAYMENT BOND FORM17
006325SUBSTITUTION REQUEST19–20
007213GENERAL CONDITIONS25–44
007300SUPPLEMENTARY CONDITIONS45
011000SUMMARY OF WORK50
012600CONTRACT MODIFICATION PROCEDURES52
Stage 2, the spec index. The first 12 of the 47 CSI sections the deterministic indexer found in the same packet's spec book, with the PDF pages each one spans; 8 of the 47 fall in the electrical and instrumentation divisions. The full excerpt is at spec-index-excerpt.json.
Escalation answers on an illustrative index table
Line descriptionPrice basisWhat escalate() answers
#12 AWG THHN CONDUCTORSEEDPCU335929335929: 4% year over year, 0.5% month over month, reference 2026-08 (ILLUSTRATION)
#12 AWG THHN COPPER CONDUCTORSEEDseries PCU331420331420 is not in the index table
75 KVA DRY-TYPE TRANSFORMERSEEDPCU335311335311: 7.5% year over year, 0.2% month over month, reference 2026-08 (ILLUSTRATION)
75 KVA DRY-TYPE TRANSFORMERquote 2026-09-01QUOTED — a vendor quote is a commitment for its validity period; escalating it invents a cost the vendor has agreed not to charge
STRUCTURE, STEEL GALVANIZED, 230 KVSEEDno PPI family matches 'STRUCTURE, STEEL GALVANIZED, 230 KV' — unclassified material is not escalated
TESTING AND COMMISSIONING ALLOWANCESEEDno PPI family matches 'TESTING AND COMMISSIONING ALLOWANCE' — unclassified material is not escalated
Stage 7, what escalation refuses to do. The real function, fed a made-up two-series index table so no figure here can be mistaken for a market number. It answers with a percentage and its source, or with a reason: a quoted price is a vendor's commitment and is not escalated, a steel structure is not a wiring commodity, an allowance is not a material. It never returns a price.

Standing

How much a field has earned, not how plausible it looks

Every read value carries one of four standings, and the estimator sees them. The distinction exists to stop a validation rule turning into false certainty.

VERIFIED
An independent statement in the document agrees. Today that is only the load column of a panel schedule, and only on a phase whose arithmetic reconciles.
CORROBORATED
Consistent with other cells: a multi-pole breaker whose continuation rows are where they should be.
PLAUSIBLE
Domain-valid and nothing independent confirms it. Every description, every re-read breaker. A 225 misread as 250 is a valid rating; it is still wrong.
SUSPECT
Fails a domain check. It goes on the blocking list with the rectangle it came from.

Why the DRAFT stamp exists

Three gates, each approved by a person: the takeoff, the estimate, the scope. Until all three are approved, the scope letter, the bid form data sheet and the workbook print DRAFT across them, and an estimate that predates the current takeoff reads STALE and cannot be approved at all. The stamp is not a disclaimer. It is the system refusing to look finished before a human has said so.

Measured, and not measured

The numbers, including the weak half

These are copied from BidWright's own accuracy file, which is generated by the measurement script and cannot be hand-edited. They were measured against human-verified ground truth on real packets. Where no ground truth exists yet, that is stated too.

Legend read, against a human count

FIRE ALARM SYMBOL LEGEND rows, sheet 2E001: human count 25, exact description matches 25 (100% recall), rows returned 28, missed none. The 3 extra rows are near-duplicates from composite glyphs, not wrong text.

Determinism

Same file in, same clusters out: stable on 6 sampled pages of each of 5 packets, including the three Missouri public packets.

Identification rate, the weak half

Counting generalises; visual naming does not. On four real packets the share of symbol families the system could name was 34% (Missouri C2502-01, 95 families), 1% (Missouri R2513-01, the packet on this page, 195 families), 14% (a North Carolina municipal packet, 160 families) and 13% (a fourth packet, 328 families). By unit count the rates were 41%, 0%, 6% and 9%. This is the number that matters most and it is the worst one. It is why a pilot begins with your legend and your estimator's corrections, not with a finished takeoff.

NOT CERTIFIED

End-to-end bid accuracy
Needs the operator's own past bids: a packet, the quantities he took off it, and the price he submitted.
Labor units
Every pack's labor basis says SEED.
Material prices
SEED until the price book is filled from real quotes.
Count accuracy on plan sheets
No hand count exists yet for a plan region; the legend table above is the only human ground truth in the repo.

Also found and fixed on the way: 270 units of sheet furniture on one packet that were being counted as devices (horn strobes and smoke detectors read off the legend itself). That class of error now raises a flag instead of a line item.

Where it fits

One stage of your estimating, not a replacement for it

BidWright sits between the packet arriving and your estimator's judgment. It does the reading, the indexing, the first count and the arithmetic checks, and it writes down where every value came from. Your estimator does what BidWright cannot: names the families it could not, corrects the counts by clicking the boxes, fills the price book from your quotes, and approves the three gates.

It is built to order, in your shop's vocabulary, against your legends and your assemblies. The pilot is how that vocabulary gets learned, one packet at a time, with the receipts and the flags on the table.

A packet you share stays under NDA and is processed locally; it never goes to a cloud model. Related instruments on this site: Bid Radar and Material Costs.

Next step

Run it on one of your packets

A paid pilot: one packet of yours, run end to end, with the receipts and flags handed back for your estimator to check. Or a guided demo on the public packet first. Either way the next thing that happens is a reply from Shane, not a drip campaign.

Paid pilot

One packet of yours, run end to end, with the receipts and flags handed back for your estimator to check. Priced per packet volume, quoted in the reply, no subscription.

No mailing list. One human reply. Your packet, if you share one, stays under NDA and off any cloud model. We use your answers to reply to you; Privacy Policy.

This tool records anonymous usage events to improve it. It never records what you type or upload.