Analytics · Python
What actually drives a car dealership's profit?
A Python analysis of 1,600 vehicle sales and live stock at Pinnacle Auto Group —
looking past headline revenue to where margin is really made, and where cash is quietly stuck.
Briggs BI · analysis in Python (pandas + Plotly) · data is synthetic & illustrative
1. Two months make the year
UK number plates change in March and September (highlighted in blue below), and the data shows just how concentrated demand is.
A plate-change month sells 2.4× a normal month on average —
the four plate months alone account for 33% of annual volume. Stock-buying and staffing
should be planned around these peaks, not spread evenly.
2. Used cars are the margin engine
New cars bring revenue and footfall, but the profit per pound sits firmly in used stock.
Used cars run a 10.9% gross margin versus 6.0% on new —
roughly 1.8× the margin rate. A used-heavy mix is what protects the bottom line.
3. The depreciation curve
Fitting a simple regression to used stock quantifies how mileage erodes value — useful for pricing part-exchanges. The red line is the fitted trend.
Every 10,000 miles knocks roughly £2,095 off the sale price
(linear fit). Newer registration years sit clearly higher up the curve.
4. £608k of dead capital
Inventory isn't free — every day a car sits unsold is cash on the floor. The aging profile flags the problem — the red bar is stock sat 90+ days.
42 vehicles have sat 90+ days (averaging 126 days),
tying up £608,200 — concentrated in hatchbacks. These are first candidates
for repricing or trade disposal.
5. Where the profit concentrates
Not all brands pull their weight equally on gross profit.
The top three brands generate 43% of total gross profit
(Toyota, Ford, Volkswagen) — worth weighting stock and marketing spend accordingly.
What I'd recommend
- Front-load stock purchasing and temporary sales cover into February & August, ahead of the plate peaks.
- Protect the used-car mix — it carries ~2× the margin of new and stabilises profit between peaks.
- Set a 90-day stock-age trigger: auto-flag the 42 aged units (£608k) for reprice or trade.