Inventory vs coverage
· vehicles seen, and how many dealers reported
Market flow
· arrivals, sales and price cuts per day
Price vs days on lot
· active stock, coloured by age
Age mix by dealer
· who is sitting on old stock
Watchlists
Loading…
A watch is just a saved inventory filter. Counts are live against the
current scrape; new is anything first seen in the last 7 days,
cut is anything whose price fell in the last 7 days.
Recently sold / removed
Dealer
Year
Make
Model
Mileage
Last price
Days on lot
Status
Date
Loading…
Recent price drops
Dealer
Year
Make
Model
Was
Now
Change
Days listed
Date
Loading…
Active inventory
Dealer
Year
Make
Model
Mileage
Price
Days listed
Loading…
Dealer roster
Click a dealer for the full picture. The dot is scrape freshness —
green means today's number came from a clean run, amber and red mean
the count is stale and should not be read as a market fact.
Dealer
Active
Median price
Median age
Age mix
Sold 30d
New 7d
Cuts 7d
Last run
Loading…
Manage dealers
Dealer
Template
Active cars
Last run
Status
Loading…
On add, the inventory page is fetched server-side and matched to a
scraper template automatically. “Pause” stops scraping but keeps
history; “Delete” removes the dealer and all its data.
Dealer candidates
Researched Lower Mainland independents not yet tracked. Approve
runs the template check and adds the dealer (tracked from the next
scrape); Dismiss hides it. Rows marked
unverified have an inventory URL that
couldn't be auto-confirmed — click the link to eyeball it first.
Dealer
City
Notes
Status
Loading…
System health
…
Loading…
Scrape progress
⚠ Bot-blocked sites — counts unreliable
Dealer
Strategy
Wall
Last checked
Stale shown
Scrape health
Dealer
Status
Loading…
Tracking history starts 2026-07-11 (~3 weeks). Rows marked
n<5 have fewer than 5 recorded
sales — treat those medians as anecdotes, not stats. Cars already on
the lot when tracking began make "days on lot" a lower bound.
–
Auction↔retail VIN matches
–
…already sold at retail
–
Avg implied gross (list − auction)
–
Median turn, auction → sold
Market pulse
· weekly solds & price cuts vs supply
Supply by segment
· days-of-supply = active ÷ (sold 30d ÷ 30)
Segment
Active
Median price
Sold 30d
Med. days to sell
Days of supply
% active cut
Loading…
Dealer leaderboard · ranked by units sold, last 30 days
Dealer
Active
Sold 30d
Sell-through
Med. days on lot
Med. days to sell
New arrivals 30d
% sold w/ cut
Med. cut before sale
Loading…
Velocity by model
Year
Make
Model
Active
Sold
Med. days to sell
p25–p75
Med. sold price
Med. active price
Loading…
Velocity by mileage band
Band
Active
Sold
Med. DTS
Med. sold price
Sell-through 30d
Loading…
Velocity by price band
Band
Active
Sold
Med. DTS
Med. sold price
Sell-through 30d
Loading…
Comp & pricing checker
Matches year ±1 and mileage ±30k km across all tracked dealers.
–
Active comps
–
Sold comps
–
Median active price
–
p25 – p75
–
Your price percentile
–
Predicted days to sell
Active comps
Dealer
Year
Trim
Mileage
Price
Days listed
Sold comps
Dealer
Year
Trim
Mileage
Price
Days to sell
Sold
Auction → retail funnel
· VINs bought at auction (OpenLane / EBlock / Market Guide) that appeared on tracked lots
Year
Make
Model
Dealer
Source
Auction price
Days → listed
List price
Outcome
Implied gross
Margin
Turn days
Loading…
Implied gross = current/last list price − auction price (before recon
& fees). Turn = auction sale date → retail sold estimate.
Buy list
· retail velocity × wholesale spread, best first (confident rows above small-n)
Year
Make
Model
Retail median
Wholesale median
Spread
Funnel gross
Med. days to sell
Sold / active
$ / day score
Loading…
Wholesale median = OpenLane Market Guide sales, same year/make/model,
last 90 days. Spread = retail median active − wholesale median.
Funnel gross = median implied gross of actual VIN-matched flips.
Score = spread (or funnel gross) ÷ median days to sell.