Raydar Collision Group · ImEx data validation

We ran your
assumptions
against your data.

Allan's schema landed on Monday. Rather than take it at face value, we pointed it at the real Mission export from 18 June and tested every working assumption in your June notes against what the file actually contains.

Most of what you mapped out holds up. On every ICBC rate we could check, your shop bills exactly right. And the file is considerably richer than either of us expected. It carries technician-level productivity, true parts and materials margin per job, and a vendor delay trail, none of which was in the plan. All of that came out of one night, at one shop, from a file that already exists.

There are fourteen shops, and it arrives every night.

What follows is the homework behind that. No proposal and no pricing, just what is genuinely in the file and how we know. Section 01 is what it makes possible.

What this was built from
Source file
IM_850001_18062026
Mission, night of 18 June 2026
Schema
Allan Carr, ImEx
Received 27 July, forwarded 28 July
Scope
56 repair orders
1,722 detail lines, 35 labour lines
Prepared
29 July 2026
VELOXA AI for Brad Green
01
Why this matters

What this opens up

Everything below this section is evidence. This is what the evidence adds up to. None of it is a proposal. It is what the file has already been shown to support.

Ask the whole fleet a question and get an answer in seconds

Every job, every line, every night, in one place you can interrogate in plain English. The four questions you wrote out in June are the easy ones.
Proven by198 element paths and 759 distinct line descriptions mapped, with three independent parsers in agreement

Every line checked against ICBC's published rates, automatically

We did it by hand today and found an hourly rate table sitting one ICBC increase behind, plus one line at fourteen times the permitted rate. Run nightly, a rate change gets caught the day it lands rather than the quarter after.
Proven byThe rate cross-reference in section 04: four flat fees matched to the cent, four hourly rates short by exactly 2%

Every file verifies itself before anyone reads a number off it

A corrupt or partial delivery announces itself instead of quietly poisoning a week of reporting. Nobody has to wonder whether the number in front of them is real.
Proven byDetail lines plus labour plus tax equals gross, on 56 of 56 records, zero mismatches

True margin on parts and materials, per job

OEM, aftermarket and recycled parts, plus paint and body materials, each carry a real cost against the billed figure. Labour cost is a separate question that hinges on one answer from you, covered in section 06.
Proven byPaired cost totals populated and credible on parts and materials across all 56 records

See exactly which jobs are generating the rework

Not a rate across the group. The specific jobs. Four of them carried 65 of the 80 supplement lines in a single night at a single shop.
Proven bySupplement concentration measured in section 07, no history required

Technician productivity by discipline, by job

Names, flag hours and labour cost split nine ways are already in the feed. Body, refinish, structural, aluminum, glass and the rest, per technician, per repair order.
Proven by35 labour lines carrying real technician data, pending your answer on actual hours

Know which vendors are costing you days

Order date and received date at the part-number level, with the vendor named. Computable from the file we already hold, before anything else gets built.
Proven byStructured procurement trail on 300 lines across 40 repair orders
Sample
One night
Locations
One shop
Repair orders
56
Detail lines
1,722

Every capability above was proved from that. The pipeline runs on fourteen shops, every night, and gets sharper every week it runs.

02
The short version

What we found

Eight things worth two minutes. Everything below is traceable to a specific line in the file, and most of it you can check yourself in ImEx.

1
Mission is billing every ICBC flat fee correctly. The hourly rates are a separate story.

We pulled ICBC's published Collision Repair Program schedule and cross-referenced it line by line. Repair planning and documentation at $50.00, four-wheel alignment at $147.00, two-wheel at $105.84. All three match the published rate exactly, and that is worth saying first. One line sits outside its rate and it is in section 07. The hourly labour rates do not match, and they look like an easy fix worth real money. Section 08 has it.

2
Your ICBC hourly rates are one increase behind. That is real money.

ICBC raised Collision Repair Program hourly rates for any repair with a car-in date of 1 April 2026 or later, and the schedule requires participants to re-apply the estimate profile to receive them. Mission is billing body and refinish at $89.46 against a published $91.25, and frame and mechanical are short by the same margin. All four sit at exactly 98.04% of published, which is a 2% increase that has not been applied. All 33 jobs in this file with a car-in date qualified. On the labour already booked here that is about $2,050, and it is a settings change rather than a process change.

