transparent by design
How Carconomics turns prices into decisions.
A field guide to every important number on the search and stats pages: what it measures, which observations feed it, where it helps, and where it cannot.
source = real trip quotes
refresh = about every 30 minutes
active_window = ORD Jul 11, 2026 → Sep 8, 2026 · LAX Jul 11, 2026 → Sep 8, 2026
last_update = Jul 11, 12:22 PM CT
output = evidence, not a booking guarantee00 / reference
The system contract#
The site compresses a large grid of messy rental prices into decisions while keeping the evidence visible.
Find the trip, not merely the car.
Compare exact totals across dates and lengths, expose discount cliffs, and show why a result looks unusually valuable.
Read the market without guessing.
See current price bands, timing patterns, reputation cohorts, and where longer-trip discounts create unintended bargains.
raw quote grid
→ normalize the same trip dimensions
→ compare like with like
→ expose the strongest signal
→ link back to the bookable listingRule: descriptive evidence stays separate from prediction. A current price curve says what is listed now; a history signal says how identical trips changed. Neither is certainty about tomorrow.
01 / reference
Real trip quotes#
A marketing daily rate is not enough. Carconomics works from the trip total for a specific car, pickup date, and duration.
quoted_total
- data
- real, bookable rental prices near ORD and LAX
- window
- refreshed about every 30 minutes
- how
- each car is checked across every pickup date in the active market window and each trip length from 1 to 14 days
daily_price
- data
- live prices (◉)
- window
- the selected car + pickup + trip length
- how
- quoted trip total ÷ number of rental days
+N days saves $X
- data
- live prices (◉)
- window
- same car and pickup, across longer trip lengths
- how
- find the cheapest longer duration whose full total is below the selected duration's total
quote_key = market + listing + pickup_date + rental_days
per_day = quoted_total / rental_days
free_day = longer_total < selected_total
book_link = same listing + exact compared dates02 / reference
Search modes#
Every mode resolves to the same date-and-duration combinations on the client and server, so a shared URL means the same plan everywhere.
Flexible
Starts from one target date, expands pickup flexibility, and enforces a hard minimum trip length with an optional maximum.
Date range
Tests every trip inside the chosen range that meets the minimum length.
Mass Search
Tests the stored pickup window across all supported lengths, or one selected length.
minimum = shortest acceptable trip
maximum = selected cap or "No max"
No max = search through the current 14-day data ceiling
example: minimum 3d + maximum 6d → 3d, 4d, 5d, 6dresult_order
- data
- live prices (◉)
- window
- all quotes matching the active plan and filters
- how
- sort by trip total, daily price, year, rating, or price relative to fair value; deterministic fields break ties
03 / reference
Fair value is a comparison, not an appraisal#
The model estimates a normal daily price for the same kind of car and trip, then compares the real quote with that reference.
expected_daily_price = f(
market, model, vehicle_age, rating_presence, rating,
completed_trips, all_star_status, trip_length,
days_until_pickup, pickup_weekday
)
value_gap = 1 - actual_daily_price / expected_daily_pricefair_value
- data
- live prices (◉)
- window
- refit after each successful refresh
- how
- a regularized pricing model learns current relationships between vehicle, reputation, market, and trip-timing characteristics
Steal
- data
- live prices (◉)
- window
- latest fitted model and quote set
- how
- requires a material saving, a listing-weighted held-out residual cutoff, global validation, and enough listings in that market and model
Best_value
- data
- live prices (◉)
- window
- the active search result set
- how
- actual daily price ÷ modeled fair daily price, lowest ratio first
04 / reference
Distance stays independent#
A cheap car farther away can still be a genuine price bargain. Travel inconvenience is a separate personal tradeoff, so it is not hidden inside fair value.
price value does not equal location convenience
Fair value is distance-neutral. The model adjusts for the broad market, but it does not reward or penalize a quote based on miles from an airport or from you.
candidate_set = selected market or future user radius
price_value = actual price vs comparable price
distance = shown and filtered independently
user_choice = whether the savings justify the travelToday: where available, cards show distance from the market reference point. Planned: users will be able to provide a location, choose a radius, and see user-relative distance. That radius is not live yet.
05 / reference
Mass Search#
Mass Search asks the expensive but useful question: what are the strongest opportunities anywhere in the current date-and-length surface?
matched_quotes =
selected markets
× every pickup date in the stored window
× every supported duration
× every eligible car
response = ranked page + match count + explainable picksGreat_deal
- data
- live prices (◉)
- window
- all quotes matched by the Mass Search request
- how
- a daily price materially below the middle of that request's matched prices
result_page
- data
- live prices (◉)
- window
- one stable slice of the full ranked match set
- how
- each refresh precomputes all 450 Mass filter sets, next-local-day variants, and five exact top-400 orders; the server decodes only the requested cards
Performance contract: growth should increase indexed data, not browser work. Large searches must stay bounded, paginated, deterministic, and able to retain the last valid dataset if a new publication fails.
06 / reference
Freshness, missing rows, and carries#
Rental inventory can disappear briefly even when a listing is valid. A short carry window prevents one incomplete refresh from blanking the site.
observed now → publish current quote
missing once → carry last known quote
missing twice → carry last known quote
missing three times → remove quote
new window day → remove expired pickup date◉ live vs ⟲ history
- data
- each panel identifies its evidence class
- window
- ◉ = latest successful refresh · ⟲ = observations accumulated across days
- how
- live panels use the current union; history panels compare bounded observations over time
checked_at
- data
- timestamp of the dataset's latest successful publication
- window
- shown in the global status badge
- how
- the prior valid dataset remains available if a refresh or publication fails
07 / reference
Stats provenance#
The stats page is a market terminal: each panel should answer a decision question and disclose whether it uses the latest surface or repeated observations.
| signal | source | calculation | use it for |
|---|---|---|---|
| price heatmap | ◉ LIVE | typical $/day by pickup date × length | finding inexpensive trip windows |
| lead-time curve | ◉ LIVE | current quotes by days until pickup | reading today’s price surface |
| model / weekday / reputation | ◉ LIVE | current quote medians by cohort | comparing observable segments |
| price drivers | ◉ LIVE | controlled fitted-model effects | separating correlated traits |
| marginal day / free day | ◉ LIVE | fresh same-car and pickup pairs across lengths | spotting discount cliffs |
| market trend | ⟲ HISTORY | daily market-local medians | tracking broad direction |
| do prices drop as pickup nears? | ⟲ HISTORY | same trip followed across days | observing repricing behavior |
| recent price drops | ⟲ HISTORY | same quote becomes at least 5% cheaper | finding fresh changes |
Important: a median is quote-weighted unless a panel explicitly says it is listing-weighted. “After controls” is a model association, not proof that a host badge or vehicle trait caused a price difference.
08 / reference
What the data cannot prove#
Useful analysis gets stronger when its boundaries are explicit. These limits apply even when a signal looks compelling.
- 01Not the checkout total. Quotes are before tax; protection and checkout-only options are outside the dataset.
- 02Not availability demand. A listing disappearing can mean many things. It is not called a booking without direct evidence.
- 03Not a causal experiment. Controlled price effects reduce obvious mix differences but do not prove causation.
- 04Not review-text analysis. Current quality signals use aggregate rating, completed listing trips, and All-Star status. Public pages expose some reviews, but automated/commercial collection stays off unless Turo grants written permission for that use.
- 05Not a prediction by default. A current lead-time curve compares different future trips today. Only repeated same-trip history measures repricing.
- 06Not permanent. Price and availability can change at any moment. The linked listing remains the final source.
09 / reference
Bounded by design#
Every stored dataset has a replacement rule or retention limit. Growth should add coverage without creating an unbounded data pile.
Fixed-width quotes plus bounded indexes; publication stops safely at 20 MiB.
Recent drops stay actionable and then expire.
Cadence stays inspectable without accumulating forever.
Runway for calibrated time comparisons.
A bounded year-over-year analytical window.
Full-resolution analysis history, separate from serving.
new_store_allowed = retention_rule && size_bound && owner
publication = validate first, point current last
failure = preserve prior valid generation
compatibility = old reader + new reader during migration10 / reference
Future vehicle categories#
The first expansion beyond Tesla listings — the Luxury group — is live; specification rankings still require trustworthy trim-level data first.
◉ LIVE The Luxury group is live. Its curated membership is make-level for Porsche, BMW, Mercedes-Benz, Audi, and Lexus, and model-level elsewhere: Range Rover and Range Rover Sport, plus the Escalade family and CT5-V/CT4-V — model years 2022 and newer only. It runs the same real-quote methodology described above on its own separate data store, refreshes about every two hours, and is filtered by make where the Tesla group is filtered by model. Groups are never blended: every price, band, and badge is computed within one group at a time.
identity = make + model + year + trim
specs = MSRP + acceleration + power + range + seats + cargo
quality = exact | probable | unknown
rule = uncertain inputs never become a confident rankingpermission_gate = written source license
claimed_fields = trim + seats + range + features + delivery
verified_specs = separate licensed catalog or VIN match
raw_reviews = never retained by default
retention = overwrite current + delete after 90d unseenVerified performance divided by exact daily rental price.
Inflation-adjusted original vehicle value per exact daily rental cost.
Verified output per rental dollar for the selected trip.
Usable driving range relative to the daily quote.
High vehicle-value percentile at a low rental-price percentile.
Seats, cargo, and range under an explicit daily budget.
Every future leaderboard will run after location/radius, dates, duration, and budget filters. It will show its inputs and formula—never collapse price, speed, distance, and quality into one unexplained score.