Contractor Cloud · spec v4.3

The product in 35 screens

A walkthrough in working order: acquire → publish → sell → build → collect → learn.
Use ← → keys or the buttons below.

Getting in

W11 — Login

Every session starts here — SSO, 2FA, role-scoped from the first click.

Contractor Cloud

Sign in to your workspace

Continue with SSO
or

Email

name@company.com

Password

Forgot?
••••••••
Sign in

Email me a sign-in link instead

New here? Start a 14-day trial

Prospect data engine

W14 — Data acquisition & pipeline health

County, permit, and storm data flowing into the warehouse on schedule.

Data engine — sources
Run log Add source
New storm event ingested — Jul 14 wind swath, 60+ mph · 6,120 parcels affected · roof age ≥ 10: 2,214 Build segment →
SourceLast runRecordsCost / moStatus
Lancaster Co. assessorJul 1 · quarterly41,210$0 OK
Sarpy Co. — via aggregatorJul 1 · quarterly28,904$180 OK
Building permits (3 cities)Yesterday · weekly+312$49 OK
NOAA storm swathsToday · event-driven2 events$0 OK
Enrichment — broker A (email/phone)On demand1,964 this mo$255 OK
Douglas Co. recorderJun 28 · quarterly$0 Retrying

Warehouse size

70,114

properties · 2 counties

Dedup merges

1.2%

APN + fuzzy match

NCOA updates

418

this quarter

Suppressed

3,067

DNC · opt-out · bounce

Prospect data engine

W13 — Segment builder (prospect data engine)

Draw a territory, stack criteria, see enrichment cost before spending a dollar.

Segments — June hail / aging roofs Draft
Save segment Activate

Location

Drawn polygon
Inside Jun 12 hail swath ≥ 1.25"

Property

Roof age ≥ 12 yrs (permit/yr built)
No roof permit since 2014
Home value $250k–$800k
Owner-occupied

Exclusions

Existing customers
Opted out · any channel
+ Add rule
hail swath 1.25"+
matched · excluded · swath

Matched properties

2,847

of 41,210 in territory

Contact coverage

Mailing address100%
Email on file31%
Phone on file22%

Enrich 1,964 missing emails

est. $255 @ $0.13/rec

Activate to

Direct mail — 2,847
Ad audience (hashed)
Email drip — 883 consented
Canvass list

DNC + opt-outs applied at send time

Prospect data engine

W15 — Campaigns & attribution (with CRM valve)

Spend traced to signed revenue; the CRM valve promotes only engaged prospects.

Campaigns & attribution
Q3 to date New campaign
Campaign · segment · channelCostSentLeadsApptsSignedCollectedROI
Jun hail swath · mail ×2$3,4102,847613817$212k18.4×
Aging roofs 15yr+ · Meta ads$2,100aud. 8.4k24114$58k8.1×
Gutter cross-sell · email drip$858831496$31k
New-mover welcome · mail$640512521$9k2.6×

Collected + profit sync back from the CRM · per-campaign tracking numbers and UTM/QR close the offline loop

CRM valve — engaged, promoting→ JobNimbus
Harmon, 2211 Vine St · called tracking #Promoted
Wu, 89 Elmcrest Dr · form fill · hail swathPromoted
Pratt, 407 S 48th · canvasser flagQueued

Attribution (source · segment · campaign) attaches on promotion — 68,900 unengaged records stay out of the CRM

By source, Q3

Storm segments$212k
Aging-roof segments$58k
Cross-sell$31k
Website / organic$44k

Prospect data engine

W17 — Canvassing mobile view

Turfs cut from segments — a knock is an engagement event like any other.

10:22 GPS on

Turf: Vine St block

Jun hail segment · 38 doors · 14 done

37%
done follow-up no soliciting to knock

2218 Vine St — Okafor

Roof ~14 yrs · hail 1.5" · no permit

