Case study 01AI analytics SaaSAustraliaLive since June 2026
BodyShop Pulse
Profit and operations analytics for collision repair shops.

Pulse pulls messy shop-system exports into one financial model, shows 60+ charts, and lets owners ask questions in plain English. ByteNest designed and built it end to end for an Australian partner: data pipeline, database, AI assistant and web app.
- 5,400+repair jobs covered
- A$24M+revenue across five shops
- 60+configurable charts
The brief
Owners see profit per job, not a pile of exports.
Pulse is profit and operations analytics for collision repair shops, one shop or several. It turns shop-system data into job, labour and parts insight. We built all of it: the sync engine, the financial model in Postgres, the Next.js app with per-user dashboards, the Ask Pulse assistant and the Weekly Story report.
Ask Pulse
Talk to the shop's own numbers.
An owner types a question the way they would ask their bookkeeper. Pulse reads that shop's sales, labour and costs and comes back with the answer first, then the chart behind it, what changed since last week and where to look next.
Ask a follow-up and it keeps the context: from the shop-wide result down to the people, costs and jobs behind it. The card here is Pulse's own, running on demo figures.
- How did labour perform last week?
- Which people should I look at first?
- Anything about sales, labour or costs
How did labour perform last week?
Labour billed did not cover labour cost.
The shop billed $16,875 against $17,886 in labour cost. That’s $0.94 billed for every $1 in cost, compared with $1.20 the week before.
Labour billed ÷ labour cost
The change this week
The labour return fell from 1.20x to 0.94x. This week, there was a $1,011 gap between billed labour and labour cost.
Where to look next
Start with the person-level breakdown. Compare billed hours, rates and job allocations to see where the gap sits.
Pops Inner West Smash Repairs · 31 Aug–6 Sep 2026
Condensed example from verified demo figures. Chart guide: 2:1.
60+ live charts
Your dashboards, your way.
Owners build their own pages from more than 60 charts. These seven are a working sample, not pictures: switch the history between 4, 8 and 12 weeks, hover or tap a point for its value, click a legend entry to filter, and add a chart to the page.
Parts sold & profit margin out-of-scope, line by line
Weekly profit by insurer
Labour ROI by person billed ÷ cost, 2:1 target
Average repair cost per job
Billed revenue efficiency matrix per person, per week
Lowest gross-profit jobs
Fourteen sample jobs from the demo shop, ranked from the biggest loss to the healthiest margin and filtered to this range. Swipe sideways on a phone for all cost columns.
2 of these 7 selected in this demo · 60+ to choose from in the app · hover or tap for values · click a legend to filter
System map
How it fits together
- 1Data inMessy exports, one API call per job
- 2One model, locked per tenantPostgres on Supabase, views as the API
- 3An assistant and a weekly storyClaude on Bedrock, in Australia
- 4Three hard partsWhere the real work was
Three hard parts
Where the real work was
Isolation the AI cannot bypass
A shop sees only its data. The assistant's tools run under the user's login, so Postgres enforces that. Rewritten policies took a key view from 6.9 s to 26 ms.
Numbers from SQL, words from the model
A wrong figure in a report costs trust. A validator rejects any number SQL did not produce, then one retry, then a fallback report with no AI.
Data stays in Australia
Shop data stays in the country, even when the AI reads it. Bedrock runs Claude through an in-region inference profile, chosen for Australian data residency.
The Weekly Story
Every week, a report the owner can read.
Home · this week's signals
Pops Harbour Panel & Paint
Week ending 15 Mar 2026
AI SUMMARY
Sales hit $86,115 with a $10,394 net profit, but the shop is paying more for labour than it bills: a red flag that is quietly eating into an otherwise solid week. Repair cost per job also crept up, driven by rising parts spend on in-scope work.
Total salesSales for the week vs target
On trackNet profit $10,394 · Margin 12.1%
Last 8 weeks
Group avg: $87,475 · 3 shops
Total sales came in at $86,115, delivering a net profit of $10,394 at a 12.1% margin: a clean result and up on last week.
Parts margin% margin on out-of-scope (line-by-line) parts
On trackLast 8 weeks
Group avg: 20.5% · 3 shops
Out-of-scope parts margin held at 20.5%: comfortably above the healthy threshold and broadly stable over the past eight weeks.
Cost per jobAvg direct cost per job (excl. wages & overheads)
WatchLast 8 weeks
Group avg: $883 · 3 shops
All-in repair cost per job rose to $885 this week, up $25 on last week, nudging this metric into amber territory.
ROI on peopleBilled labour ÷ what your people cost
Off trackLast 8 weeks
Group avg: 1.05x · 3 shops
Labour ROI sits at 0.96x: the shop billed less for labour than it paid out, which is a red-flag result that needs immediate attention.
Insurer marginGross margin on insurer-paid work
On trackLast 8 weeks
Group avg: 75.1% · 3 shops
Blended insurer profitability came in at 74.8%: a slight dip on last week but still a healthy result across the insurer mix.
Example report · Shop name changed · Group averages compare three shops
Stack
- Supabase
- PostgreSQL
- Row-level security
- pg_cron
- Next.js
- Amazon Bedrock
- Claude
- AWS Sydney
Our role: design and build, end to end.