Loading data...
The all-sources figure holds each source at a constant share of the sample, so month-to-month movement reflects prices rather than how much of each site a given scrape reached. A dashed rule marks where the set of contributing sources changes — the step across it is coverage, not a price move, so no change is reported there.
Prices are drawn from three sources (Tryst, AdultWork, EuroGirls) and standardized to a comparable hourly rate in USD. Multi-currency rates are converted using historical exchange rates on the scrape date.
When a profile lists a 1-hour incall rate, that rate is used directly.
When it isn't available, we fall back through 1h outcall, then longer
durations (2h, 3h, 4h, 6h, 12h, overnight, 24h). Dividing a longer-duration
rate by its hours consistently under-states the comparable hourly price
because longer packages carry a per-hour discount, so each derived value
is multiplied by a per-source, per-duration scaling factor — the median
rate_1h / (rate_duration / hours) ratio computed from profiles
that list both.
The headline Global Median Hourly Price is the median over every priced profile worldwide in the selected month — one profile, one observation. It is population-weighted by construction, so the largest markets carry the most weight in it. The per-country, per-region and per-city figures elsewhere on the page are medians within those markets, and a market is only shown once it has at least five priced profiles.
Sources are added to the panel over time — AdultWork and EuroGirls first report in April 2026, where Tryst alone had covered the months before — and each scrape reaches a different share of each site. Because the three sit at different price levels, both would otherwise move the combined figure without any price changing. The all-sources trend therefore weights each source to a constant share of the sample, pinned to the most recent month, so that month remains a plain unweighted median and matches the headline above. Holding the mix constant, prices rose 5.8% between April and August 2026; the unadjusted figure would read 13.2%, most of it coverage.
Every row carries an hourly_price_source label
(e.g. observed_1h_incall, derived_2h_outcall,
derived_overnight_incall) so the provenance of each estimate
is traceable. Source-specific attributes (AdultWork's is_enhanced,
EuroGirls' weight_kg / languages) are only available
under their originating source — they are deliberately omitted from the
combined "All sources" view to avoid misleading aggregates.