Interested → CRM Not home Follow up later No soliciting
Voice note…
2222 Vine St — Ruiznext · 90 ft
2226 Vine St — Bellfollow-up 1p

Today

Turf

Capture

More

Prospect data engine

W16 — Prospect record with lineage & compliance

Every field carries its source; purge rights are a button, not a project.

2211 Vine St — Harmon, D. & K.

APN 12-034-118 · Lancaster Co. · Prospect (not in CRM)

In 2 segments Promote to CRM

Attributes — with source lineage

FieldValueSource · date
OwnerHarmon, D. & K.County Jul 1
Year built / value1998 · $342kCounty Jul 1
Roof age (inferred)~15 yrsPermit 2011
Storm exposureJun 12 hail 1.5"NOAA Jun 13
Emaild.harmon@…com ✓ verifiedBroker A Jun 20
Website visitsFinancing ×2, galleryOwned Jul 10

Engagement

Called tracking number — hail-swath mail campaign · Jul 14, 4:02p
Mail piece #2 delivered · Jul 9
Added to segment — Jun hail / aging roofs · Jun 14
Contact & consent
Direct mailOK
Digital adsOK (hashed)
EmailEngaged — drip eligible
Phone / textCold — blocked (DNC ✓)

Checked at send time · opt-outs sync two-way with CRM

Data governance
Owned fields9
Broker A fields2 · retention: perpetual*
Deletion requestsNone
Purge broker A fields Export record

*per contract — see governance settings

Prospect data engine

W19 — Contact 360 (detailed prospective-client view with behavioral heatmap)

Property, personality, consent, and on-site behavior in one view.

DH

Dana Harmon · 2211 Vine St · Prospect

Hail-swath segment · engaged Jul 14 (tracking call) · identity-stitched web visitor (consented)

Lead score

86

Promote to CRM

Property

Built / value1998 · $342k
Roof age~15 yrs
Hail Jun 121.5"
Owner-occ.Yes

Personality local LLM

C — Analytical

Researches financing heavily. Lead with itemized pricing + payment options. No pressure tactics.

Draft matched email →

Consent

Mail / adsOK
EmailDrip-eligible
Phone/textBlocked
Web analyticsConsented

Next best actions

Send financing one-pager
Book inspection this week

Website behavior — click heatmap

Clicks Moves Scroll
/financing · 3 visits · 9m 40s total
cold hot

Scroll depth

100%avg 74%0%

Hottest: payment calculator + apply button

Sessions

Jul 10 · mobile/financing → /gallery · 4m
Jul 8 · desktop/financing · 3m
Jun 14 · mobilead → /hail-damage · 2m

Engagement timeline

Jul 14 · called tracking # (hail mail)
Jul 9 · mail piece #2 delivered
Jun 14 · added to hail segment

Content & growth

W34 — Vendor watch → content pipeline

Supplier and manufacturer feeds watched — each change proposes content or catalog updates.

Vendor watch 6 sources monitored
New (3) Actioned Sources
NEW PRODUCT GAF Timberline UHDZ — thicker laminate, LayerLock manufacturer newsroom · Jul 12

Appears in Beacon catalog delta Jul 14 · not yet in our quote catalog · class-4 IR variant relevant to hail segments

Draft doc-library page → review Draft blog post Draft social post Add to quote catalog (W3/W9) Dismiss
PRICE Beacon: architectural shingle bundles +4.2% effective Aug 1 → flag open quotes older than 30d (12)
DISCONTINUED Ridge vent model RV-40 — replacement suggested: RV-45 → update 2 quote templates · notify estimator

Content drafts ground on the manufacturer spec sheet + our install history with the product line · all proposals expire un-actioned after 30d

Content & growth

W32 — Doc library (homeowner how-tos, pushed to web)

How-to guides pushed to the website — and into AI grounding, atomically.