3
The part-type codes are now decoded and reconciled.

Each code was proved by summing it and matching it against the totals block on every single repair order. Six codes, 56 of 56 records, zero mismatches. Four of them behave differently than the June working notes assumed, and one of them was not in the notes at all.

4
Your real parts count is 344, not 1,722.

Of the 1,722 detail lines, only 344 are purchased parts. The largest single group, 714 lines under PAE, carries $0.00 on every one. Any parts margin calculated across all 1,722 lines understates itself by roughly five times.

5
The file reconciles exactly, and we now have the formula.

Detail lines plus the nine labour buckets plus sales tax equals the gross total. On all 56 records, to the cent. That means any future file can be integrity-checked automatically the moment it arrives.

6
Supplements are concentrated, not spread.

80 supplement lines confirmed, exactly as your notes said. But they sit on 12 jobs, not 56, and four jobs carry 65 of the 80. That is a specific, findable pattern in a single night of data.

7
Thirty-seven percent of the money has no line-level detail.

Labour totals $105,603.12 across the file and exists only as nine buckets per repair order. There is no per-operation labour line. Anything built on line items alone is describing under two thirds of the job.

8
EI is definitively an insurance carrier, with its own rate table.

Policy numbers, peril codes on the claim references, real repair work, and body labour billed at $96.48 against $89.46 on the ICBC jobs that carry body labour. Your question about EI was the right one to ask. We can now narrow it: it is an insurer, and only the name is still open.

03
The working

How we did it

Five agents, working the same file in parallel, each with one job. One of them was built specifically to disagree with the other four.

Agents
5
Four finding, one independently verifying
Parsing methods
3
Deliberately different, so one bug cannot spread
Cross-checked counts
12 / 12
Every hard count agreed across all three methods
External source
ICBC schedule
Pulled live and cross-referenced line by line

Why five and not one

A single pass produces a confident answer with no way to tell whether it is right. So the four finding agents never saw each other's work, and a fifth built a neutral structural inventory using a completely separate parsing library and command-line tooling.

Where all of them independently landed on the same number, the number is solid. Where they would have disagreed, we would have known before anything reached this page. On the twelve hard counts, they agreed exactly.

What we deliberately did not do

We did not let the agents choose their own definitions. Deciding what counts as an ADAS part, or which suspension components mandate an alignment, is a judgement call, and a machine that picks its own definition produces a number that looks authoritative and means nothing.

So every agent had to return the actual repair order numbers and the raw line text it matched on, not just a total. That is why the findings below quote your own descriptions back to you.

04
Checked against ICBC's own schedule

What held up, and the one thing that did not

Several figures from your June notes reproduce exactly, and on the three billing questions the shop comes out clean. Every flat fee matches the published rate. The hourly rate table is the exception, and it is the most valuable single thing in this report.

ItemICBC published rateWhat Mission billsResult
Repair planning & documentation$50.00$50.00 on 42 of 43 linesCorrect
Four-wheel alignment$147.00$147.00, flat, all 11 linesCorrect
Two-wheel alignment$105.84$105.84Correct
Total loss handling$100.00$105.00 gross on RO 30051Correct, plus GST
Hourly rates, car-in 1 April 2026 or later
Body$91.25$89.46Short $1.79/hr
Refinish$91.25$89.46Short $1.79/hr
Frame$104.32$102.27Short $2.05/hr
Mechanical$117.35$115.05Short $2.30/hr
The rate table is one increase behind

ICBC's published schedule states that the current hourly rates apply to any repair with a car-in date of 1 April 2026 or later, and that "participants must re-apply the estimate profile to receive the new rates for vehicle repairs in progress." A second trigger took effect 1 July for newly written estimates.

Every ICBC job in this file carries the same four rates, and all four sit at exactly 98.04% of published. Multiply Mission's rates by 1.02 and you land on ICBC's published figures to the cent. That is the signature of a two percent increase that has not been applied, rather than a tier or a negotiated table. Mission is not on the 95% Development Rate either.

All 33 repair orders here with a car-in date fall after 1 April, so every one of them qualified. On the labour already booked across these 56 jobs the gap is roughly $2,050. We have not multiplied that by 14 shops or by a year, because one night cannot support that and you would be right not to trust it if we had. What we can say is that it is a profile setting, not a habit, and it is the fastest money on this page.

