SHOP MANAGEMENT · WORKSHOP ACCESS

AI-powered collision estimates,
built for your shop floor.

Upload damage photos, scan a VIN, or pull DTC fault codes — get an itemized, insurance-ready repair estimate in minutes, priced against real state labor rates and live parts sourcing.

50
States' Labor Rates
tracked & updated
AI
Vision-based damage
detection per photo
VIN
Factory ADAS & spec
data, decoded live
PDF
Itemized, claim-ready
report every time

Everything the shop floor needs, in one workbench

AI Photo Analysis

Upload damage photos and let the vision model identify affected parts, severity, and repair vs. replace calls automatically — with cropped evidence photos attached to every line.

Manual & Teardown Lines

Add hidden damage found during teardown, R&I-for-access, diagnostics, and sublet work directly — the same estimate, technician-supplemented.

VIN Decode + ADAS

Scan or type a VIN for instant year/make/model/trim, drivetrain, and confirmed factory ADAS/safety equipment straight from NHTSA — no guessing on recalibration billing.

OBD Fault-Code Estimates

Price a repair straight from DTCs when there's no visible damage — diagnostic-only until a technician confirms the actual fix.

Real State Labor Rates

Every estimate prices against actual tracked labor rates and sales tax for the vehicle's state, not a flat national guess.

Itemized PDF Reports

A complete, claim-ready document — labor breakdown, parts & pricing, ADAS lines, photo evidence, and your shop's own branding.

Simple, transparent pricing

Pay per estimate

Free to generate & edit — pay only when you're ready to download a PDF or mark an estimate reviewed.

Switch between plans anytime from your own Billing settings.

From photo to priced estimate

1

Intake

Photos, VIN, or fault codes — whatever the vehicle gives you.

2

Analyze

AI identifies damage and severity; you confirm and refine.

3

Price

Labor, parts, ADAS, and tax priced against real, current rates.

4

Deliver

A signed, itemized PDF ready for the customer or the claim.

Estigator

Workshop
Estimates over time
All sources · vision, manual, OBD
Revenue collected
Paid estimates only
Estimates by source
Last 30 days
Needs attention
Review requests + payment incidents
Recent estimates
Last 8 created
Workshop tenants — generated vs. paid
Sorted by unpaid count · a tenant piling these up is worth a closer look
ShopGeneratedPaidUnpaidLast generated
New Estimate
How do you want to build this one?
App Branding

The software's own name, logo, and browser-tab icon — shown across the Workshop header, login screen, landing page, and (once you configure the same via customer-portal-web) the public wizard. Distinct from PDF Branding, which is your shop's own business identity printed on the generated estimate document itself.

Product Name
Logo & Favicon
PDF Branding

Configure the company details, logo, and watermark that appear on every generated PDF estimate.

Company Information
Branding & Watermark
Regulatory IDs optional, shown in small print under the company block
Site URL — this app's own public domain
Technician Review Disclaimer — shown in the PDF's technician-verification block for a plain Workshop review with no formal paid remote/physical request behind it
Legal Disclaimer — printed as a "Terms & Disclosures" footer on every generated PDF (liability, repair authorization, aftermarket parts, fraud warning)
Page Footer Text — short one-line note repeated at the bottom of every page (distinct from the Legal Disclaimer above, which prints once, as a full block, at the end)
Parts Vendor Attribution — eBay/online-sourced parts never come with a named seller (no address/phone), only a marketplace channel
State Labor Rate Cards
State Rate Status Body $/hr Paint $/hr Mech $/hr Supplies $/hr Parts Tax % Source / Date
Click Refresh to load
Rate History
System Status
Add User
Workshop Accounts
Username Role Contact Status Created
Click Refresh to load
ACV Lookup

Actual Cash Value lookups (used for the total-loss threshold) fall back through three tiers: paid vendor APIs below, then a generated depreciation table, then a static estimate. Vendor API keys are never displayed once saved — only a short suffix, so you can confirm one is set.

Tier-1 is gated separately per calling surface — a shop can let paid vendors run for Workshop-created estimates while keeping the unauthenticated Public kiosk on the free fallback tiers, or the reverse. Both default to off; turning on paid vendor spend is an explicit choice.

CarAPI
MarketCheck
Edmunds (not yet implemented)
Parts Pricing Lookup

Replacement-part price lookups (the eBay-sourced quote on REPLACE lines) are gated per calling surface the same way ACV Tier-1 is — a shop can allow a paid parts vendor for Workshop estimates while keeping the Public kiosk on the free vendor. Only eBay has a live backend today, so both toggles currently have no effect — they're ready for when a paid vendor (e.g. a dedicated used/LKQ or OEM-dealer-network API) is added.

eBay (via Xoftex Proxima)
RockAuto (not yet implemented)
Car-Part.com — Used/LKQ (not yet implemented)
VIN Decoder

VIN decoding runs through a local NHTSA vPIC-backed microservice. It decodes locally first and falls back to a configurable third-party vendor when needed. The connection settings below are this app's own — the vendor's own API key/URL live on the decoder service itself.

Decoder Service Connection
Fallback Vendor
Estimation Policy

Shop/insurer business rules for estimate money math — applies to every estimate on every surface (Public kiosk and Workshop alike), not gated per surface like ACV/Parts.