Doc library grounding source: 14 docs embedded
+ New doc
DOCUMENTVERSIONWEB STATUSVIEWS (30d)CITED BY AI (30d)
Roof maintenance 101v4 published 41237 · composer, Q&A
After the hail: 48-hour checklistv7 published 1,20861 · Q&A top source
Warranty care & transfer guidev2 draft — review not embedded until approved
UHDZ shingle: what's different ← vendor watch (W34)v1 AI draft ready
Publish = website push + re-embed to pgvector, atomically Old versions retired from retrieval the moment a new one is approved

Content & growth

W33 — Blog studio (AI-assisted writing & tracking)

AI-assisted drafts; a human editor always publishes; traffic traced to leads.

Blog studio
+ Idea

IDEAS (3)

Metal vs. asphalt in NE hail country · seasonal
UHDZ shingle review · from vendor watch

DRAFTING (2)

Financing a roof in 2026 · AI draft v2 · grounded: 3 docs
Insurance claim walkthrough · human-written

EDITOR REVIEW (1)

What hail does to shingles · gate: human publishes

PUBLISHED (12)

48-hr hail checklist · 1.2k views · 6 leads · 1 signed
Ventilation myths · 340 views · 1 lead

Attribution: UTM + form source → campaign engine (W15) · disclosure setting: "AI-assisted, editor-reviewed" footer optional per company policy

Content & growth

W31 — Social studio

One calendar for every channel; job photos only with homeowner consent.

Social studio — week of Jul 13
Calendar Engagement (7) Library

MON 13

GBP Storm-season checklist · posted

TUE 14

FB+IG Vine St before/after · posted

WED 15

IG · UHDZ shingle intro — awaiting approval

THU 16

Nextdoor Financing explainer · scheduled 9a

FRI 17

+ suggested: crew spotlight

Engagement inbox · routes to W26 triage

FB comment: "how much for a 1800 sqft ranch?"→ lead created · reply drafted
IG DM: "do you do gutters too?"→ question · human queue

Composer

Drafts grounded on job record + doc library

Photo picker shows only marketing-approved assets (W20 consent)

Human approves every post — nothing auto-publishes

This month

Posts14
Leads from social9
→ signed2 · $31k

Content & growth

W30 — Experiments console (A/B)

Models, ads, and landing pages tested in one framework — with guardrails.

Experiments 3 running · 1 decided
+ New experiment
TYPEEXPERIMENTPRIMARY METRICLIFTSTATUS
MODEL Adapter v13 canary vs v12 · 10% composer traffic (W29) draft accept rate +3.1 pt 87% conf · needs n=214
ADS Meta hail creative: photo vs. inspection-report angle cost per lead $41 vs $54 B wins · 98%
WEB Unlisted mail-segment pages: /hail-check-a vs -b · QR from Jun mail inspection bookings 6.2% vs 4.1% running · day 12
WEB Financing calculator placement: hero vs. inline calc engagement gathering · n=48

Guardrails

Min sample enforced before any readout

Auto-stop: reject-rate or opt-out spike

Assignment respects consent + suppression

Decided (30d)

GBP post time: morning +22% views

Quote email subject: question form +9% opens

CRM & sales

W1 — Sales pipeline (Kanban boards)

Deals in motion — boards a JobNimbus user recognizes on day one.

Boards Contacts Calendar Automations Reports
Search jobs…
JD
Residential roofing
Type: all Rep: all Assignee
Add job
Lead (6)$48k

Garcia — reroof

$14,200 · web lead

Hot

Nguyen — gutters

$3,800 · referral

+ 4 more
Inspection (3)$36k

Olsen — hail claim

$22,000 · insurance

Thu 9:00a

Reyes — siding

$9,400 · retail

Quote sent (4)$61k

Brandt — full reroof

$18,750 · 3 options

Viewed 2h ago

Kim — solar + roof

$31,900 · multi-trade

Sold (2)$27k

Adams — reroof

$16,300 · signed

