Brad O'Haire · portfolio
01  ·  Fleet Yield Analysis

Your fleet.
One question per panel.

Vantage Fleet OS is the operating layer for a Turo rental business of any size. Every section below answers a specific question with a chart, a finding, and the math behind it. Drop in your own Turo CSV export to run the same analysis on your real data, or explore the synthetic demo first.

OperatorVantage Ventures Rentals
Fleet3 Tesla · 2 ICE
History26 mo trailing
MethodTrip-level
SourceSynthetic demo data
/ What this dashboard tracks

A working operator's view of fleet yield.

Every Sunday I sit down with the same question: which vehicle in my fleet is actually earning its operational slot? Each car costs roughly the same to insure, list, photograph, message about, and maintain. The slot is the constraint. This dashboard turns trip-level data into the five sub-questions an operator needs to answer that, regardless of fleet size.

VEHICLE
A car in the fleet. 5 in this dataset. Identified by short name; carries type (Tesla / ICE), acquisition cost, and listing identity.
TRIP
A single Turo booking. Fields: start_date, days, distance_mi, earnings_usd. The atomic record in the source CSV.
BOOKED-DAY
The atomic unit of utilization. One day a vehicle was actively rented. Out of 365 possible per year, this is the slot-use metric.
METRICS
$/booked-day (yield), utilization (capacity), CV (consistency), z (per-trip outlier flag).
SOURCE Production: Turo CSV exports plus Tessie API for vehicle telemetry. This demo: synthetic data, calibrated against the real TTM numbers from my fleet. Drop your own CSV in the upload panel below to run the same analytics on your data.
Fleet Rev TTM
$0
--vs prior 12mo
Rev / Booked-Day
$0
σ = $0
Utilization
0%
booked / fleet days
Trips / Month
0
avg, last 12mo
Trend R²
0.00
monthly rev fit

Run on your data

0 rows loaded

Drop a Turo CSV export below. Parsing happens entirely in your browser · nothing leaves your machine. Schema detection handles the common column-name variants automatically.

Expected schema · auto-detected aliases

vehiclecar / vehicle_name
start_datetrip_start / pickup_date
end_datetrip_end / dropoff_date
daystrip_days / duration
distance_mimiles / mileage
earnings_usdearnings / payout
Missing columns are ignored. Currency symbols, commas, and quotes are stripped automatically.
/ 01

Per-vehicle yield

Distribution & significance
Q1. Which vehicle generates the most revenue per booked-day, and is the spread between top and bottom statistically meaningful? box plot · t-test
Finding
Loading analysis...
METHODPer-trip revenue / booked-days, grouped by vehicle. Box shows IQR with median; whiskers at 1.5 × IQR; dots beyond whiskers are statistical outliers (z > 2). Welch's two-sample t-test on top vs bottom yielder.
/ 02

Weekday premium

Mean & 95% CI by day
Q2. Renters say weekends are the premium days. Is that true at the per-day rate level once you control for trip length? 95% CI bars
Finding
Loading analysis...
METHODTrip start day-of-week vs revenue per booked-day. Bars are sample means, error bars are 95% CI. Sample sizes shown above each bar.
/ 03

Revenue trajectory

Monthly + linear fit
Q3. Is the fleet actually growing, or is recent strength just seasonality? Decompose the trend and report goodness of fit. OLS · R²
Finding
Loading analysis...
METHODMonthly revenue rollup. OLS regression of revenue on month index. Slope reported per month. R² reported as goodness of fit. Stat grid shows fleet-wide $/day distribution properties.
/ 04

Outlier book

|z| > 2 trips
Q4. Which trips broke the model? List the outlier bookings so they can be investigated for pricing errors, damage claims, or expansion patterns. z-score · review queue
Vehicle Start Days $/Day Z Earnings Flag
Finding
Loading analysis...
METHODPer-trip $/day standardized within vehicle (z-score from vehicle-specific mean & std). Trips with |z| > 2 are flagged. Top 12 absolute z-scores shown.
/ 05

Vehicle scorecard

Stock-screener style
Q5. If each vehicle were a security, how would they rank by revenue, yield consistency, and risk? screener · CV ranking
Vehicle Trips Booked-days Revenue $/Day Mean Median σ CV Rank
METHODCV (coefficient of variation) = σ / mean of per-trip $/day. Lower CV = more consistent yield. Composite rank = 50% revenue + 30% mean $/day + 20% inverse CV.
/ 06

Issues & recommendations

What to do next, ranked
Q6. If I only had time to investigate three things this week, what should they be? triage · ranked actions
Loading...
METHODEach issue is generated from the same aggregated dataset feeding the panels above. Severity is assigned by impact (revenue at risk, deviation from fleet median, statistical significance). High = act this week. Med = investigate this month. Low = monitor.
Why this work

Operating a 5-vehicle Turo fleet by spreadsheet means every fleet question is a manual exercise.

I built this so the daily question, "what's the lowest-yield asset and what should I do about it?", has a one-screen answer with the supporting evidence already laid out. It's not a BI tool. It's a decision-support layer that turns raw bookings into ranked, actionable issues.

Craft on display
  • Schema design
  • Derived metrics
  • Aggregation pipeline
  • Interactive Plotly filtering
  • Scorecard heuristics (CV, yield gap)
  • Automated issue detection
  • Severity ranking
  • Responsive layout
  • Client-side, zero backend