Unbilled Portfolio
Run the assessment

Missed-billables benchmarking · multi-entity

Rank every location by the billable work it fails to invoice.

Paper work orders drop line items at every location. The console reads them, compares them to invoices, and shows what each location misses per work order, so you know which branches need attention and what fixing them is worth.

What you are buying: a monthly audit across every location you own. Locations forward their paper; you get this console, per-location findings, and re-bill packets. From $3,500 a month, annual, invoiced by ACH.

Portfolio console DEMONSTRATION DATA

Recoverable, trailing 30 days

$554,954

Median recovery per WO

$39.21

Variance band, p10 to p90

$10 to $78

Worst quartile share of leak

49%

#LocationTradevs median
01Little Rock NorthPlumbing523$84.19$44,031
2.1x
02Reno SouthHVAC337$82.93$27,947
2.1x
03Mesa NorthHVAC544$80.12$43,585
2.0x
04Tulsa SouthHVAC454$77.98$35,403
2.0x
05Fort Worth NorthHVAC192$74.45$14,294
1.9x
06Augusta SouthElectrical330$66.33$21,889
1.7x
07Chattanooga NorthPlumbing382$65.11$24,872
1.7x
08Des Moines SouthHVAC343$64.96$22,281
1.7x
09Spokane SouthElectrical365$63.01$22,999
1.6x
10Lubbock SouthPlumbing274$62.51$17,128
1.6x
11Fresno SouthHVAC484$57.23$27,699
1.5x
12Wichita NorthHVAC224$51.86$11,617
1.3x
13Toledo SouthPlumbing362$51.21$18,538
1.3x
14Lubbock NorthSeptic335$49.44$16,562
1.3x
15Norfolk NorthSeptic317$48.94$15,514
1.2x
16Augusta NorthPlumbing191$46.98$8,973
1.2x
17Laredo NorthPlumbing440$43.76$19,254
1.1x
18Laredo SouthHVAC266$42.31$11,254
1.1x
19Reno NorthPlumbing542$42.13$22,834
1.1x
20Toledo NorthHVAC380$39.21$14,900
1.0x
21Fresno NorthPlumbing264$37.95$10,019
1.0x
22Des Moines NorthHVAC147$35.57$5,229
0.9x
23Omaha NorthPlumbing469$30.03$14,084
0.8x
24Modesto NorthHVAC477$28.36$13,528
0.7x
25Tulsa NorthElectrical261$26.37$6,883
0.7x
26Boise NorthSeptic149$25.73$3,834
0.7x
27Spokane NorthSeptic273$22.08$6,028
0.6x
28Chattanooga SouthPlumbing288$21.55$6,206
0.5x
29Boise SouthElectrical472$18.98$8,959
0.5x
30Modesto SouthHVAC278$16.45$4,573
0.4x
31Fort Worth SouthPlumbing328$15.61$5,120
0.4x
32Peoria SouthHVAC199$14.88$2,961
0.4x
33Little Rock SouthElectrical161$14.33$2,307
0.4x
34Peoria NorthSeptic422$12.63$5,330
0.3x
35Omaha SouthElectrical410$12.13$4,973
0.3x
36Mesa SouthPlumbing524$10.31$5,402
0.3x
37Dayton NorthSeptic172$10.06$1,730
0.3x
38Wichita SouthHVAC254$9.44$2,398
0.2x
39Dayton SouthSeptic252$9.12$2,298
0.2x
40Norfolk SouthPlumbing167$9.09$1,518
0.2x
40 locations · sorted by recovery per WO · color marks leak quartile: worst, watch, at or below median demo dataset v3, fixed seed

Every figure above is generated demonstration data and stays labelled that way. Your console is built from your own work orders during onboarding.

Why we compare locations instead of totals

Some loss is priced into every service business, so a portfolio total does not tell you much on its own. The spread does. In the demonstration data above, the worst location misses about four times more per work order than the median one. In practice a gap like that usually comes down to paperwork habits at one branch, which makes it fixable.