You can check this one in about a minute
Any ICBC repair order in the file

Open the estimate profile behind any current ICBC job and read the body rate. If it says $89.46, the profile has not been re-applied since ICBC's increase. If it says $91.25, this export predates the change at your end and you can tell us to drop it.

ADAS calibrations missing
0
On camera, radar and blind-spot parts. All three such jobs already carry a calibration. On a wider reading six jobs are worth a look, see section 09
Repair planning missing
0
Across all 35 ICBC jobs over $2,500
Alignments missing
0
Both jobs with suspension parts bill a four-wheel alignment
Your WIP figure
$285,244.48
Your notes said $285K. Confirmed
Supplement lines
80
Your notes said 80. Exact
Repair orders
56
Confirmed by three independent parsers
Worth stating plainly

The billing discipline at Mission looks genuinely solid. On every flat fee we could check against ICBC's own published schedule, the shop bills exactly right. That is not a small thing, and it changes where the opportunity actually sits.

The one exception is the hourly rate table, which appears to be sitting one ICBC increase behind. That is not a discipline problem, it is a profile that needs re-applying, and it is the first item in section 08.

05
The most useful thing in this report

The decoded key

Your June notes made a first pass at the type codes with no schema and no way to test them. We tested each one by summing it and matching it against the totals block on every repair order. Here is the confirmed key.

CodeLinesValueReconciles toWhat it actually is
PAE714$0.00Nothing Estimate operation lines. Not parts. All 714 carry zero dollars. Top descriptions are TINT COLOUR, ICBC POST REPAIR SCAN, FEATHER PRIME & BLOCK. Where one is named like a part, the priced part is a separate line on the same job.
PAN163$49,462.23PartsOEM OEM parts, one bucket. 125 of 163 vendors are franchised dealerships. ImEx does not split dealer from non-dealer, so there is only the one category.
PAA172$43,882.73PartsAM Aftermarket. As expected.
PAS122$11,393.80SubletTotal Sublet. As expected. This is where alignments and repair planning live.
PAL9$7,259.53PartsRecycled Recycled and salvage. Vendors are Pro Auto Recyclers and Reid's Autowrecking, descriptions are salvage assemblies.
(blank)542$37,009.41PM + BM + Misc Paint materials, body materials, miscellaneous. This sixth category has no code at all. Anything that filters on the five named codes silently drops 542 lines and $37,009.41.
You can check this one yourself in about thirty seconds
Repair order 29953

Pull it up in ImEx. You will find Rear Bumper Cover listed twice. Once as a PAE line at $0.00, which is the operation, and once as a PAN line at $1,085.90 carrying part number 85018-6TL2D, which is the actual part. That pattern is why PAE cannot be dealer parts.

The reconciliation formula, now proved

$149,007.70 in detail lines, plus $105,603.12 in labour, plus $30,633.66 in sales tax, equals $285,244.48 gross. On 56 of 56 repair orders, zero mismatches. Every future nightly file can be checked against this the moment it lands, which means a corrupt or incomplete delivery announces itself instead of quietly poisoning a report.

06
Being straight about scope

What one night cannot show

Three of the revenue rules came back at zero here. The useful part is not the zero itself, it is what your own figures say a sample this size was ever going to show.

Your three revenue rules, run against one night

We built all three of your rules and ran them: ADAS calibration, repair planning, and alignment. They executed cleanly and returned named repair orders rather than totals, which is the first thing worth knowing. The logic works. None of the three found an instance at Mission on 18 June.

Before reading anything into that, it is worth running the arithmetic on your own figures. $54,600 a year at $350 a calibration is three occurrences a week across the whole network, which is one every 33 shop-nights. The alignment estimate works out to roughly the same. Put all three rules together and your own numbers predict about two or three flags a night across 14 shops, which at a single location is one flag every six nights.

We looked at one shop for one night. Finding nothing is the single most likely outcome even if every one of your estimates is exactly right. On your own figures there was roughly a one in six chance this sample would surface anything at all.

So this is not a mark against the case. It is a measurement of how small the window is. A once-a-month-per-shop event is invisible to a snapshot and unmissable to a system reading all 14 shops every night, which is precisely the difference the pipeline makes.