Deposit paid

Fox — gutters

$10,700 · scheduling

CRM & sales

W2 — Job detail (job folder)

One page per job: files, tasks, financials, communications.

RB

Rachel Brandt — full reroof

1428 Maple Ct · Quote sent · $18,750 · Rep: J. Diaz

Text Call Open quote
Overview Photos (14) Quotes (1) Messages Documents Tasks
Add a note@mention · attach
Write a note or log a call…

Activity

Quote viewed by homeowner — option B opened twice

Today, 2:14p

Quote sent — 3 options, $16,900–$21,400

Yesterday, 4:40p

14 photos added from inspection · annotated

Yesterday, 11:05a

EagleView measurement attached — 28.4 sq

Mon, 9:20a

Personality insightAI
C — Analytical Detail-oriented

Leads with data. Send the warranty specs and itemized pricing before the call. Avoid pressure tactics; give her time to compare.

Lead with numbers and documentation Email first, then schedule the call Don't push for same-day close
Draft an email in her style →
Website activityconsented
Financing page3 visits
Metal roofing gallery6 min
Warranty details2 visits
SourceGoogle Ads · "hail damage"
Tasks2 open

Follow up on quote — due tomorrow

Send financing options — due Fri

CRM & sales

W23 — AI composer (in-context drafting)

AI drafts, grounded in retrieved facts — a human always sends.

Draft email — Dana Harmon local LLM · adapter v12
Follow-up Financing info Schedule ask
Tone Factual Warm Length Short Detailed Regenerate

Subject: Your underlayment question + itemized financing breakdown

Hi Dana,

Following up on your question about the synthetic underlayment — attached is the spec sheet, including the valley ice-and-water detail we discussed on the quote. Since you were comparing monthly options, the Better option at $18,750 works out to $228/mo on the 84-month plan — the full amortization table is attached, no hard credit pull to see terms.

No rush on a decision. Happy to answer anything else line by line.

Jordan · Summit Roofing

Approve & open in editor Edit Reject AI never sends — a person always does · feedback trains adapter v13

Grounded on

Quote Q&A: underlayment vs. felt question (Jul 14)
Website: /financing ×3, calculator hotspot (heatmap)
Quote #1042: Better · $18,750
Playbook: C-Analytical — data first, no pressure

pgvector retrieval · sources clickable

Checks

Email consent: drip-eligible

Claims match quote data

No pricing below floor

CRM & sales

W35 — Interaction review & relationship health

Every interaction reviewed against the playbook — commitments tracked, coaching not surveillance.

Interaction review — Dana Harmon local LLM · playbook C-Analytical
This customer Rep coaching view

Call · Jul 14 · 12m

fit 8.6 · positive

Email · Jul 14

fit 9.1 · sent via W23

Site visit · Jul 9

fit 7.2 · notes thin

Text · Jul 2

fit 8.8 · quick reply

Call · Jul 14 — AI review (vs. C-Analytical playbook + stored history)

✓ led with data ✓ no pressure close ✓ answered line-by-line △ install timeline left vague

Commitments detected

Send amortization tabledone · Jul 14 email
Check prepayment penalty with Wisetackopen · task created
Hold Jul 20–21 crew slotdone · calendar
Coaching note (private to rep + manager): analytical buyers want dates — give a concrete install window next touch Agree · Dispute

Relationship health

82 ▲ +6 this wk

responsiveness · sentiment · commitments kept · quote engagement

Guardrails

Call recording follows per-state consent; disclosure played on record.

Reps see their own reviews first; manager view is aggregate-led.

Reviews coach, never auto-discipline; disputes route to a human.

CRM & sales

W3 — Quote builder (React island)

Good / better / best with live margin as you build.

Brandt reroof — quote #1042 Draft
Preview Request signature Send quote

Pages

Cover page
About us
Inspection photos
Quote options
Upgrades
Warranty
Signature
+ Add page

