PFP Deficiency Analysis
Enter the password to view the proposal.
Performance Fire Protection · ServiceTrade · 2023–2026 YTD
4,907 deficiencies.
Never quoted.
Sitting open right now.
Every deficiency logged but never quoted is revenue that disappears. 4,806 are genuinely unquoted — 2,865 of them on jobs where nothing was followed up at all. The miss rate has climbed steadily — reaching 35% in 2026 YTD.
35%
2026 YTD miss rate
$6–9M
unquoted pipeline est.
4,907
genuinely unquoted
2023
14%
518 unquoted
2024
21%
1,321 unquoted
2025
30%
2,240 unquoted
2026 YTD
35%
828 unquoted YTD
2023
14%518
2024
21%1,321
2025
30%2,240
2026 YTD
35%828
2,865
Pure misses — 60%
The inspection job had zero deficiencies quoted at all. Inspector found problems, nobody followed up. No ambiguity — these are dropped.
1,941
Same job had quoted deficiencies — 40%
Other deficiencies from the same inspection were quoted. These may have been intentionally bundled, deferred, or skipped — there's a legitimate reason for some of them.
2,865
Conservative target for RelicAI
Even if we only focus on the pure misses and ignore everything ambiguous, the opportunity is still $1.5–3M in unquoted pipeline annually.
Fire Pump stands out: 314 pure misses (79% of all unquoted fire pump deficiencies) — the highest pure-miss rate of any service line. A fire pump that overheats and can't complete its test run sitting unquoted for 55+ days is a liability, not a scheduling oversight.
Severity classification note: All 6 are logged as deficient in ServiceTrade — but 3 of them are arguably inoperable based on what the tech described. Severity is set in the field by the tech and is inconsistently applied, meaning the 173 officially inoperable unquoted deficiencies is likely an undercount of true urgency.
⚠ Likely inoperable
Fire PumpLogged: deficient
Alignment coupling screaming and pump squirting water everywhere — unable to complete the required 10-min run. Pump cannot perform its function. 62 days, no quote.
⚠ Likely inoperable
Fire PumpLogged: deficient
Fire pump overheats after ~5 mins of churn and cannot complete test. Pump house open to elements with roof leaks and standing water on the floor. 55 days, no quote.
⚠ Likely inoperable
Dry SprinklerLogged: deficient
Quick opening device (4th South) is out of service and could not be restored at time of inspection. Dry system cannot respond as designed. 44 days, no quote.
Wet SprinklerDeficient
1-1/4" drain piping leaks extensively at main drain above ceiling during testing. Active leak — needs repair before next inspection cycle.
SprinklerDeficient
1.5" close nipple before backflow extremely corroded and actively leaking. Recommend replacing PVC-to-steel nipple before failure.
SprinklerDeficient
Missing hydraulic data plates on wet system. Recommend contacting original installing contractor per NFPA 25 requirements.
ServiceTrade · ComputerEase
The numbers, in full.
11,144 deficiencies matched to quotes. Every figure pulled live — not estimated.
10d
Median days to quote — typical job turnaround
4–7d
Mode — most common window, 2,335 quotes (21%)
43%
43% quoted within 7 days of deficiency logged
771
Took over 6 months — effectively dead pipeline
Close rate & avg ticket size — by days from deficiency to quote
Speed bucket Quotes sent Accepted Still open Lost Close rate Median ticket Avg ticket Total accepted $
0 — same day 862 468 296 14 60.2% $2,613 $12,791 $2.8M
1–3 days 1,991 1,125 663 116 59.1% $2,407 $6,306 $5.6M
4–7 days mode 2,632 1,238 1,219 33 49.7% $2,410 $5,344 $4.7M
8–14 days 2,293 1,020 1,011 57 48.9% $2,418 $5,835 $4.0M
15–30 days 1,771 915 598 61 58.1% $2,617 $5,849 $3.3M
31–60 days 1,280 483 590 34 43.6% ▼ $4,089 $14,861 ↑ $2.1M
61–90 days 553 234 210 48 47.6% ▼ $2,135 $4,972 $620K
91–365 days 990 474 327 52 55.6% $2,369 $5,246 $2.3M
All quoted 12,372 5,957 4,904 405 54.7% overall $2,500 $7,176 $25.5M
The 31–60 day bucket is the most dangerous: worst close rate (43.6%) combined with the highest avg ticket ($14,861) — big jobs taking a month to quote and then falling apart. Median ticket is consistent across all buckets ($2,100–$4,100), meaning avg is skewed by a handful of large jobs at every speed. The "still open" column in the 4–14 day buckets is large — those quotes are aging in the pipeline right now and becoming the next cliff-off cohort.
Time to quote — distribution (11,144 deficiencies)
Same day
717 6.4%
1–3 days
1,752 15.7%
4–7 days
2,335 21% mode
8–14 days
1,907 17.1%
15–30 days
1,671 15.0%
31–60 days
1,037 9.3%
61–90 days
463 4.2%
91–180 days
491 4.4%
180+ days
771 6.9%
Median 10 days · mode 4–7 days · mean 43.5d (skewed by a long tail of 771 quotes that took 6+ months). Anything past 30 days sees a meaningful drop in close rate.
Coverage — all 23,155 deficiencies
9,698
Fixed without quote
42% · field-resolved
5,865
Formally quoted
25% · captured revenue
4,907
Genuinely unquoted
21% · the real gap
2,685
Reviewed & dismissed
12% · dupes, parent-child entries
Inoperable severity — the highest-urgency tier
478
Total inoperable
173
Unquoted · 44% miss rate
397d
Avg age, unquoted inoperable
44%
Miss rate vs 24% deficient
Inoperable backflow and fire hydrants sitting unquoted for 397 days on average is a liability conversation, not just a revenue one.
The solution
The inspection is done.
The quote should be too.
RelicAI reads every deficiency the moment it's logged and drafts a quote from your real pricing catalog — ready for your team to review and send the same day. The data shows same-day quotes close at 60%. That's the opportunity.
Arbor Steele Creek · Charlotte
0 days old
Severity / service line
Deficient  Sprinkler
What the tech found
6 broken water gauges throughout the property — completely maxed out or over 200 PSI. Each gauge is over 5 years old and due for replacement per NFPA 25. See attachments for damaged gauges.
Proposed fix
Replace 6 water gauges exceeding 200 PSI / over 5 years old. Conduct 5-year sprinkler inspection per NFPA 25.
Resolution / status
new / deficient — never quoted
Quote for Inspection Repair at Arbor Steele Creek
Draft ready for review·Sprinkler · Charlotte
Replace (6) water pressure gauges exceeding 200 PSI / over 5 years old per NFPA 25 requirements.
ItemQtyCostUnit priceMarkupTotal
Gauges (water pressure) $20.69$30.0045% $180.00
Service Crew Labor $75.00$178.00137% $267.00
Report Submittal Fee $30.00$30.00 $30.00
Subtotal $477.00
This quote details corrective measures for deficiencies found in the previous NFPA 25 inspection report. Open backflow / 3-yr / 5-yr items will be submitted on a separate quote.
RelicAI reasoning
88% confidence
Extracted quantity: 6 gauges (explicit count in description). Catalog match: Gauges at $30.00/unit — 1,363 prior uses, 45% markup over $20.69 cost. Labor = 0.25 hrs/gauge × 6 = 1.5 hrs SCL.
3 comparable Charlotte gauge quotes (Apr 2026): Ballantyne Village $687 · Villas at Vineyard $543 · Ballantyne Tower $1,670 (12 gauges). This job prices to ~$638 — within comp range.
Materials markup auto-applied at 45% per current price book — consistent on every agent-generated quote. Draft ready for human review before sending.
Carolinas Collision Center · Charlotte
Sprinkler5 days to quote$895.95 accepted
OS&Y control valves not locked — 4 valves. Add locks and chains per NFPA 25.
ItemQtyCostSellMarkupTotal
Service Crew Labor3.0$75$185147%$555
Chain (security)5.0$15$45.84206%$229
BRS Break Lock Shackle5.0$11.65$16.5542%$83
Bank of America Corp. Center · Charlotte
Sprinkler1 day to quote$853.71 accepted
2" drain piping on M1 level leaks during main drain test. Replace ~5ft pipe and (2) slip fittings.
ItemQtyCostSellMarkupTotal
After Hours Crew Labor2.0$75$267256%$534
2" BLK SCH 40 pipe21.0$7.42$10.7645%$226
Union 2"1.0$35$50.7545%$51
Hendrick Toyota of Concord
Backflow25 days to quote$538.06 accepted
Test connection #3 leaks and won't seal. Replace 1/4" test connection on domestic backflow.
ItemQtyCostSellMarkupTotal
Service Crew Labor2.0$75$185147%$370
Wilkins 1" Shutoff Valve1.0$99.90$144.8645%$145
1/4" Test Cock1.0$16$23.2045%$23
Lincoln at Dilworth · Charlotte
SprinklerSame day$709.00 accepted
Insulation overspray on (2) brass upright heads — Elevator lobbies P3. Clean or replace per inspection report.
ItemQtyCostSellMarkupTotal
Service Crew Labor4.0$75$170127%$680
Sprinkler Head2.0$10$14.5045%$29
Revenue opportunity · three scenarios
What's the opportunity worth?
The core thesis is simple: quotes sent same-day close at 60% vs. 43% for quotes that take 31–60 days. RelicAI converts deficiencies to quotes on the day they're logged — that speed advantage compounds across every scenario below.
60%
same-day close rate
43%
31–60 day close rate
Every deficiency RelicAI drafts is ready for review the same day it's logged — enabling your team to send quotes same-day and lock in the higher close rate. Currently deficiencies age into the 31–60 day bucket where close rate falls 17 points. That leakage disappears when quotes go out same day.
Low
$600K
incremental annual revenue
What has to be true
Agent converts 50% of 2,335 missed deficiencies — easier, well-described jobs only
Close rate improves to 58% — modest same-day uplift, customers take time to approve smaller jobs
Avg ticket $1,000 — routine small jobs, simpler backlog only
Miss rate falls from 35% to ~18% — agent supplements the current process
Mid — most likely
$1.5M
incremental annual revenue
What has to be true
Agent converts 80% of missed deficiencies — skips true dupes and edge cases only
Close rate improves to 60% — same-day quotes hit this in the data; drafts ready same-day means your team can send same-day
Avg ticket $1,301 — real median from 1,987 accepted quotes in ServiceTrade
Miss rate falls from 35% to ~7% — agent handles the bulk of the backlog
High
$3M
incremental annual revenue
What has to be true
Agent converts 95% of missed deficiencies — near-complete coverage, primary quoting engine
Close rate reaches 65% — same-day quoting on all deficiencies, customers respond faster when issues are fresh
Avg ticket $1,700 — agent surfaces larger aged backlog jobs alongside routine repairs
Miss rate drops to near zero — virtually all deficiencies get quoted the day they're logged
What actually drives the range
Same-day close rate — the core thesis
This isn't an assumption — it's in the data. Same-day quotes close at 60%. Quotes that age to 31–60 days close at 43%. RelicAI quotes same-day by design. Every scenario above uses a close rate at or above 58%, because the data says that's what happens when you move fast.
Coverage — the volume lever
4,907 deficiencies are unquoted today. The question is how many have enough detail for the agent to price confidently. 80% is realistic — the other 20% are dupes, parent-child entries, and edge cases where human judgment is still needed.
Ticket size — anchored to actuals
Median accepted quote is $1,301. Mean is $2,555 but pulled up by a handful of large jobs. The mid case anchors to median — it's the most defensible number. The high case uses $1,700, a reasonable midpoint if the agent surfaces more of the larger aged backlog jobs.
Close rate data from 12,372 matched deficiency quotes in ServiceTrade — same-day 60.2%, 31–60 day 43.6%. Ticket data from 1,987 accepted deficiency repair quotes. Annualized unquoted count based on 2025 actuals (2,335 never-quoted).
What talks to what
Architecture · end-to-end
Everything below runs inside Aspyre's infrastructure except the outbound call to Claude (amber, right).
RelicAI deficiency quoting architecture — Aspyre Fire pilot flow
What we're building the agent to do
Six jobs, one output — a ServiceTrade draft quote.
The agent runs per deficiency, stateless, event-driven. Each run produces a ServiceTrade draft quote with a confidence score attached. Office reviewers open the draft natively in ServiceTrade — no second UI, no second login. The six jobs below are the sub-capabilities the "Agent worker" row in the roadmap is actually delivering week by week.
1
Extract structured items
Parse the deficiency description. Pull out component, quantity, location, condition. Handle vague write-ups by dropping confidence — never invent details that aren't in the source text.
2
Match against the price book
Look up each item in Aspyre's price book (source of truth maintained by Aspyre). Apply current markup policy. If an item isn't in the book, flag for manual pricing — never invent a SKU.
3
Estimate labor
Apply labor-time heuristics learned from 1,987 historical accepted quotes. Distinguish standard vs. after-hours crew. Round to Aspyre's standard labor increments.
4
Scope language from NFPA
Reference the NFPA code library (Aspyre-provided) to write scope text that cites the correct standard — e.g., "Replace (6) water gauges exceeding 200 PSI per NFPA 25."
5
Validate against comparable quotes
Compare the draft to recent accepted quotes for the same service line in the same metro. Flag outliers — too high or too low — before a reviewer ever sees the draft.
6
Write the draft back for review
Produce a structured draft ready for office review. Current plan is a native ServiceTrade draft quote — if the workflow calls for something different, we'll build a small custom review surface instead. Decision in W2.
8-week pilot · workstreams
Roadmap to go-live
Kickoff Apr 28 · Pilot sends begin May 19 · Go live Jun 16. Owners named per workstream.
Workstream · Owner
W1
Apr 28
W2
May 5
W3
May 12
W4
May 19
W5
May 26
W6
Jun 2
W7
Jun 9
W8
Jun 16
Milestones
Kickoff
Pilot starts
Go live
Price book + NFPAAspyre
Price book v1 · NFPA access
Agent workerDrew
Extract + catalog match
Labor + NFPA scope
Comps + confidence · tune
Production hardening
ST integration + reviewer surfaceRyan
API validation · UI decision
Writeback + UI shell
First sends
Reliability · retries
Eval harnessDrew
Label 50 cases
Nightly runs · regression gate
Backlog resurfaceRyan
Aged deficiencies through agent · ~4,907
Pilot operationsAspyre
Kickoff
Monday readouts · feedback loop
Change mgmt + onboardingAspyre + Geoff
Training + reviewer onboarding
Office hours · docs · adoption tracking
Visit tripOptional
2–3 days on-site
Build
Ongoing / maintain
Operate · pilot
First real sends
Hardening
Dependency / optional
Milestone
Pilot success metrics
How we'll measure the pilot
Two committed KPIs tied to hard baselines from the ServiceTrade data, plus a rollout-quality metric we'll calibrate in the first two weeks of real use.
1
Speed to quote
Trailing 3-month avg
Both sub-metrics matter
1a
% quoted within 3 days
Baseline
20.8%
Target
≥ 40%
RelicAI quotes same-day by design — even if reviewers take a day to approve, this should roughly double. 40% is aggressive, but achievable once the agent is handling a meaningful share of volume.
1b
% quoted same-day
Baseline
4.8%
Target
≥ 15%
The purest signal the agent is drafting and humans are approving quickly. 1 in 7 quotes — conservative in the short term, but proves the tool is working and promises scale.
2
Unquoted miss rate
Trailing 3-month avg
excl. current month
Baseline
~28–30%
Target
≤ 20%
A 33% reduction in miss rate. Still the right target — every deficiency that gets quoted is revenue that would otherwise disappear.
3
Manual-edit rate on agent drafts
New metric
Baseline set in-flight
What we measure: the percentage of agent-generated drafts a reviewer changes before send. Aspyre doesn't track this today, so there is no pre-pilot reference — but we'll calibrate a real baseline in the first two weeks of production use and measure the trend from there.
W4–5 · from May 19
Establish baseline
First two weeks of pilot sends. Reviewers editing freely while they calibrate trust in the agent. Expected to start high — that's the honest starting point.
W6–7 · from Jun 2
Feedback loop
Every edit feeds tuning — price book entries, scope language, labor heuristics. Office hours surface the patterns; the agent improves weekly.
W8 · Jun 16 · Go live
≥ 20% relative reduction
Target: cut the W4–5 edit rate by 20% — and continue the downward slope post-pilot as the go-forward health metric.
Why calibrated, not absolute: since Aspyre doesn't currently track manual edits, any fixed number we commit to upfront would be a guess. Setting the baseline in-flight gives us a real reference, and it ties directly into the Office hours · docs · adoption tracking workstream — every edit is data that makes the next quote better.