What the sample does support

Repair planning is the one rule with a real base behind it. 35 ICBC jobs over $2,500 were in scope and all 35 carried the charge. That is a genuine full capture rate on the exact population your rule targets, and it is the strongest single result in the file.

Where a repair planning line is genuinely absent, nine of eleven cases are estimates or scheduled jobs with no car in the shop yet. The charge does not exist because the work has not started. That is correct behaviour, not a miss.

ADAS and alignment are thinner. Only three jobs in the file carry a camera, radar or blind-spot part and only two carry a suspension part. All of them are billed correctly, which is good news as far as it goes, but three jobs and two jobs are not yet a measurement.

The honest limit

56 jobs from one night at one shop cannot answer "how much are we leaving on the table." It is not a big enough base, and it mixes open work in progress with recently closed files.

The alignment question makes this concrete. Only two repair orders in the entire file carry a suspension part, and neither is closed. There is simply no evidence here about closed jobs that were never billed, which is the only version of that question that costs money.

A snapshot can tell you what is true tonight. It structurally cannot tell you what is true across 14 shops over a quarter.

Three figures worth restating

The June notes used $66 as the ICBC repair planning rate. ICBC's published Collision Repair Program schedule lists it at $50, applicable to all repairable claims, and that is exactly what Mission bills on 42 of 43 lines.

The $285,244.48 total includes 13 closed jobs and 20 that have not started, so cars actually in the shop and not yet closed comes to $175,322.31 across 23 repair orders.

And the 80 supplement lines sit on 12 repair orders rather than being spread across all 56.

One more limit, found while checking the cost fields

A cost field sits beside every billed total in the schema, and on parts and materials it is real: OEM, aftermarket, recycled, paint and body materials all carry a credible cost. Labour cost is very nearly empty. Body labour shows $6,008.60 of cost against $70,022.06 billed. Mechanical, frame and miscellaneous labour show none at all. No repair order in the file carries a cost on every category it billed, and across the export 46% of billed dollars have no cost behind them.

So parts and materials margin is available per job today. Whole-job profit is not. It is very likely the same root cause as the zeroed actual hours, which means your answer on technician clocking probably settles both at once.

07
Nobody went looking for these

What turned up anyway

The most interesting findings were not on the list. They fell out of the file while the agents were checking something else.

A
Four jobs are generating four fifths of the rework

80 supplement lines across 12 repair orders, and four of those 12 carry 65 of the 80. Supplements are not an even background rate, they are concentrated in a handful of jobs. In one night, at one shop, with no history and no modelling required.

B
One repair planning line at fourteen times the rate

Every repair planning charge in the file is $50.00 except one. RO 29998 carries $700.00. ICBC's rate is a flat $50 on all repairable claims, so this is either a legitimate exception on a total loss file, an insurer-specific arrangement, or a keying error. All three are worth knowing about, and it took one pass to surface.

C
Technician-level labour is in the feed, and richer than expected

35 labour lines across 16 repair orders, each carrying technician names and flag hours and labour cost split nine ways: body, mechanical, glass, structural, electrical, aluminum, refinish, detail and other. The structure for true profit is there as well, with a cost field against every billed total, though only parts and materials actually populate it today. Section 06 has the detail.

D
Actual hours are zero on every single labour line

Flag hours are populated. All nine actual-hours fields read 0.00 on all 35 lines. Either the shop is not clocking technicians onto jobs, or the export is not carrying it. That one answer decides whether true technician efficiency is measurable at all.

E
EI runs on a different labour rate table

All four EI jobs with labour bill body work at $96.48 per hour. All 50 ICBC jobs bill $89.46. Alongside policy numbers and peril codes on the claim references, that settles what kind of thing EI is. There is no rental or loaner element anywhere in the file, so a true length-of-rental measure is not available from this feed. Days in shop is.

F
The procurement trail is real, on the lines that have one

Vendor, order date, received date and invoice number appear on 300 of the 1,722 lines, spread across 40 repair orders. Ordered-to-received time by vendor is computable from this file today. The structured backorder and IOU flags exist but are never populated, so a backorder shows up only as free text in a description.

Two more you can check yourself
Repair order 29998

The REPAIR PLANNING & DOCUMENTATION line at $700.00. Every other one in the file is $50.00.