Your roofing options

Good

$16,900

Better

$18,750

Best

$21,400

Pricing

Good Better Best
Arch. shingles$9,940
Tear-off 28.4 sq$3,120
Underlayment$1,890
Labor$3,800
Total$18,750

Margin — 32%

Floor 28% (admin)

From measurement

EagleView · 28.4 sq applied

CRM & sales

W12 — Homeowner-facing quote view (with async inline Q&A)

The homeowner's quote — presentation-grade, with inline Q&A.

Summit Roofing Co.

Quote for Rachel Brandt · 1428 Maple Ct

1 open question — Jordan replies within a few hours

Good

$16,900

Better ✓

$18,750

Best

$21,400

What's included — tap any line to ask about it

Architectural shingles — 50 yr $9,940
Synthetic underlayment $1,890 1
RB

Is this better than felt? Our last roof leaked at the valleys.

You · yesterday 8:12p

JD

Much better — it won't wrinkle or absorb water, and we add ice-and-water shield in every valley. Happy to send the spec sheet.

Jordan (Summit) · 7:05a

Reply…
Tear-off, disposal, permits $3,120
Labor and 10 yr workmanship $3,800
Inspection photos (14) Financing from $228/mo
Selected: Better$18,750
Accept and sign

Questions stay attached — signing is never rushed

Operations

W7 — Calendar / scheduling

Crews, appointments, and weather in one set of lanes.

Calendar
Day Week Month Agenda
Crews: all Jul 13–17
Mon 13Tue 14Wed 15Thu 16Fri 17
Crew A
4 techs

Adams reroof

Install · 2 days

Fox gutters

Install

Crew B
3 techs

Kim solar + roof

Install · 3 days · sub: SolarCo

Sales
J. Diaz

Reyes inspect

10:00a

Olsen inspect

9:00a · hail

Brandt signing

2:00p

Unscheduled (3): Garcia reroof Nguyen gutters Olsen build Text homeowner on schedule: on

Operations

W9 — Material ordering

Quote quantities become supplier purchase orders.

Material order — Adams reroof From quote #1038
Send order

Supplier — live pricing

Beacon Pro+Selected

$7,842

Delivery Thu · in stock

ABC Supply

$7,911

Delivery Fri · in stock

QXO

$7,798

1 item backordered

ItemQtyUnitTotal
Arch. shingles — weathered wood96 bdl$42.10$4,042
Synthetic underlayment8 rl$118.00$944
Ridge cap + starter14 bdl$61.20$857
Ice + water, drip edge, fasteners$1,999
Order total · qty from EagleView 28.4 sq + 10% waste$7,842
Deliver: Thu Jul 16, 7–9a Drop: driveway, left side Status updates post to job feed

Operations

W5 — Mobile field app (React Native)

Offline-first for crews on the roof — syncs when signal returns.

9:41 offline

Today

Wed, Jul 15 · 3 stops

JD
6 photos queued — syncs when online
9:00a — Olsen inspectionNow

88 Birch Ln · hail claim

Photos Form
11:30a — Adams install check

Crew on site · deposit paid

2:00p — Brandt follow-up

Quote viewed · collect signature


Today

Boards

Capture

Quotes

More

Operations

W20 — Photo & video upload (project media hub)

Photos and video with visibility controls per audience.

Brandt reroof — Photos & video (17)
Build photo report Upload

Drag photos or video here, or browse

JPG, PNG, HEIC, MP4, MOV · videos up to 2 GB · EXIF time + GPS kept

Uploading (3)

drone-roof-pass.mp4 · 124 MB
62%
IMG_2041.heic · 8 MB Done
IMG_2042.heic · 7 MB Queued
Damage
N slope
Before
Front
After 0:48
Walkthrough
Damage
Annotated

Visibility (selected)

Shared with homeowner
Internal only
Insurance packet

Shared items appear on the customer timeline

