Honey Do-List Handyman Services
Loading…
Honey Do-List logo
Internal Ops & Pricing Console
{{ authError }}
Accounts are set up by an admin — contact your team lead if you need access.
Honey Do-List logo
Welcome! Set a password to finish setting up your account
{{ setPasswordError }}
Loading your organization's data…
Honey Do-List logo
Internal Ops & Pricing Console
Menu
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
📎 {{ inspectionDocName }}
{{ composerStatus }} {{ jobPhotosStatus }}
{{ 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.name }} {{ res._costLabel }} {{ res._stockLabel }}
{{ lowesStatus }}
Imported costs are recorded into your Materials Library as trusted pricing.
{{ mat._badgeLabel }}
{{ 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.name }} {{ res._costLabel }} {{ res._stockLabel }}
{{ lowesStatus }}
{{ lc._lineCostFmt }}
Sub labor present — confirm notes state this portion is completed by a licensed subcontractor.
{{ mat._badgeLabel }}
Category Price (internal est.)
⚠ Permit likely required — confirm with local building department before finalizing price.
Dump / Haul $
Trailer Rental $
One-way miles
{{ mileageStatus }}
{{ 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.
{{ settings.companyName }}
{{ 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 }}
{{ trackerStatus }}
{{ selectedCountLabel }} {{ zapierStatus }}
Job Title {{ sortTitleArrow }}
Customer {{ sortCustomerArrow }}
Status {{ sortStatusArrow }}
Man-Hours {{ sortHoursArrow }}
Fixed Price {{ sortPriceArrow }}
Date {{ sortDateArrow }}
Actions
{{ job._titleOrDash }}
{{ job.customerName }}
{{ job._fin.totalHoursFmt }}
{{ job._priceFmt }}
{{ job._dateFmt }}
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.
Product URL
{{ item.name }}
{{ item.timesUsed }}×
{{ item._sourceLabel }}
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.
{{ entry.name }}
{{ entry.category }}
{{ entry.hours }}h
{{ entry._priceLabel }}
{{ entry._sourceLabel }}
No rate book entries yet. Complete a job or add one manually to get started.
{{ 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 }}
Name {{ sortClientNameArrow }}
Contact
Properties
Created {{ sortClientCreatedArrow }}
Last Quote {{ sortClientLastQuoteArrow }}
Actions
{{ cl._displayName }}
{{ cl._contact }}
{{ cl._propertyCount }}
{{ cl._createdFmt }}
{{ cl._lastQuoteFmt }}
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 }}.
{{ dataStatus }}
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.
Logo preview {{ logoUploadStatus }}
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.
{{ zapierTestStatus }}
{{ settings.companyName }}
{{ companyContactLine }}
{{ draft._titleOrPlaceholder }}
Prepared for {{ draft._customerOrPlaceholder }} — {{ draft._addressOrPlaceholder }}
Scope of Work
{{ draft._descOrPlaceholder }}
Assumptions & Exclusions
{{ draft.notes }}
{{ draft.desc }}
{{ scope.title }} {{ scope.categoryPriceFmt }}
Scope of Work
{{ scope.desc }}
Labor{{ scope.laborRevenueFmt }}
Materials{{ scope.materialRevenueFmt }}
Subcontractor{{ scope.subRevenueFmt }}
{{ scope.notes }}
Price Breakdown
Labor{{ fin.laborRevenueFmt }}
Materials{{ fin.materialRevenueFmt }}
Subcontractor{{ fin.subRevenueFmt }}
Incl. Dump/Trailer Fees{{ fin.passFeesFmt }}
Incl. Mileage ({{ fin.billableMiles }} mi round-trip){{ fin.mileageFeeFmt }}
Total Fixed Price {{ fin.finalPriceFmt }}
This is a fixed-price proposal based on the scope above. Work outside these inclusions may require a separate estimate.
Internal Use Only — Not for Customer
{{ draft._titleOrPlaceholder }} — Job Financial Summary
Customer: {{ draft._customerOrPlaceholder }}
Address: {{ draft._addressOrPlaceholder }}
Status: {{ draft.status }}
Mode: {{ internalModeLabel }}
Scope of Work
{{ draft._descOrPlaceholder }}
Assumptions & Exclusions
{{ draft.notes }}
Overview
{{ draft.desc }}
Labor
Total Labor Hours{{ fin.driveNote }}{{ fin.totalHoursFmt }}
Hourly Labor ({{ fin.rateFmt }}/hr/tech){{ fin.hourlyLaborFmt }}
Dispatch / Show-Up Fee{{ fin.dispatchFeeFmt }}
Labor Revenue{{ fin.minNote }}{{ fin.laborRevenueFmt }}
Materials{{ fin.highVolumeNote }}
{{ grp.label }}
{{ mat.name }} × {{ mat.qty }} @ {{ mat.costFmt }} ({{ mat._badgeLabel }}){{ mat._lineTotalFmt }}
No materials for this scope.
Scope Material Subtotal (pre-tax, pre-markup){{ grp.subtotalFmt }}
{{ mat.name }} × {{ mat.qty }} @ {{ mat.costFmt }} ({{ mat._badgeLabel }}){{ mat._lineTotalFmt }}
Baseline Material Cost (incl. 7% tax){{ fin.baselineMaterialFmt }}
Marked-Up Material Revenue{{ fin.materialRevenueFmt }}
Subcontractors
{{ sub.name }}{{ sub.costFmt }}
Sub Labor Cost → Revenue (20% markup){{ fin.subLaborFmt }} → {{ fin.subRevenueFmt }}
Dump/Trailer Fees ({{ fin.passFeesCostFmt }} + 20% mkup){{ fin.passFeesFmt }}
Mileage ({{ fin.billableMiles }} mi round-trip @ ${{ settings.mileageRatePerMile }}/mi){{ fin.mileageFeeFmt }}
Subtotal{{ fin.subtotalFmt }}
Total Fixed Price{{ fin.finalPriceFmt }}
Gross Profit{{ fin.grossProfitDollarFmt }} ({{ fin.grossProfitMarginFmt }})
Scope Category Breakdown
{{ scope.category }} — {{ scope.title }}{{ scope.categoryPriceFmt }}
Techs: {{ scope.techs }} · Hours: {{ scope.hours }} · Sub Labor: {{ scope.subLabor }}
Scope of Work
{{ scope.desc }}
Assumptions/Exclusions: {{ scope.notes }}
Import Jobber Quote
Upload the PDF (recommended — AI reads the actual document layout) or paste the quote text. AI extracts only the priced line items, ignoring customer/business info. Categories become scopes in a new multi-scope job — review and price them with your own labor and materials before saving.
{{ jobberStatus }}
Original Quote Pages (check against parsed items below)
{{ item.pageLabel }}
Materials List
{{ draft._titleOrPlaceholder }} — For Supplier Quote
{{ materialsExportStatus }}
Quantities only, no pricing — hand this to a supplier associate (or paste into their online quote tool) to price and confirm availability.
{{ grp.title }}
Item
Qty
{{ mat.name }}
{{ mat.qty }}
Item
Qty
{{ mat.name }}
{{ mat.qty }}
Generated {{ materialsExportDate }} from Honey Do-List job draft.