Total Loss
ADAS Recalibration Billing — whether a heuristic-triggered ADAS recalibration line (bumper/grille/windshield/mirror/quarter-panel damage near a sensor) is auto-billed onto the total, or always shown as advisory-only pending a technician's manual confirmation
Diagnostic / Inspection Labor — flat hour billed when a fault code or a vision-detected part can't be confirmed yet; shared by OBD and vision INSPECT parts
Post-Payment Regeneration — "AI missed something" re-runs on an already-paid estimate; each attempt is free to the customer, no new charge
Photo Evidence (Grounding Model)

Controls how confident the grounding model (GroundingDINO) must be before a per-part AI-cropped photo is shown on an estimate. Real-world testing found no single value cleanly separates correct crops from wrong ones — a low floor lets some confidently-wrong photos through, a high floor can suppress nearly all crops. Tune this based on real estimates as they come in; takes effect on the very next estimate generated, no restart needed. Not gated per surface — applies identically to Public and Workshop.

Crop Reliability
Payment Providers

Stripe and PayPal configuration for the separate customer-portal (Angular + Node) app — this app never stores these values itself; every save here is proxied live to customer-portal-api over the internal service network. Takes effect on that service's very next request, no restart needed.

Stripe
PayPal — alternative to Stripe at checkout (per-estimate, signed-report, and subscription)

Email & Notifications

How and where this app sends customer/admin email — provider config, the shared From Address, link-building base URL, and support routing. Proxied live to customer-portal-api, same as Payment Providers above.

From Address — shared by both providers below, whichever is actually sending
Resend (transactional email)
SMTP — a shop's own mail server, checked before Resend when configured
Site URL — used to build every link in outgoing customer emails
Support — dispute / data-error reports
Workshop Pricing

What an outside shop pays to use this platform after self-registering ("Register Your Workshop" on the landing page) — a separate price tag from the consumer self-service pricing under Customer Portal. Enforced as a real payment gate before a registered shop can download a PDF or mark an estimate reviewed (or — see Prepaid Credits on a tenant's own "My Workshop" panel — pre-purchased against this same per-estimate price); an admin-provisioned Workshop account (no billing identity) is exempt.

Self Estimates Pricing

Pay-per-estimate and subscription pricing for the self-service consumer wizard, both admin-configurable. Proxied live to customer-portal-api, same as the other Customer Portal tiles. For what a registered workshop tenant pays instead, see Workshop Pricing under Pricing & Vendors.

Payment Incidents

Webhook signature failures, fulfillment errors after a payment already succeeded, and synchronous PayPal-capture failures — recorded with enough detail (event/order id, the affected estimate, a truncated stack trace) to actually debug, not just "something failed".

Escalations

Customer-reported issues — exhausted regenerate attempts, general "Report an Issue" submissions, plain data-error reports, and generation failures — each carries a tracking code and, for a guest, a contact email. Processing a refund (generation failures only) charges nothing new; it reverses the original report-unlock payment via Stripe/PayPal directly.

Training Data

Browse past vision-sourced estimates — photos, VIN/vehicle specs, OBD fault codes, and per-part damage/disposition labels — to curate a dataset for fine-tuning the vision model. Select rows and export a zip (original photos + a manifest.json of the labels). Filter to "Reviewed only" for technician-corrected labels, the higher-value signal.

Broadcast Messages

Sends a message that appears in every recipient's notification bell — and, for Maintenance/Urgent severity, also as a one-time banner across the top of their screen.

Public Branding

Name/logo/favicon shown to customers on the self-service wizard (customer-portal-web, selfestimator.com) — separate from App Branding's Workshop-internal identity (estigator.com).

Public-Facing Identity
Mobile Hero Image

The wizard landing page's mobile hero graphic (<768px only — desktop keeps its own photo/headline design). One complete image, no text drawn over it by this app except the "Get My Estimate Now" button. Independent of "Use the same branding as Workshop" above — Workshop has no hero-image concept to fall back to, so this always uses what's set here.

Feature Toggles

On/off switches for optional customer-facing features, plus Google Sign-In — folded in here rather than given its own tile since it's a single field, not really payment/email/ pricing. Toggles below are proxied through a curated view of the Customer Portal's own config (not a second copy); Google Client ID is saved via the same general settings endpoint the other Customer Portal tiles use.

Google Sign-In — ID-token verification only, no client secret involved
Site Content

Edit the text shown on the public FAQ, Terms of Service, Privacy Policy, and Refund Policy pages — changes go live immediately, no deploy needed. This is a plain text editor, not rich formatting: for Terms / Privacy / Refund Policy, start a new section with a line beginning ## (e.g. ## 1. Refunds), and separate paragraphs with a blank line. For FAQ, start each entry with a line beginning Q: and its answer on the next line(s) beginning A: (an answer can span several lines — the next Q: line starts a new entry). Reviews is a real list editor below instead of raw text — add/remove entries directly, each with a name, star rating, and comment. Manually-entered reviews here are shown, with the name as typed, alongside real customer feedback in the landing page's "Reviews (N)" dialog — a real customer's own submitted feedback shows their own typed name if they gave one, otherwise "Verified Customer".