Repair order 30051

A single line, TOTAL LOSS HANDLING, and no repair planning charge. It reads as a gap in a naive count, but it is a write-off file where the charge would be wrong rather than missing. This is the kind of case a rule has to be taught, and it is why we would rather show you the working than hand you a total.

08
Short list

Still open

Two of the four questions we sent you earlier today have now been partly answered by the data itself. The three below are the ones that still change what gets built.

Brad
Do the shops clock technicians onto jobs in ImEx?
Flag hours are there. Actual hours are 0.00 on every line, and labour cost is empty on most jobs. This one answer decides both whether real technician efficiency is measurable and whether we can show true profit on the labour side, not just on parts.
Brad
Has Mission re-applied its ICBC estimate profile since 1 April?
The rate finding in section 04. Every ICBC job here bills body at $89.46 against a published $91.25. If the profile has already been re-applied and this export predates it, or there is a tier arrangement we have not accounted for, tell us and we will drop it. If not, it is the fastest money in this report.
Brad
Does a refinish operation like Rear Add w/Parking Sensor imply a calibration?
It tells us the bumper is sensor-equipped. Whether that mandates a calibration is shop knowledge we do not have, and it changes how a rule should be written.
Brad
How does a shop mark a car sitting on a supplement hold today?
In the data, a car waiting on approval and a car that is genuinely stalled look identical. If there is already a habit your managers use, we would rather build around it.
Allan
What does the insurer code EI expand to?
We can prove it is a carrier with its own rate table. No element in the file spells out any company name, so the identity needs the ImEx insurer-code table.
Allan
Can the schema carry two small fixes, and can descriptions run past 40 characters?
Two fields need to be marked optional or 5 of 56 records fail validation. Separately, descriptions are cut at exactly 40 characters and 82 lines hit that ceiling, several mid-word.
Allan
Can the backorder and IOU flags be populated?
Both fields exist on all 1,722 lines and neither ever carries a signal, so backorders are only detectable as free text today.
What comes next

A roadmap, in plain English, built on the findings above rather than on assumptions. Every claim in it will trace back to something on this page. It follows once your three answers land.

09
The detail behind every number

The five agent reports

Each agent worked the file independently. Open any of them for its mission, its method, and what it actually found, including the things it could not resolve.

A
ADAS calibration
Does any job carry sensor parts without a calibration line?
+
What it found

34 ADAS-indicator lines across 13 of 56 repair orders, and 7 calibration lines across 5. The gap depends entirely on how strictly you define an ADAS part, so it reported three definitions rather than picking one.

  • Any sensor keyword: 8 repair orders. Includes tire pressure sensors, which are not ADAS.
  • Excluding tire pressure and oxygen: 6 repair orders. The defensible middle reading.
  • Camera, radar or blind spot only: 0 repair orders. Only three jobs in the file carry one of those, and all three already have a calibration line.
On the figure of 76

The agent tested seven definitions to see which produces 76 ADAS-related lines. Exactly one does: counting post-repair scans as ADAS lines. 42 of the 76 are scans, and 37 of those are the identical string ICBC POST REPAIR SCAN. Counting only equipment and calibration, the file holds 34.

What it could not resolve

Four of the six gap jobs qualify through refinish operations such as Rear Add w/Parking Sensor, which indicate a sensor-equipped bumper but not necessarily a calibration requirement. That needs shop knowledge, so it is on the open list rather than in a total.

B
Repair planning
Are eligible ICBC jobs missing the planning and documentation charge?
+
What it found

43 repair planning lines across 43 repair orders, all under PAS. The standard charge is $50.00 on 42 of the 43. No line anywhere in the file is priced at $66.00.

  • ICBC jobs over $2,500: 35 in scope, 35 with the line, 0 without.
  • ICBC jobs over $5,000: 22 in scope, 22 with the line, 0 without.
  • All ICBC jobs regardless of value: 50 in scope, 39 with, 11 without.
Why the status breakdown matters more than the total

Of the 11 without, nine are estimates or scheduled jobs with no car-in-shop date at all, and eight of those are an identical placeholder shell. The two remaining cases are a total loss file and a glass claim. The realistic opportunity in this export is one job, $50, and arguable.

On the figure of 40 of 56

