import numpy as np
import plotly.graph_objects as go
# -----------------------------
# 1) Base depreciation rates by brand (rule-of-thumb, AU market)
# -----------------------------
= {
depreciation_rates "Toyota": {"year1_drop": 0.18, "years2_5": 0.12, "years6_10": 0.06},
"Mazda": {"year1_drop": 0.20, "years2_5": 0.13, "years6_10": 0.07},
"Honda": {"year1_drop": 0.22, "years2_5": 0.14, "years6_10": 0.07},
"Nissan": {"year1_drop": 0.25, "years2_5": 0.15, "years6_10": 0.09},
"Mitsubishi": {"year1_drop": 0.26, "years2_5": 0.16, "years6_10": 0.09},
"Lexus": {"year1_drop": 0.15, "years2_5": 0.09, "years6_10": 0.05},
"Hyundai": {"year1_drop": 0.23, "years2_5": 0.14, "years6_10": 0.08},
# Generic hybrid for non-specified hybrids
"Hybrid (General)": {"year1_drop": 0.15, "years2_5": 0.10, "years6_10": 0.05}
}
# -----------------------------
# 2) Modifiers by model type & price bracket
# -----------------------------
= {
model_type_modifiers "hybrid": {"year1_drop": -0.02, "years2_5": -0.02, "years6_10": -0.01},
"suv": {"year1_drop": -0.01, "years2_5": -0.005, "years6_10": -0.005},
"sedan": {"year1_drop": 0.00, "years2_5": 0.00, "years6_10": 0.00},
"sports": {"year1_drop": 0.02, "years2_5": 0.01, "years6_10": 0.00},
"fleet": {"year1_drop": 0.03, "years2_5": 0.02, "years6_10": 0.01},
}
def price_bracket(V0):
if V0 < 25000:
return "budget"
elif V0 <= 50000:
return "mainstream"
else:
return "luxury"
= {
price_modifiers "budget": {"year1_drop": +0.02, "years2_5": +0.01, "years6_10": 0.00},
"mainstream":{"year1_drop": 0.00, "years2_5": 0.00, "years6_10": 0.00},
"luxury": {"year1_drop": +0.05, "years2_5": 0.00, "years6_10": 0.00},
}
# -----------------------------
# 3) Helper to clamp rates into sensible bounds (0..0.5)
# -----------------------------
def clamp(x, low=0.0, high=0.50):
return max(low, min(high, x))
# -----------------------------
# 4) Compute effective rates for a given car
# -----------------------------
def effective_rates(brand, model_type, V0):
= depreciation_rates.get(brand, depreciation_rates["Hybrid (General)"]).copy()
base = model_type_modifiers.get(model_type, {"year1_drop": 0.0, "years2_5": 0.0, "years6_10": 0.0})
mt = price_modifiers[price_bracket(V0)]
pb = {}
eff for k in ("year1_drop", "years2_5", "years6_10"):
= clamp(base[k] + mt.get(k, 0.0) + pb.get(k, 0.0))
eff[k] return eff
# -----------------------------
# 5) Depreciation curve (piecewise)
# -----------------------------
def depreciation_curve(V0, rates, years):
= []
vals for t in years:
if t == 0:
vals.append(V0)elif t == 1:
* (1 - rates["year1_drop"]))
vals.append(V0 elif 2 <= t <= 5:
= V0 * (1 - rates["year1_drop"])
v1 * ((1 - rates["years2_5"]) ** (t - 1)))
vals.append(v1 else:
= V0 * (1 - rates["year1_drop"]) * ((1 - rates["years2_5"]) ** 4)
v5 * ((1 - rates["years6_10"]) ** (t - 5)))
vals.append(v5 return vals
# -----------------------------
# 6) Example fleet to plot
# -----------------------------
= [
cars "label": "Toyota Corolla Hybrid", "brand": "Toyota", "model_type": "hybrid", "V0": 35000},
{"label": "Hyundai i30 Sedan Hybrid", "brand": "Hyundai", "model_type": "hybrid", "V0": 36000},
{"label": "Mazda 3", "brand": "Mazda", "model_type": "sedan", "V0": 33000},
{"label": "Honda Civic", "brand": "Honda", "model_type": "sedan", "V0": 34000},
{"label": "Nissan Sedan", "brand": "Nissan", "model_type": "sedan", "V0": 35000},
{"label": "Mitsubishi Lancer", "brand": "Mitsubishi", "model_type": "sedan", "V0": 30000},
{
]
= np.arange(0, 15)
years
# -----------------------------
# 7) Build the Plotly figure with delta in hover
# -----------------------------
= go.Figure()
fig
for car in cars:
= effective_rates(car["brand"], car["model_type"], car["V0"])
rates = depreciation_curve(car["V0"], rates, years)
values = [None] + [values[i] - values[i-1] for i in range(1, len(values))]
deltas = [None] + [((values[i] - values[i-1]) / values[i-1] * 100) if values[i-1] != 0 else None for i in range(1, len(values))]
pct_deltas
= []
hovertext for t, v, d, pd in zip(years, values, deltas, pct_deltas):
if t == 0:
hovertext.append(f"{car['label']}<br>"
f"Year: {t}<br>"
f"Value: ${v:,.0f}<br>"
)else:
hovertext.append(f"{car['label']}<br>"
f"Year: {t}<br>"
f"Value: ${v:,.0f}<br>"
f"Δ from last year: ${d:,.0f} ({pd:.1f}%)<br>"
)
fig.add_trace(go.Scatter(=years, y=values,
x="lines+markers",
mode=f"{car['label']} (${car['V0']:,})",
name=hovertext,
hovertext="text"
hoverinfo
))
fig.update_layout(="Depreciation vs Time by Brand/Model/Initial Price (AU) — with Year-over-Year Change",
title="Years since new",
xaxis_title="Estimated Value (AUD)",
yaxis_title="$",
yaxis_tickprefix="x unified"
hovermode
)
fig.show()
Car Analysis
Car Analysis
Summary Highlights
- Cheapest viable used option: Toyota Corolla Hybrid (Ascent Sport/SX) — ideal entry-level, ~$25–30k.
- Best value for new car: Hyundai i30 Sedan Hybrid — starting around $30k, modern tech, and long warranty.
- Spacious and mature choice: Toyota Camry Hybrid, starting around $40k new; used late-gen models offer value.
- More premium feel? Honda Accord e:HEV or Lexus ES300h, though these are more expensive and less common.
Model (AU years) | Powertrain | Fuel use (combined) | Safety (ANCAP) | Price (Australia) | Why it’s good | Watch-outs |
---|---|---|---|---|---|---|
Toyota Corolla Sedan Hybrid (Ascent Sport / SX) | 1.8 L HEV | ~3.6–3.9 L/100 km | 5 ★ (2022+) | Used (2020–2022, low km): ≈ $29k; Older (2019): mid‑$20k; Some listings around $25k (e.g., Ascent Sport Hybrid) ([Carsales][1], [CarsGuide][2], [News.com.au][3]) | Very reliable, plentiful in Brisbane, affordable to maintain | Smaller rear cabin; look for good service history |
Hyundai i30 Sedan Hybrid (2024+) | 1.6 L HEV | ~3.9 L/100 km | 5 ★ (facelift models) | New (2024–25): from $29.5k–$31.5k as guide; Dealer drive-away: around $37k ([Carsales][4]) | Efficient, fresh design, excellent warranty | Recall on i30 N variants (not hybrids)—check VIN ([News.com.au][3]) |
Toyota Camry Hybrid (2025 new-gen) | 2.5 L HEV | ~4.0 L/100 km | 5 ★ | New (Ascent Hybrid): from $39.99k; Ascent Sport: $42.99k; SL: $53.99k; Drive-away: around $44–60k depending on state ([CarExpert][5], [CarsGuide][6], [CARS24 Australia][7]) | Spacious, smooth ride, proven hybrid tech | Higher costing; check for ex-fleet/oz rental cars if buying used |
Honda Accord e:HEV | 2.0 L HEV | ~4.3 L/100 km | Typically 5 ★ | Used: tends to be more expensive than Camry; limited stock (specific pricing unclear)** | Roomy, efficient, premium feel | Scarcer availability and possible higher running costs |
Lexus ES300h | 2.5 L HEV | ~4.6–4.8 L/100 km | 5 ★ | Used: starting from $40k+, depending on age & kms ([CarExpert][5]) | Luxury-grade comfort and refinement | High upfront cost; expensive servicing |
Car value Depreciation
Good one 🚗💨 — depreciation is one of the biggest hidden costs in car ownership.
For Japanese mass-market sedans/hatchbacks (Toyota, Honda, Mazda, Nissan, Hyundai/Kia although not Japanese) in Australia, a pretty reliable rule of thumb is an exponential decay curve:
📉 Depreciation Formula (approximation)
\[ V(t) = V_0 \times (1 - r)^t \]
Where:
- \(V(t)\) = value of car after \(t\) years
- \(V_0\) = original new price (drive-away)
- \(r\) = annual depreciation rate
- \(t\) = years since new
🔹 Typical depreciation rates (Japanese mainstream cars in AU)
- Year 1: ~20–25% drop immediately (new → used)
- Years 2–5: ~10–15% per year
- Years 6–10: slows to ~5–7% per year
- After 10 years: flattens, value is ~20–30% of original and then mostly follows condition/kms.
🔹 Typical Depreciation Rates (AU Market, Japanese brands)
Brand / Model Type | Year 1 drop | Years 2–5 (annual \(r\)) | Years 6–10 (annual \(r\)) | Notes |
---|---|---|---|---|
Toyota (Corolla, Camry, RAV4) | 15–20% | 10–12% | 5–7% | Best resale value, especially hybrids. |
Mazda (Mazda 3, Mazda 6, CX-5) | 18–22% | 12–13% | 6–8% | Very solid, but not quite Toyota’s resale strength. |
Honda (Civic, Accord, CR-V) | 20–25% | 12–15% | 6–8% | Reliable, but demand dipped in AU → slightly faster depreciation. |
Nissan (Altima, Pulsar, X-Trail) | 25%+ | 15% | 8–10% | Value drops quickly; resale weaker than Toyota/Mazda. |
Mitsubishi (Lancer, Outlander, ASX) | 25%+ | 15%+ | 8–10% | Cheap new, but resale is poor; often fleet sales. |
Lexus (ES, IS, RX) | 15% | 8–10% | 5–6% | Hybrid luxury models hold value well vs Euro luxury (BMW/Audi). |
Hybrid variants (Toyota Hybrid, Honda e:HEV) | ~15% | 8–10% | 5–6% | Hybrids depreciate slower now due to fuel costs + demand. |
🔹 Example (Toyota Corolla Hybrid, new $35,000)
Let’s assume \(r = 0.15\) (15%/year) for the first 5 years, then 7% after.
Year | Formula | Approx. Value |
---|---|---|
0 (new) | $35,000 | $35,000 |
1 | \(35000 × 0.85\) | $29,750 |
3 | \(35000 × 0.85^3\) | $21,500 |
5 | \(35000 × 0.85^5\) | $15,500 |
8 | \(15500 × 0.93^3\) | $12,600 |
10 | \(15500 × 0.93^5\) | $11,300 |
So after ~10 years, it’s worth ~30% of new price — which matches used car market data.
🔹 Factors that affect depreciation
- Brand/reputation → Toyota & Mazda hold value best; Nissan & Mitsubishi drop faster.
- Fuel efficiency / hybrid → hybrids depreciate slower (esp. now with fuel costs & gov policies).
- Fleet/taxi history → Camry Hybrids drop harder if ex-fleet.
- Market cycles → COVID shortages reversed normal depreciation for 2020–2022.
- Mileage/condition → in AU, >200,000 km is a steep cliff.
✅ Rule of thumb:
- Expect 50% of new price at 5 years.
- Expect ~30% at 10 years (for well-kept Toyota/Mazda).