The WashIndex Membership Price Index: What Car Wash Unlimited Memberships Have Cost Since 2015
A back-cast, composition-robust price index of US car-wash unlimited-monthly-membership prices, 2015–2026 — reconstructed from archived pricing pages and validated against SEC-disclosed revenue per member.
- 195 chains priced
- 3,123 price points
- 2015–2026, annual
- 2020 = 100 base
- Validated vs. SEC ARPU
Executive Summary
The WashIndex Membership Price Index (WMPI) is a back-cast index of US car-wash unlimited-monthly-membership list prices, 2015–2026. It reconstructs what chains charged for a single-vehicle "wash club" membership from archived web pages and operator filings, and combines them into a national index, four US-Census regional indices, and an express-tunnel-only cut. The base is set to 2020 = 100. The headline findings:
- National car-wash membership list prices are up +16% from 2020 to 2026 (index 100.0 → 116.1), and up about +31% from 2015.
- The express-tunnel cut ran hotter: +23% from 2020 to 2026 (100.0 → 123.5). Express memberships were actually cheaper in real index terms in 2017–2019 than at the 2020 base, then climbed steadily once the membership land-grab accelerated.
- The index is built matched-model ("same-store"): every year-over-year change is measured only across the chains we have prices for in both years, so the steady growth of the priced panel never moves the level on its own. This is the single most important design choice and the reason the index can be trusted as a price signal rather than a composition artifact.
- Validation against ground truth. Mister Car Wash (an SEC-reporting, pure-play express operator) disclosed Unlimited-Wash-Club revenue per member rising ≈+10% (2021→2025). The WMPI express cut rose ≈+11% over the same window — an apples-to-apples match. The all-format index is cooler (≈+7%), consistent with full-service chains pricing more softly.
- This is a list-price index — the advertised membership price, not realised revenue per member after promotions, free months, and tier mix. Treat it as an upper bound on what members actually paid, especially in 2025–26.
- Regionally, the Midwest and Northeast saw the steepest membership inflation (+29% and +21% since 2020); the West was essentially flat.
See the live index. This report is the methodology. To explore the current values and the full 2015–2026 series for both the all-format and express-tunnel cuts — with charts and a regional breakdown — visit the interactive Car Wash Membership Pricing Index.
What the index measures
The WMPI tracks the price of one specific, comparable product: a chain's unlimited monthly membership for a single vehicle — the "wash club" or "unlimited plan." One-time washes, multi-vehicle and fleet plans, and annual prepay are all excluded. The population is US multi-location chains (≥3 sites) that offer such a membership — conveyor/express tunnels, full-service, and some in-bay/self-serve operators.
For each chain and year, the price that feeds the index is the midpoint of the cheapest and most expensive unlimited monthly tier the chain offered. The midpoint (rather than a median tier) is used so the figure reflects the centre of the offered price range and isn't skewed by how many intermediate tiers a chain happens to list. The cheapest tier ("base"), a typical tier ("median"), and the most expensive tier ("premium") are also published separately as dollar levels.
The index is unitless and anchored to 2020 = 100. Alongside it we publish dollar levels — the actual average membership price in dollars per month — but those move whenever the mix of chains changes, not only when prices change. For the trend, read the index; read the dollar levels as "roughly what it cost."
The data: archived pricing pages
The primary source is the Internet Archive Wayback Machine. For each chain we enumerate archived snapshots of its pricing, "unlimited," and "membership" pages, then read the archived HTML (and, where prices live in images or PDFs, the archived image/PDF) to extract tier prices. Extraction is performed with a structured-output AI extractor that returns each membership tier, its price, billing period, and vehicle count.
Two further sources are used around the index rather than as price inputs: SEC filings (Mister Car Wash and Driven Brands) serve as an independent ground-truth anchor, and store-locator pages (archived and current) are used to reconstruct per-year location counts and geographic distribution for weighting.
The universe is a discovery-based registry of 373 chains, deliberately including acquired and defunct chains during the years they operated — so the index doesn't suffer survivorship or look-forward bias. About half of those chains expose prices in static archived HTML and are extractable; the other half render prices client-side per location behind a geolocation-gated API (Take 5, GO, Club, Mammoth, ModWash, and others) and cannot be priced from the archive. Those chains are still tracked — they count toward the known universe used for post-stratification — but contribute no extracted prices. The priced panel is ~195 chains and ~3,123 price points.
How a per-chain-year price is built
A back-cast from imperfect archives produces partial captures — chain-years where only some tiers were scraped, which would bias the base/premium midpoint. The pipeline handles this in two ways. First, it unions tiers across multiple captures of the same chain-year, because many chains publish each tier on a separate product page and a single snapshot often catches only one tier. Without this step, a four-tier chain can look like it offers a single price.
Second, four data-quality guards drop chain-years that are still incomplete after the union step:
- Premium-trough / base-peak guard — a year whose premium dips below (or base spikes above) both temporal neighbours and shows fewer tiers is a capture anomaly that reverts; flagged.
- Single-tier-of-a-laddered-chain guard — if a chain shows a ≥3-tier ladder elsewhere, any year with only one captured tier can't define both base and premium; flagged. This catches multi-year runs of base-only captures that would otherwise fake an upward jump.
- Missing-base guard — a year whose cheapest captured tier is a "top" tier (or sits above a real base the chain captures in other years) is a top-only partial capture; flagged.
- Winsorisation — within each format×year, the cheapest and most-expensive 10% of chains are dropped (see below).
The core: a matched-model, chain-linked index
This is the heart of the methodology, and the reason the index is credible. Price changes are measured only across car washes priced in both of the two years being compared — never by comparing the average of one year's chains to a different set the next year.
Why this matters: if you simply averaged every chain's price each year and compared, the number would jump around whenever the set of chains changed. A wave of new (often cheaper) chains entering the dataset would drag the average down even if every existing chain raised prices; a big chain dropping out would move it for no real reason. That is composition bias, and it is exactly what a price index must avoid.
The fix is the standard matched-model ("same-store") chain-linked construction. For each adjacent year pair, define the matched set as the chains with a (guard-passing) price in both years. For each such chain, compute its price relative — this year's price divided by last year's. The link factor for the year is the location-weighted geometric mean of those relatives. A geometric mean is used because prices are multiplicative and it is symmetric to the base choice. Entrants and exits are not in the matched set and contribute nothing to the link.
The yearly links are then multiplied ("chain-linked") outward from the 2020 = 100 base — forward for later years, backward for earlier years. Each step is a clean same-store comparison; chaining them gives a continuous series robust to the panel changing composition over time. The "n" reported with each year is the location footprint — the sum of the priced chains' store counts that year — not a chain count.
Weighting, post-stratification, winsorisation
Within each link, chains are weighted by how many locations they operated that year — reconstructed from archived store-locator pages and anchored to the chain's current count, so a chain priced in 2015 is weighted by its smaller 2015 footprint, not today's. A 250-store chain's price change counts far more than a 3-store chain's.
The priced panel is then post-stratified: chains are re-weighted so each size class carries its share of the known universe's locations — including the JS-gated chains we track but can't price — correcting for the priced panel skewing toward smaller, more-easily-archived operators. Finally, winsorisation drops the top and bottom 10% of chains within each format×year, cross-sectionally (never pooled across years), so a single mispriced operator can't swing the index. Trimming changes the headline by only ~0.3 points, which is itself evidence the index isn't outlier-driven.
What the index shows — national
The national all-format index and the express-tunnel cut, 2020 = 100:
| Year | All-format index | Express index | Avg. membership ($/mo) | n (locations) |
|---|---|---|---|---|
| 2015 | 88.3 | 95.4 | $27.73 | 267 |
| 2016 | 92.7 | 96.3 | $28.27 | 390 |
| 2017 | 92.8 | 95.2 | $27.88 | 384 |
| 2018 | 94.2 | 90.0 | $27.54 | 443 |
| 2019 | 96.1 | 90.2 | $33.72 | 808 |
| 2020 | 100.0 | 100.0 | $30.47 | 895 |
| 2021 | 101.0 | 103.4 | $31.16 | 723 |
| 2022 | 104.6 | 111.5 | $32.74 | 920 |
| 2023 | 106.8 | 113.5 | $30.42 | 797 |
| 2024 | 110.7 | 115.2 | $33.74 | 865 |
| 2025 | 108.4 | 114.8 | $30.28 | 740 |
| 2026 | 116.1 | 123.5 | $34.00 | 757 |
Two stories sit on top of each other. The all-format line rose steadily from the 2020 base to 116.1 in 2026 (+16%), with a single down year in 2025 before a sharp 2026 step-up. The express-tunnel line is more dramatic: express memberships were priced below their 2020 level through 2017–2019 (the land-grab era of cheap introductory unlimited plans), then climbed to 123.5 by 2026 (+23%). Express operators spent the late 2010s buying members with low prices and the 2020s raising them.
The dollar levels confirm the order of magnitude without being the trend signal: the average advertised unlimited membership sat around $30–$34/month across the period, with the 2026 average at $34.00 (base tier $24.16, premium tier $43.29). Because levels are composition-sensitive, they wobble year to year (e.g. 2019→2020 levels fell while the index rose, as the panel grew ~10% that year with lower-priced new entrants) — which is precisely why the matched-model index, not the average price, is the headline number.
What the index shows — regional
Four US-Census regional indices are built with the same machinery plus geographic attribution: a multi-region chain isn't dumped onto its HQ region but split across the regions it actually operates in, weighted by its footprint in each. Because regional panels are thinner (especially before 2020), the regional breakout is shown from 2020 onward. All-format, 2020 = 100 → 2026:
| Region | 2020 | 2026 | Change |
|---|---|---|---|
| Midwest | 100.0 | 128.6 | +29% |
| Northeast | 100.0 | 121.1 | +21% |
| South | 100.0 | 109.0 | +9% |
| West | 100.0 | 99.3 | −1% |
The Midwest and Northeast drove national membership inflation; the South was moderate; the West was essentially flat over the period. (The express regional cuts are thinner still and noisier — the Midwest express series in particular rests on a small matched panel and should be read with that caveat.)
Validation against ground truth
A list-price index needs an external check, and the cleanest one is Mister Car Wash: a publicly traded, pure-play express operator that discloses Unlimited-Wash-Club revenue per member (ARPU) in its SEC filings.
- Mister's disclosed ARPU rose ≈+10% from 2021 to 2025.
- The WMPI express cut rose ≈+11% over the same window (index 103.4 → 114.8) — an apples-to-apples match, since Mister is express.
- The all-format index is cooler (≈+7% over 2021–2025), consistent with full-service chains pricing their memberships more softly than express tunnels.
A second signal: Take 5 (via Driven Brands) discloses car-wash same-store sales that were negative every year 2022–2024, corroborating that realised pricing ran below list pricing — i.e. the recent list-price index is an upper bound on what members actually paid. Notably, before the partial-capture guards were added, the index ran roughly twice as hot as ARPU; the de-biased index closes that gap, which is evidence the guards are removing real artifacts rather than signal.
Limitations
- List prices, not realised ARPU. We extract advertised prices; promotions, free months, and tier mix mean members pay less. Treat the index as an upper bound on realised price growth, especially 2025–26.
- JS-gated chains are unpriceable. Several of the largest express chains serve per-location prices behind a geolocation-gated API with no chain-level price in the archive. They are represented statistically via post-stratification but contribute no extracted prices.
- Thin years and regions. Early years and individual regions have fewer priced chains; the matched-pair index is robust to composition but noisier when the matched set is small. Regional cuts before 2020 are not shown publicly for this reason.
- Archive completeness. Prices exist only where the Wayback Machine captured a pricing page; gaps and partial captures are handled by the union step and the four guards but cannot be fully eliminated.
- Discovery-based universe. The registry is assembled by research sweeps, not a single citable third-party "Top-N" list; coverage of the long tail is broad but not exhaustive.
See the index
The live Car Wash Membership Pricing Index shows the current index values and how they've moved over time for both the all-format and express-tunnel series. This article is the full methodology behind it; the index is rebuilt as new archived pricing is extracted and the priced panel grows.