Auto-organize

Group by capture time GPS-match to job address Add to photo report draft

Storage

S3 · originals kept · video transcoded for streaming · archived to Glacier on job close

Operations

W25 — Photo damage detection review queue

Vision AI proposes hail hits; the inspector certifies every one.

Damage review — Olsen hail claim 14 detections · 3 need review
Certify & add to insurance packet
hail hit · 96% hail hit · 93% review · 61% review · 54%
IMG_2044 · N slope · confident needs review
Accept detection Adjust box Not damage selected: review · 61%

Claim summary (draft)

Confirmed hits9
Pending review3
Rejected2
Slopes affectedN, W
Storm matchJun 12 · 1.5"

Certification

Inspector J. Diaz certifies each detection. AI output is never sent to an adjuster without human sign-off; the packet records who approved what.

Model

vision v4 · accept rate 87% · feedback → model console

Timelines

W21 — Project timeline, customer perspective

The homeowner's plain-language view of their project.

Your roof project

Summit Roofing · 1428 Maple Ct

On track

Step 3 of 6 · install starts Mon, Jul 20

Proposal signed

Jul 15 · Better option · $18,750 · deposit received

Materials ordered

Jul 15 · shingle color: weathered wood

Material delivery — Thu, Jul 16

Between 7–9a. Please keep the driveway's left side clear; the pallet stays on plywood, not the lawn.

Install days — Mon–Tue, Jul 20–21

Crew arrives ~7a · expect noise 7a–6p · cars out of driveway · pets indoors

Final walkthrough & cleanup

Magnet sweep for nails · you approve before we leave

Final invoice & warranty

Balance $13,750 · pay online · 10-yr workmanship warranty issued

+9
Photos your crew shared
Message us Pay balance

Timelines

W22 — Project timeline, company perspective

The same event log, unfiltered — what the office sees.

Brandt reroof — timeline
All events Customer view
shared homeowner sees internal staff only

Contract

$18,750

Margin (current)

30.1%

Collected

$5,000

Install

Jul 20–21

Jul 16 · 7:40a Material delivery confirmed — Beacon, driveway left shared

Supplier webhook → job feed · homeowner auto-texted

Jul 15 · 6:02p Work order assigned — Crew A, 2 days, tear-off + install internal

Jul 15 · 5:58p Material order sent — Beacon Pro+ · $7,842 internal

Qty from EagleView 28.4 sq + 10% waste · milestone "Materials ordered" published to customer view

Jul 15 · 5:51p Automation run — "post-signing sequence": deposit receipt, delivery SMS scheduled, payment reminder Jul 22 internal

Jul 15 · 5:47p Deposit collected — $5,000 (card) · synced to QuickBooks shared

Jul 15 · 5:45p Proposal signed — Better, $18,750 · e-sign audit trail stored shared

Margin note: discount −$450 approved by admin, 32% → 30.1% internal

Jul 14 · 4:02p Inbound call — tracking # (hail-swath mail) · attribution attached internal

Upcoming Jul 20–21 install · Jul 21 walkthrough shared · Jul 22 payment nudge internal

Rendered from the transactional event log — the customer timeline (W21) is a filtered projection of these same events, so the two views can never disagree

Money

W8 — Invoice & payment flow

Deposits, progress billing, financing — collected in one place.

Invoice #2087 — Adams reroof Partially paid
PDF Text to pay Collect payment

Billed to

Tom Adams · 412 Cedar Dr

Due

Jul 30, 2026

ItemQtyAmount
Architectural shingles — install28.4$9,940
Tear-off and disposal1$3,120
Gutter guards (upgrade)1$1,150
Labor and permits1$4,090
Total$18,300
Paid to date−$5,000
Balance due$13,300

Created from signed quote #1038 — no re-entry

Collect

Card — 2.9%
ACH / eCheck — 1%
Send text-to-pay link
Financing — from $228/mo