When a branch manager sees their own number next to the portfolio median, the number starts to move. Most customers end up folding it into their monthly operating review.

IF EVERY LOCATION MATCHED YOUR MEDIAN

Bringing every location to the median would be worth about $96k a year in the demonstration portfolio. Half of that sits in nine locations.

WHAT WE REPORT

Recovery per work order, by location and technician. Every figure carries a confidence interval and the sample size behind it.

WHAT WE DO NOT REPORT

Work that was never written down, and collections outcomes. The audit ends at the re-bill packet; your AR team owns the follow-through.

Built for parent companies and operating entities

In most roll-ups the management company pays the bills and the operating entities do the work. The account model keeps those two separate, the same way your accountants do.

Parent and child organizations

Every operating entity is its own tenant with its own intake address and price book. The parent org reads across all of them; children never read each other. Row-level security enforces this inside the database, and the cross-tenant test attempts the forbidden read in CI.

Billing separated from consumption

The management company holds the Stripe relationship and the annual invoice, paid by ACH. Locations onboard and upload without ever touching billing. Adding an acquisition is a new child org, not a new contract.

Rollups without re-keying

Per-location findings aggregate to portfolio views: recovery per WO, acceptance rate, exception depth. Exports are plain CSV with stable column names, ready for whatever your analysts already use.

How the benchmarks work

Locations are compared within trade and ticket band, never across them. A septic branch and a garage-door branch miss different things, and comparing them directly would produce rankings that do not mean much.

Benchmarks publish with a confidence interval and the sample size behind them. A location with three weeks of history shows wide intervals and a "young data" flag rather than a false rank. Intervals narrow as history accrues; typically four to six weeks of paper before quartile assignments stabilize.

RECOVERY PER WORK ORDER, HVAC, $300 TO $700 TICKET BAND

p10
$11.20
median
$29.40
p90
$61.10
worst
$83.75

Demonstration distribution. 90% CI on the median: $26.10 to $33.00, n = 14 locations.

Security and multi-entity access control

The details your security review will ask for, in one place.

Isolation

Per-tenant row-level security in Postgres (Supabase), US region. Parent orgs hold read-across scope; sibling entities are invisible to each other. The forbidden cross-tenant read is a standing automated test.

Access

Sign-in is by emailed link only; there are no passwords to steal. Roles: portfolio reader, entity operator, admin. Admin surfaces sit behind Cloudflare Access with hardware keys. Every consequential action lands in an append-only audit log.

Data lifecycle

TLS in transit, AES-256 at rest. Source documents delete after 90 days by default, configurable per entity. Deletion requests complete inside 30 days and cascade through storage. We are not yet SOC 2 certified and will not imply otherwise; the audit is scheduled.

Subprocessors: Cloudflare, Supabase, Anthropic, Stripe, Resend. The list, plus sample MSA and DPA, downloads from the diligence page without a sales conversation.

Portfolio pricing

Annual agreement, invoiced to the management company, paid by ACH. Pricing scales with locations and work-order volume rather than seats, so you can give read access to anyone who needs it.

The assessment produces a portfolio-specific estimate and a scope worksheet. The figure below is the actual starting price.

Portfolio

from $3,500 /month, annual
  • 5 to 60 locations under one parent org
  • Per-location rollups, technician detail, exception queue
  • Trade and ticket-band benchmarking with confidence intervals
  • Billing entity separated from operating entities
  • Quarterly methodology review with your operating partners
Run the four-step assessment

Portfolio assessment

Four steps, about two minutes. You get an estimate with a range and a link you can send to your partners. No email required to see the number.

1 STRUCTURE
2 TRADES
3 VOLUME
4 CAPTURE

How is the portfolio structured?

Operating entities under the parent. Estimates only; nothing here commits you.