Reproducible and correct, if you match the exact string REPAIR PLANNING & DOCUMENTATION. It misses three free-typed variants at the same $50 and the same code, so the true count is 43. Also worth noting that 20 of the 56 are pre-production, so the file is not 56 active jobs.

C
Alignment
Are suspension repairs going out without an alignment charge?
+
What it found

The gap is zero, on every definition tested. Only 4 detail lines out of 1,722 are suspension components, sitting on 2 repair orders, and both bill a four-wheel alignment at $147.00.

  • Twelve of the seventeen suspension keywords return no lines at all in this file.
  • 11 repair orders bill a wheel alignment. Only 2 of those carry a suspension part, so the other 9 are alignments billed off impact or structural damage.
  • Exactly one job has frame or structural hours, and it does bill an alignment.
The honest limitation

Both suspension jobs are in progress. No closed job in the file carries a suspension part at all, so this export contains no evidence either way about closed jobs that were never billed. The claim is neither confirmed nor refuted, and a single night cannot settle it.

A finding for the build

Matching on the word "align" alone catches structural pull operations such as PULL AND ALIGN UNIBODY, which are not wheel alignments. Four repair orders contain only those. Harmless here, material at scale.

D
Baseline, EI and the type codes
Establish the denominators, and settle two open questions from the data
+
Baseline
  • Status mix: 22 in progress, 13 closed, 11 scheduled, 9 estimates, 1 arrived.
  • Insurer mix: ICBC 50, EI 5, and one internal credit record with no vehicle attached.
  • Work in progress: $285,244.48 across all 56, $228,361.93 not yet closed, $175,322.31 with the car actually in the shop across 23 jobs.
  • Supplements: 80 lines confirmed, on 12 repair orders, four of which carry 65 of the 80.
How the type codes were proved

Rather than guess from descriptions, the agent summed each type code per repair order and matched it against the corresponding field in the totals block. Six codes, 56 records each, zero mismatches. That is what makes the decoded key in section 04 a proof rather than an interpretation.

The EI evidence
  • All five EI jobs carry a policy number in a consistent 5-NNN-NNNNNN format. Rentals do not have policy numbers, and ICBC policies use a different form entirely.
  • Claim references end in peril codes: COLL, MVA, and one BLINDACV on the single non-driveable total loss.
  • Real repair work. One EI job runs 73 detail lines, 20.7 body hours, 16.9 refinish hours and a $500 deductible split between customer and insurer.
  • Body labour at $96.48 against $89.46 on the ICBC jobs that carry body labour.

A sweep of every element in the file for any expanded company name returned nothing. The name has to come from the ImEx insurer-code table.

The two validation identities

Both hold on 56 of 56 records and both are now built into how we would check every incoming file: the blank-code lines sum exactly to paint plus body materials plus miscellaneous, and detail lines plus labour plus tax sum exactly to gross.

E
Independent inventory
Build a neutral baseline so the other four can be checked against it
+
Why this agent existed

It was told nothing about what the others were looking for. Its only job was to produce a complete, boring structural inventory using a different parsing library and different command-line tooling, so that a bug in one approach could not quietly propagate into every number on this page.

Cross-check result

Twelve hard counts, re-derived by a second method and then a third. All twelve agreed exactly. 56 repair orders, 1,722 detail lines, 35 labour lines on 16 repair orders.

What else it measured
  • 198 distinct element paths in the file and 759 distinct line descriptions.
  • Descriptions are hard-capped at 40 characters. 82 lines sit at exactly 40, several cut mid-word.
  • Only five fields are ever genuinely absent. Everywhere else, blanks arrive as empty tags, which matters because absent and blank need to be handled as two different cases.
  • Customer name, phone, street, city and email are present in the structure and empty on all 56. Only the first three characters of postal code carry through, on 53 of 56.
  • Vehicle data is strong: mileage and driveable flag on all 56, make, model and VIN on 55.
The measurement that led to the formula

It reported that line totals do not reconcile to headline totals, and quantified the gap at $136,236.78 without attempting to explain it. Agent D then found the missing pieces, labour and sales tax, which closed it exactly. Neither agent could have got there alone.

Every figure on this page comes from the 18 June export for Mission, or from ICBC's published Collision Repair Program rate schedule. Nothing has been extrapolated to other locations, to a month, or to a year.