Re-run the vendor's own numbers before you sign
A business case rests on a blended wage, ideal utilisation and the lines the quote does not carry. Paste the quote's own line items and your numbers, and CaseProof re-runs the proposal through the same engine as your case — then says which assumptions have to be confirmed in writing before signature.Read Architectural Guide: Stop Signing $3M Warehouse Automation Deals on a Vendor's Spreadsheet
Labour is priced at the fully loaded rate — wage, employer payroll burden, benefits, the FLSA overtime premium and staff attrition cost. §179 with its phase-out, then bonus depreciation, are applied by tax year from a cited rule table. A cost line the case does not state is reported unstated and blocks the verdict — never defaulted, never estimated.
1 · The vendor's quote, line by line
Paste or upload the quote's own line items as CSV rows. Every value is echoed as the vendor wrote it — CaseProof never re-prices a line, and a line the quote leaves blank is reported unpriced, not $0.
2 · Your case
The bid structure, your staffing sheet and your tax position as JSON. Money is integer cents; a term you do not state is reported unstated and blocks a pass — it is never filled in for you.
Worked scenarios: every number is a stated input, and the vendor's claims are reproduced by the same engine that audits the buyer's case.
Watch the launch video
23s · nothing estimated · no signupCaseProof re-runs a warehouse-automation vendor's own numbers before you sign. Watch on YouTube
Agent Surface & WebMCP Integration
How agents, LLMs and procurement bots run the buyer-side audit on one cash model.
// 1. In any browser with WebMCP support (auto-registered on page load):// All three tools are mounted on navigator.modelContextconst audit = await navigator.modelContext.executeTool("audit_automation_case", { case: JSON.stringify(myCase) // { baseline, finance, options: [ ...bids ] }}); console.log("Payback (months):", audit.paybackMonths);console.log("NPV at hurdle:", audit.npvUsd, "IRR:", audit.irrPct);console.log("Confirm in writing:", audit.confirmInWriting); // ranked, riskiest firstJSON Schema Parameters Contract
caseRequiredThe case as a JSON string: { baseline, finance, options: [{ id, vendor, model: capex|lease|raas, … }] }. Money is integer cents; percentages are percentage points.
options[].quoteCsvOptionalThe vendor's quote line items as CSV (item,amount_usd,category,note) so the audit prices the lines the quote actually names instead of assuming them.
baseline.overtimeHoursPerWeekOptionalDrives the FLSA overtime premium inside the loaded labour rate (hours × wage × 0.5 ÷ paid hours per year).
finance.hurdleRatePctOptionalThe discount rate NPV and the bid ranking are computed at.
finance.section179ElectionCentsOptional§179 election, applied with its phase-out before bonus depreciation and the straight-line tail — by tax year.
Pricing
Use it free in the browser. Pay only for exports, the suite, or agent calls.
Free
$9.00 one-off
$29.00/month
| Agent tool | Metered rate |
|---|---|
audit_automation_case | $0.50 per successful call |
compare_automation_bids | $0.50 per successful call |
after_tax_payback | $0.50 per successful call |
Agent calls are metered per successful call and billed monthly to your Stripe customer. Billing shows your usage, history and spend cap.
Manage Billing & API Keys (/billing) →Rule and clause deep dives
CaseProof: Stop Signing $3M Warehouse Automation Deals on a Vendor's Spreadsheet
How unstated WCS integration fees, unburdened labor rates, and aggressive throughput curves stretch 14-month payback models past 41 months—and how deterministic buyer-side auditing protects capital allocation.
- Your labour rate is not the wageA vendor's case prices labour at the blended wage. The fully loaded rate adds employer payroll taxes, benefits, the overtime premium and the cost of replacing the crew you lose each year — and it is the number a labour-saving case actually turns on.
- Section 179 in 2026, with the phase-out appliedSection 179 expensing for 2026: the $2,560,000 dollar limit, the phase-out that starts at $4,090,000 of property placed in service, 100% bonus depreciation on the rest, and the 2026-12-31 deadline that puts the purchase decision in September and October.
- The maintenance line a quote leaves blankWarehouse automation runs 15–20% of equipment cost a year in maintenance, spares and change. Quotes routinely leave it blank — and a blank line is not a zero. See what an unstated maintenance term does to a payback.
- 14 months becomes 41 — and you can see which input did itA proposal that quotes 14 months of payback can audit at 41 on the buyer's own numbers. Here is the same engine re-running the vendor's assumptions, then applying the buyer's — one named input at a time, so every month of the difference is attributable.
- Capex vs subscription — one cash modelA capex bid and a per-unit subscription cannot be compared from their price lists: they are different cash shapes. Put both on one after-tax five-year model and find the seasonal premium at which the ranking flips.
- Turnover: the labour line nobody pricesWarehousing runs 60%+ annual turnover. Every FTE a project removes also removes the rehire and onboarding cost of replacing them — a line no vendor's case carries, and one the audit prices explicitly.
Agent surface: audit_automation_case, compare_automation_bids and after_tax_payback are registered as WebMCP tools and advertised in /.well-known/mcp.json.