Payments

Jul 2 · Deposit · card$5,000
Synced to QuickBooks

Reminders

Payment-chasing automation active — next nudge Jul 22 (text)

Automation & AI

W4 — Automation canvas (React island: React Flow over Oban)

n8n-style flows with approval gates built in.

Quote follow-up sequence Active
Test run Save

Nodes

Trigger
Condition
Wait
Email
Text
Set status
Create task
TriggerQuote sent Wait2 days ConditionQuote viewed? yes no Text homeownerPersonality-matched Create taskRep: call in 24h

Recent runs

Brandt · 2:16p
Kim · 11:03a
Olsen · waiting
Reyes · retrying

This week

142 runs

98% success

Automation & AI

W26 — Inbox triage & reply classification

Replies classified on arrival; opt-outs hit suppression instantly.

Inbox — 23 new AI triage on
All Needs review (3) Interested (6)
Wu, K. — "Yes let's do Thursday morning if the crew…" scheduling · 97% → booked via automation
Pratt, S. — "STOP texting me" opt-out · 99% → suppressed · all channels
Harmon, D. — "Does the 84-month plan have a prepayment…" question · 94% → draft ready (W23)
Unknown # — "my brother said you did his roof, we're at the lake house…" 62% — human queue
Bell, R. — "Not this year, check back in spring" not-now · 91% → nurture Mar 2027

Opt-outs today: 2

Written to suppression instantly — no approval gate on opt-outs, ever. Synced to CRM + data engine.

Last 30 days

Auto-handled78%
Human queue22%
Overrides11% ↑

Automation & AI

W24 — AI nodes in the automation canvas

AI generation and classification inside flows — gated by confidence and a human.

Automation: reply handler Live
Run history + Node

TRIGGER

Reply received

SMS or email

AI · CLASSIFY

Intent + opt-out

local · adapter v12

BRANCH

Confidence ≥ 80%?

else → human task

AI · GENERATE

Reply draft

personality-matched

GATE · REQUIRED

Human approval

before any send

ACTION

Send reply

Branch: opt-out → suppression list (no gate needed — always immediate) Branch: <80% → task for rep

Node config — AI · Classify

Model

Local · Qwen2.5 + adapter v12
Hosted API (via adapter I/F)

Labels

interested · scheduling · question · not-now · opt-out

Confidence threshold

80% · below → human task

Insight

W6 — Reporting dashboard

Pipeline, production, and profit at a glance.

Reports
Last 30 days Export

Revenue won

$284k

▲ 12% vs prior

Close rate

41%

▲ 5 pts

Avg job size

$15.8k

— flat

Outstanding AR

$47k

▲ 3 overdue

Pipeline by stage

Lead$48k
Inspection$36k
Quote sent$61k
Sold$27k
Production$92k

Lead sources

Website / SEO38%
Google Ads24%
Referrals21%
Canvassing11%
Other6%

Attribution via website tracking · consent-permitted data only

Insight

W27 — Ask-your-data analytics

Ask a question, get the chart — with its provenance.

Ask your data local LLM · read-only
cost per signed job for the June hail mail campaign, by week Ask

Cost per signed job — Jun hail mail

Overall: $201 per signed job ($3,410 / 17 signed)

$412
Wk of Jun 16
$247
Jun 23
$168
Jun 30
$121
Jul 7

Falls over time as mail-piece-2 responses convert · suggested follow-up: "compare to Meta ads campaign"

Provenance

Source: campaign_outcomes_weekly (continuous aggregate)

Filter: campaign_id = jun-hail-mail

Measure: spend ÷ jobs_signed

Attribution: tracking # + QR, 90-day window

View generated SQL →

Administration

W10 — Settings & admin

Roles, consent, integrations, audit.

Settings

Company Roles and permissions Price lists Consent and privacy Workflows Integrations Billing Locations API keys

Roles and permissions

