Active Jobs
{{ metrics.activeJobs }}
Revenue (Last 7 Days)
{{ metrics.weeklyRevenueFmt }}
Pending Quotes
{{ metrics.pendingQuotes }}
Team Profit Margin
{{ metrics.avgMarginFmt }}
Revenue Composition — All Jobs
Labor Revenue{{ metrics.laborFmt }}
Material Revenue{{ metrics.materialFmt }}
Subcontractor Revenue{{ metrics.subFmt }}
Pipeline (Open Jobs by Stage)
{{ p.label }} · {{ p.countLabel }}{{ p.valueFmt }}
Recent Jobs
{{ job.customerName }}
{{ job._dateFmt }} · {{ job.status }}
{{ job._priceFmt }}
✦ AI Assistant
{{ composerHint }}
Will analyze {{ jobPhotosCount }} attached photo(s)
{{ voiceStateLabel }}
You said: “{{ voiceTranscript }}”
{{ voiceResponse }}
Linked to client record
Team Worksheet (Internal Only)
Drive Time (billed round-trip, from dispatch)
Dispatch: {{ settings.dispatchAddress }} — clock runs door to door via fastest route.
{{ driveStatus }}
If the button is blocked by your browser preview, copy this link: {{ directionsUrl }}
Materials
Import from Supplier
{{ lowesLookupStatus }}
{{ res._costLabel }}
{{ res._stockLabel }}
Imported costs are recorded into your Materials Library as trusted pricing.
{{ mat._libraryHint }}
What we actually pay, separate from what we charge. Reduces gross profit; doesn't change the customer price.
{{ lc._lineCostFmt }}
Import from Supplier
{{ lowesLookupStatus }}
{{ res._costLabel }}
{{ res._stockLabel }}
{{ lc._lineCostFmt }}
Sub labor present — confirm notes state this portion is completed by a licensed subcontractor.
Category Price (internal est.)
⚠ Permit likely required — confirm with local building department before finalizing price.
Dump / Haul
$
Trailer Rental
$
One-way miles
{{ fin.billableMiles }} billable mi round-trip → {{ fin.mileageFeeFmt }}
Live Financial Breakdown
Total Labor Hours{{ fin.driveNote }}
Hourly Labor ({{ fin.rateFmt }}/hr/tech)
Dispatch / Show-Up Fee
Labor Revenue{{ fin.minNote }}
Baseline Material Cost (incl. 7% tax){{ fin.highVolumeNote }}
Marked-Up Material Revenue
Subcontractor Revenue ({{ fin.subLaborFmt }} cost + 20% mkup)
True Labor Cost (wages — not marked up){{ fin.laborCostTotalFmt }}
Dump/Trailer Fees ({{ fin.passFeesCostFmt }} + 20% mkup)
Mileage ({{ fin.billableMiles }} mi round-trip @ ${{ settings.mileageRatePerMile }}/mi)
Subtotal
Fixed SOW Price
Gross Profit{{ fin.grossProfitDollarFmt }} ({{ fin.grossProfitMarginFmt }})
Type in any field to override it; clear the field to go back to the calculated number.
Customer Proposal Preview
Edit each category's customer-facing text and pricing in the Team Worksheet scope cards to the left.
{{ companyContactLine }}
Prepared for {{ draft._customerOrPlaceholder }}
{{ draft._titleOrPlaceholder }}
Scope of Work
{{ draft._descOrPlaceholder }}
Assumptions & Exclusions
{{ draft.notes }}
{{ draft.desc }}
{{ scope.title }}
{{ scope.categoryPriceFmt }}
Scope of Work
{{ scope.desc }}
{{ scope.notes }}
Incl. Dump/Trailer Fees{{ fin.passFeesFmt }}
Incl. Mileage ({{ fin.billableMiles }} mi round-trip){{ fin.mileageFeeFmt }}
Fixed SOW Price
{{ fin.finalPriceFmt }}
Merge {{ selectedCountLabel }} into One Job
Since crews often overlap across jobs done the same day, total man-hours is calculated as combined scope hours ÷ this crew size — not simply added up.
Mark Job as Lost / Archive
Trusted Materials Library
Every material you use gets recorded here. Costs pulled from supplier imports (Lowe's, Home Depot, Amazon, Sherwin-Williams) are marked as verified; the app reuses these instead of guessing, so estimates get more accurate over time. Grab this list and search these exact products on your supplier's site to build your order.
Scopes
Your saved rates for common jobs — auto-recorded from completed jobs, or added manually/via CSV. AI actions reference this to keep pricing and scope wording consistent.
{{ rateBookModalTitle }}
Reference Materials
Import Rate Book CSV
{{ csvFileName }} — {{ csvRowCount }} rows. Map columns:
{{ fr.label }}
Clients
Your customer database. Import from a Jobber export (Clients or Quotes CSV both work), or add manually. Pick a client by name when starting an estimate to auto-fill contact info.
{{ selectedClientCountLabel }}
No clients yet. Import from Jobber or add one manually.
Merge {{ selectedClientCountLabel }}
Properties from every selected client are combined onto the one you keep. Any jobs pointing at the others are re-linked automatically so their history and Jobber ID stay intact. The others are deleted.
Properties {{ cl._propertyCountLabel }}
No properties yet.
Billing Address
Import Clients from Jobber
Upload a Jobber "Clients" export, or a "Quotes" export — both use the same client columns, so either works. Duplicate clients (matched by email, or name if no email) are skipped automatically.
{{ clientImportStatus }}
Labor Rates
Applied to new estimates immediately.
Below the half-day threshold, every job bills at least this many hours per tech (plus dispatch fee) even if the work took less time. Default 1 = our old fixed 1-hour minimum.
Day-Rate Tiers
Below the half-day threshold, jobs bill hourly plus a dispatch fee. At or above it, flat-rate tiers kick in and the dispatch fee is waived — full-day jobs bill fewer hours than actually worked as the trade-off.
Material Markup Tiers
Auto-applied by item cost and job material total; per-item overrides in the estimator still take precedence.
Subcontractors
Data Backup & Restore
One file holds your jobs, materials library and scope rate book. Data lives in this browser only, so download a backup regularly. {{ jobCountLabel }}.
Integrations
Supplier lookup endpoint for live product pricing (Lowe's, Home Depot, Amazon, Sherwin-Williams). Leave blank to fall back to AI estimates.
Dispatch
Jobs within the free radius carry no mileage charge. Beyond it, the excess is billed round-trip at the per-mile rate.
Company Info
Shown on the customer-facing proposal preview and printout.
Branding
Logo and colors shown on the customer-facing proposal preview and printout.
Job Defaults
Team / Labor Cost
Your crew's true hourly wage — used for the internal Labor Cost section on jobs and scopes, so gross profit reflects what we actually pay, not just what we charge. "Auto-add order" controls who fills in automatically: on a 1-tech job/scope only #1 is added, on a 2-tech job #1 and #2 are added, and so on. Leave order blank to keep someone available for manual selection only.
Order
Integrations — Zapier / Jobber
Paste the URL from a Zapier "Webhooks by Zapier > Catch Hook" trigger. From Job Tracker, select job(s) and click "Send to Zapier" to push client + quote data (same fields as the Jobber CSV export) to your Zap, which can then create/update the quote in Jobber.