Custom role
CapabilityAdmin · $89Sales · $59Field · $29
Edit price lists and margins
Send quotes / apply discounts
Discount below margin floorApproval
Photos, forms, work orders
Edit automations
Price lists
Residential roofing 2026312 items
Gutters and siding148 items
Margin floor28%

Import / export Excel

Consent and tracking
Website snippetInstalled
CMP integrationOsano
Collect analytics cookiesIf consented
Personality profilesOpt-in · 12 mo retention
GDPR / CCPA requestsView queue (2)

Administration

W28 — Model ops & eval console (admin)

The local LLM, measured against its hosted baseline.

Model ops — AI layer Serving healthy
Eval history Queue retune (v13)

Base model

Qwen2.5-14B

Apache 2.0 · adapter v12 (LoRA)

Serving

vLLM · 2× L4

p95 1.9s · 99.7% uptime

GPU cost / mo

$1,140

vs est. hosted API $3,400

Escape hatch

Adapter I/F

hosted API swappable per task

Eval rubric — local v12 vs hosted baseline (held-out set, blind-scored)

Playbook accuracy
8.8 /9.1 Draft usability
9.0 /8.9 Reply classification F1
.94 /.92 Open-ended reasoning
7.1 /9.0

▮ local · | hosted baseline — open-ended gap accepted: no product surface depends on it (tasks are narrow & tuned)

Human feedback (30d)

Composer accept / edit / reject64 / 29 / 7%
Damage detection accept87%
Inbox triage overrides11% ↑

Triage override drift > 10% — retune suggested

Adapter registry

v12 · activeJun 30
v11 · rollback targetJun 2
v13 · training queuepending

Administration

W29 — Model lifecycle & promotion pipeline

Adapters graduate through eval, shadow, and canary — a human signs the promotion.

Model lifecycle — adapter v13 (candidate) stage 2 of 5 · shadow
Training data diff Rollback serving to v11

1 · OFFLINE EVAL

Passed

Rubric ≥ v12 on all four axes · triage F1 .96 (+.02) · held-out set, blind-scored

2 · SHADOW · RUNNING

Day 9 of 14

Runs beside v12 on live traffic, output never shown · agreement 94% · disagreements sampled for review (31 open)

3 · CANARY A/B

Queued

10% of composer traffic via Experiments (W30) · metric: accept rate · auto-stop on reject spike

4 · PROMOTION · GATE

Human sign-off required

Eval + canary results attached · sign-off: ops lead · promotion is logged, attributable, reversible

5 · MONITOR

Post-promote

Accept/override drift watched (W28) · one-click rollback target kept warm (v11)

No stage can be skipped — including for hosted-API swaps via the adapter interface Feedback from W23/W25/W26 becomes v14's training set

Expansion

W18 — Partner lead-routing console

Overflow leads routed to vetted partners — feature-flagged pending legal review.

Partner routing Feature-flagged
Rules Add partner
Legal review pending: referral vs. sale model, state data-broker registration, and provider-data resale restrictions. Routing runs in log-only mode until cleared.

Active rules

Outside service polygon → best partner match Crew capacity > 3 wks booked → overflow partner Trade not offered (solar) → SolarCo
Qualified leadRoute reasonPartner matchConsentStatus
Meier — reroof, Seward Co.Out of territoryRidgeline RoofingReferral OK ✓Held
Dole — gutters + roofCapacity overflowRidgeline RoofingReferral OK ✓Held
Kim — solar add-onTrade not offeredSolarCo (sub)Ask on callLog only

Homeowner consent captured before any hand-off · lineage check blocks records carrying resale-restricted broker fields

Ridgeline Roofing

Seward + York Co. · referral fee 8%

Capacity 40% · 12 leads YTD · 5 signed

SolarCo

Metro · sub-contract model

Capacity 72% · 9 leads YTD · 6 signed

+ New market partner
← Back to spec