{
 "published": "2026-09-26",
 "ons": {
  "hhfce_2025": 6655,
  "hhfce_2024": 6403,
  "hhfce_2019": 5993,
  "hhfce_2020": 4130,
  "hhfce_1997": 2079,
  "hhfce_2009": 4227,
  "hhfce_2010": 4370,
  "cvm_2025": 6441,
  "cvm_2019": 6459,
  "cvm_2024": 6297,
  "q_2026_1": 1715,
  "q_2025_1": 1634,
  "gdp_2025": 3033866,
  "gdp_2024": 2890254,
  "hhfce_total_2025": 1776550,
  "share_gdp_2025": 0.219,
  "share_hhfce_2025": 0.375,
  "share_gdp_2009": 0.271,
  "per_day": 18.2,
  "per_second": 211,
  "per_household": 230,
  "per_adult_man": 250,
  "households_m": 29.0,
  "adult_men_18plus": 26625856,
  "men_16plus_2024": 27528909,
  "men_16plus_2004": 23298771,
  "narcotics_2025": 3058,
  "next_release": "2026-09-30",
  "blue_book": "2026-10-30"
 },
 "ons_method": {
  "london_offstreet_2004": 7000,
  "london_street_2004": 115,
  "uk_workers_2004": 58000,
  "workers_2009": 60879,
  "clients_per_week": 25,
  "clients_scenarios": "20, 25 or 30",
  "weeks_original": 52,
  "weeks_since_2016": 40,
  "price_2004": 55,
  "price_2009": 67.16,
  "first_2009_total": 5300,
  "drugs_2009": 4400,
  "combined_2009": 9700,
  "combined_share_2009": 0.7,
  "foi_2010_prostitution_share": 0.35,
  "foi_2010_hhfce": 5600,
  "implied_workers_2025": 68500,
  "implied_clients_per_year": 1000,
  "implied_price_2025": 97,
  "implied_visits_m": 68,
  "implied_visits_per_week_m": 1.3,
  "implied_per_worker": 97000,
  "implied_visits_per_man": 2.6,
  "clothes_eur": 125,
  "condom_eur": 0.5
 },
 "model_inputs": {
  "workers": 102000,
  "workers_low": 102000,
  "workers_high": 102000,
  "clients_low": 4,
  "clients_central": 6,
  "clients_high": 10,
  "weeks": 40,
  "price_low": 100,
  "price_central": 120,
  "price_high": 140,
  "ons_method_our_headcount": 9.9,
  "price_evidence": {
   "erobella_snapshot_median_1h_incall": 140,
   "erobella_snapshot_median_30min": 80,
   "erobella_pricing_study_2024_mean": 161.77,
   "adultwork_2022_median_1h_women": 120,
   "street_2015": "20 to 40",
   "ons_implied_2025": 97
  }
 },
 "model_results": {
  "central": 2937600000,
  "low": 1632000000,
  "high": 5712000000,
  "central_bn": 2.9,
  "low_bn": 1.6,
  "high_bn": 5.7,
  "central_m": 2938,
  "per_worker": 28800,
  "per_worker_low": 16000,
  "per_worker_high": 56000,
  "encounters_m": 24.5,
  "encounters_week_k": 471,
  "clients_year": 240,
  "ons_ratio": 2.3,
  "ons_gap_bn": 3.7,
  "central_share_gdp": 0.097,
  "ons_method_ours_bn": 9.9,
  "brooks_gordon_bn": 5.1,
  "workers_low_bn": 2.2,
  "workers_high_bn": 3.7,
  "per_day_m": 8.0,
  "per_adult_man": 110,
  "encounters_per_man": 0.92
 },
 "regions": [
  {
   "region": "London",
   "live": 8573,
   "share_listings": 28.6,
   "price_idx": 107,
   "share_value": 31.1,
   "value_m": 914,
   "per100k": 94.0,
   "views_per_profile": 103.8,
   "med_in60": 150.0,
   "med_out60": 200.0
  },
  {
   "region": "South East",
   "live": 3301,
   "share_listings": 11.0,
   "price_idx": 93,
   "share_value": 10.4,
   "value_m": 305,
   "per100k": 34.1,
   "views_per_profile": 204.4,
   "med_in60": 130.0,
   "med_out60": 170.0
  },
  {
   "region": "North West",
   "live": 3199,
   "share_listings": 10.7,
   "price_idx": 100,
   "share_value": 10.8,
   "value_m": 318,
   "per100k": 41.2,
   "views_per_profile": 229.9,
   "med_in60": 140.0,
   "med_out60": 180.0
  },
  {
   "region": "West Midlands",
   "live": 2786,
   "share_listings": 9.3,
   "price_idx": 93,
   "share_value": 8.8,
   "value_m": 257,
   "per100k": 44.9,
   "views_per_profile": 134.8,
   "med_in60": 130.0,
   "med_out60": 180.0
  },
  {
   "region": "East of England",
   "live": 2413,
   "share_listings": 8.1,
   "price_idx": 93,
   "share_value": 7.6,
   "value_m": 223,
   "per100k": 36.5,
   "views_per_profile": 115.8,
   "med_in60": 130.0,
   "med_out60": 175.0
  },
  {
   "region": "Yorkshire and The Humber",
   "live": 2035,
   "share_listings": 6.8,
   "price_idx": 93,
   "share_value": 6.4,
   "value_m": 188,
   "per100k": 35.9,
   "views_per_profile": 275.5,
   "med_in60": 130.0,
   "med_out60": 170.0
  },
  {
   "region": "South West",
   "live": 1946,
   "share_listings": 6.5,
   "price_idx": 96,
   "share_value": 6.4,
   "value_m": 187,
   "per100k": 32.9,
   "views_per_profile": 421.4,
   "med_in60": 135.0,
   "med_out60": 180.0
  },
  {
   "region": "East Midlands",
   "live": 1818,
   "share_listings": 6.1,
   "price_idx": 86,
   "share_value": 5.3,
   "value_m": 155,
   "per100k": 35.7,
   "views_per_profile": 231.7,
   "med_in60": 120.0,
   "med_out60": 160.0
  },
  {
   "region": "North East",
   "live": 864,
   "share_listings": 2.9,
   "price_idx": 93,
   "share_value": 2.7,
   "value_m": 80,
   "per100k": 31.3,
   "views_per_profile": 333.8,
   "med_in60": 130.0,
   "med_out60": 180.0
  },
  {
   "region": "Scotland",
   "live": 1913,
   "share_listings": 6.4,
   "price_idx": 100,
   "share_value": 6.5,
   "value_m": 190,
   "per100k": 34.5,
   "views_per_profile": 361.1,
   "med_in60": 140.0,
   "med_out60": 200.0
  },
  {
   "region": "Wales",
   "live": 735,
   "share_listings": 2.5,
   "price_idx": 107,
   "share_value": 2.7,
   "value_m": 78,
   "per100k": 23.1,
   "views_per_profile": 315.8,
   "med_in60": 150.0,
   "med_out60": 170.0
  },
  {
   "region": "Northern Ireland",
   "live": 383,
   "share_listings": 1.3,
   "price_idx": 107,
   "share_value": 1.4,
   "value_m": 41,
   "per100k": 19.9,
   "views_per_profile": 111.9,
   "med_in60": 150.0,
   "med_out60": 200.0
  }
 ],
 "districts": [
  {
   "district": "Westminster",
   "region": "London",
   "live": 1868,
   "priced": 374,
   "med_in60": 200.0,
   "p25_in60": 150.0,
   "p75_in60": 250.0,
   "med_out60": 267.5,
   "med_in30": 100.0
  },
  {
   "district": "Birmingham",
   "region": "West Midlands",
   "live": 1274,
   "priced": 312,
   "med_in60": 140.0,
   "p25_in60": 117.5,
   "p75_in60": 160.0,
   "med_out60": 180.0,
   "med_in30": 80.0
  },
  {
   "district": "Manchester",
   "region": "North West",
   "live": 939,
   "priced": 208,
   "med_in60": 140.0,
   "p25_in60": 120.0,
   "p75_in60": 160.0,
   "med_out60": 180.0,
   "med_in30": 80.0
  },
  {
   "district": "Glasgow City",
   "region": "Scotland",
   "live": 644,
   "priced": 195,
   "med_in60": 140.0,
   "p25_in60": 120.0,
   "p75_in60": 160.0,
   "med_out60": 200.0,
   "med_in30": 80.0
  },
  {
   "district": "Leeds",
   "region": "Yorkshire and The Humber",
   "live": 630,
   "priced": 191,
   "med_in60": 140.0,
   "p25_in60": 120.0,
   "p75_in60": 160.0,
   "med_out60": 180.0,
   "med_in30": 80.0
  },
  {
   "district": "Liverpool",
   "region": "North West",
   "live": 626,
   "priced": 170,
   "med_in60": 150.0,
   "p25_in60": 120.0,
   "p75_in60": 160.0,
   "med_out60": 180.0,
   "med_in30": 80.0
  },
  {
   "district": "Tower Hamlets",
   "region": "London",
   "live": 574,
   "priced": 124,
   "med_in60": 160.0,
   "p25_in60": 130.0,
   "p75_in60": 200.0,
   "med_out60": 220.0,
   "med_in30": 100.0
  },
  {
   "district": "Kensington and Chelsea",
   "region": "London",
   "live": 490,
   "priced": 143,
   "med_in60": 200.0,
   "p25_in60": 160.0,
   "p75_in60": 300.0,
   "med_out60": 300.0,
   "med_in30": 130.0
  },
  {
   "district": "Camden",
   "region": "London",
   "live": 466,
   "priced": 230,
   "med_in60": 160.0,
   "p25_in60": 132.5,
   "p75_in60": 220.0,
   "med_out60": 200.0,
   "med_in30": 100.0
  },
  {
   "district": "Leicester",
   "region": "East Midlands",
   "live": 452,
   "priced": 104,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 140.0,
   "med_out60": 170.0,
   "med_in30": 70.0
  },
  {
   "district": "Newham",
   "region": "London",
   "live": 426,
   "priced": 62,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 150.0,
   "med_out60": 180.0,
   "med_in30": 80.0
  },
  {
   "district": "Bristol, City of",
   "region": "South West",
   "live": 407,
   "priced": 115,
   "med_in60": 140.0,
   "p25_in60": 120.0,
   "p75_in60": 150.0,
   "med_out60": 180.0,
   "med_in30": 80.0
  },
  {
   "district": "Nottingham",
   "region": "East Midlands",
   "live": 383,
   "priced": 79,
   "med_in60": 130.0,
   "p25_in60": 100.0,
   "p75_in60": 150.0,
   "med_out60": 180.0,
   "med_in30": 80.0
  },
  {
   "district": "City of Edinburgh",
   "region": "Scotland",
   "live": 369,
   "priced": 109,
   "med_in60": 150.0,
   "p25_in60": 130.0,
   "p75_in60": 180.0,
   "med_out60": 200.0,
   "med_in30": 80.0
  },
  {
   "district": "Newcastle upon Tyne",
   "region": "North East",
   "live": 352,
   "priced": 84,
   "med_in60": 130.0,
   "p25_in60": 120.0,
   "p75_in60": 160.0,
   "med_out60": 180.0,
   "med_in30": 77.5
  },
  {
   "district": "Cardiff",
   "region": "Wales",
   "live": 347,
   "priced": 79,
   "med_in60": 150.0,
   "p25_in60": 115.0,
   "p75_in60": 170.0,
   "med_out60": 180.0,
   "med_in30": 90.0
  },
  {
   "district": "Croydon",
   "region": "London",
   "live": 344,
   "priced": 54,
   "med_in60": 130.0,
   "p25_in60": 100.0,
   "p75_in60": 150.0,
   "med_out60": 160.0,
   "med_in30": 80.0
  },
  {
   "district": "Coventry",
   "region": "West Midlands",
   "live": 322,
   "priced": 69,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 140.0,
   "med_out60": null,
   "med_in30": 70.0
  },
  {
   "district": "Sheffield",
   "region": "Yorkshire and The Humber",
   "live": 317,
   "priced": 69,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 150.0,
   "med_out60": 165.0,
   "med_in30": 70.0
  },
  {
   "district": "Brent",
   "region": "London",
   "live": 316,
   "priced": 54,
   "med_in60": 120.0,
   "p25_in60": 120.0,
   "p75_in60": 150.0,
   "med_out60": 150.0,
   "med_in30": 70.0
  },
  {
   "district": "Bournemouth, Christchurch and Poole",
   "region": "South West",
   "live": 310,
   "priced": 95,
   "med_in60": 130.0,
   "p25_in60": 120.0,
   "p75_in60": 150.0,
   "med_out60": 180.0,
   "med_in30": 80.0
  },
  {
   "district": "Brighton and Hove",
   "region": "South East",
   "live": 300,
   "priced": 86,
   "med_in60": 130.0,
   "p25_in60": 120.0,
   "p75_in60": 150.0,
   "med_out60": 180.0,
   "med_in30": 80.0
  },
  {
   "district": "Belfast",
   "region": "Northern Ireland",
   "live": 289,
   "priced": 49,
   "med_in60": 150.0,
   "p25_in60": 120.0,
   "p75_in60": 200.0,
   "med_out60": null,
   "med_in30": 80.0
  },
  {
   "district": "Southampton",
   "region": "South East",
   "live": 286,
   "priced": 85,
   "med_in60": 130.0,
   "p25_in60": 120.0,
   "p75_in60": 150.0,
   "med_out60": 200.0,
   "med_in30": 80.0
  },
  {
   "district": "West Northamptonshire",
   "region": "East Midlands",
   "live": 242,
   "priced": 46,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 140.0,
   "med_out60": 160.0,
   "med_in30": 70.0
  },
  {
   "district": "Barnet",
   "region": "London",
   "live": 241,
   "priced": 47,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 150.0,
   "med_out60": null,
   "med_in30": 70.0
  },
  {
   "district": "Aberdeen City",
   "region": "Scotland",
   "live": 240,
   "priced": 59,
   "med_in60": 140.0,
   "p25_in60": 120.0,
   "p75_in60": 150.0,
   "med_out60": null,
   "med_in30": 80.0
  },
  {
   "district": "Milton Keynes",
   "region": "South East",
   "live": 230,
   "priced": 59,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 140.0,
   "med_out60": null,
   "med_in30": 77.5
  },
  {
   "district": "Kingston upon Hull, City of",
   "region": "Yorkshire and The Humber",
   "live": 228,
   "priced": 47,
   "med_in60": 120.0,
   "p25_in60": 110.0,
   "p75_in60": 150.0,
   "med_out60": null,
   "med_in30": 72.5
  },
  {
   "district": "Portsmouth",
   "region": "South East",
   "live": 215,
   "priced": 53,
   "med_in60": 130.0,
   "p25_in60": 120.0,
   "p75_in60": 150.0,
   "med_out60": 160.0,
   "med_in30": 80.0
  },
  {
   "district": "Hammersmith and Fulham",
   "region": "London",
   "live": 215,
   "priced": 82,
   "med_in60": 200.0,
   "p25_in60": 132.5,
   "p75_in60": 290.0,
   "med_out60": 300.0,
   "med_in30": 110.0
  },
  {
   "district": "Derby",
   "region": "East Midlands",
   "live": 202,
   "priced": 42,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 150.0,
   "med_out60": null,
   "med_in30": 70.0
  },
  {
   "district": "Stoke-on-Trent",
   "region": "West Midlands",
   "live": 185,
   "priced": 43,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 145.0,
   "med_out60": null,
   "med_in30": null
  },
  {
   "district": "Plymouth",
   "region": "South West",
   "live": 177,
   "priced": 65,
   "med_in60": 150.0,
   "p25_in60": 120.0,
   "p75_in60": 150.0,
   "med_out60": 200.0,
   "med_in30": 80.0
  },
  {
   "district": "Bradford",
   "region": "Yorkshire and The Humber",
   "live": 164,
   "priced": 40,
   "med_in60": 120.0,
   "p25_in60": 100.0,
   "p75_in60": 140.0,
   "med_out60": null,
   "med_in30": null
  },
  {
   "district": "Middlesbrough",
   "region": "North East",
   "live": 147,
   "priced": 42,
   "med_in60": 140.0,
   "p25_in60": 122.5,
   "p75_in60": 165.0,
   "med_out60": null,
   "med_in30": null
  },
  {
   "district": "Islington",
   "region": "London",
   "live": 147,
   "priced": 47,
   "med_in60": 150.0,
   "p25_in60": 120.0,
   "p75_in60": 200.0,
   "med_out60": 250.0,
   "med_in30": null
  }
 ],
 "rates": {
  "in30": {
   "n": 6108,
   "median": 80.0,
   "p25": 70.0,
   "p75": 100.0,
   "mean": 90
  },
  "out30": {
   "n": 2669,
   "median": 100.0,
   "p25": 80.0,
   "p75": 150.0,
   "mean": 121
  },
  "in60": {
   "n": 7052,
   "median": 140.0,
   "p25": 120.0,
   "p75": 160.0,
   "mean": 151
  },
  "out60": {
   "n": 5844,
   "median": 180.0,
   "p25": 150.0,
   "p75": 250.0,
   "mean": 204
  },
  "in120": {
   "n": 3567,
   "median": 260.0,
   "p25": 200.0,
   "p75": 320.0,
   "mean": 292
  },
  "out120": {
   "n": 3615,
   "median": 300.0,
   "p25": 240.0,
   "p75": 400.0,
   "mean": 342
  },
  "in_on": {
   "n": 2509,
   "median": 1000.0,
   "p25": 750.0,
   "p75": 1400.0,
   "mean": 1123
  },
  "out_on": {
   "n": 3103,
   "median": 1000.0,
   "p25": 800.0,
   "p75": 1500.0,
   "mean": 1247
  },
  "profiles_with_any_hourly": 8603,
  "in60_hist": [
   {
    "from": 20,
    "n": 16
   },
   {
    "from": 40,
    "n": 82
   },
   {
    "from": 60,
    "n": 123
   },
   {
    "from": 80,
    "n": 293
   },
   {
    "from": 100,
    "n": 1160
   },
   {
    "from": 120,
    "n": 1751
   },
   {
    "from": 140,
    "n": 1626
   },
   {
    "from": 160,
    "n": 438
   },
   {
    "from": 180,
    "n": 314
   },
   {
    "from": 200,
    "n": 642
   },
   {
    "from": 220,
    "n": 45
   },
   {
    "from": 240,
    "n": 236
   },
   {
    "from": 260,
    "n": 9
   },
   {
    "from": 280,
    "n": 10
   },
   {
    "from": 300,
    "n": 150
   },
   {
    "from": 320,
    "n": 3
   },
   {
    "from": 340,
    "n": 35
   },
   {
    "from": 360,
    "n": 1
   },
   {
    "from": 380,
    "n": 4
   },
   {
    "from": 400,
    "n": 114
   }
  ],
  "london_med_in60": 150.0,
  "rest_med_in60": 130.0
 },
 "demand_by_hour_pct": [
  6.13,
  4.84,
  3.56,
  2.62,
  2.04,
  1.82,
  1.97,
  2.59,
  3.24,
  3.78,
  4.09,
  4.21,
  4.34,
  4.34,
  4.49,
  4.55,
  4.95,
  4.92,
  5.04,
  4.88,
  5.12,
  4.97,
  5.42,
  6.09
 ],
 "comparators_same_dataset": [
  {
   "label": "Hairdressing and grooming",
   "value": 10263,
   "code": "12.1.1"
  },
  {
   "label": "Prostitution",
   "value": 6655,
   "code": "12.2",
   "hi": true
  },
  {
   "label": "Vets and pet services",
   "value": 6637,
   "code": "09.3.5"
  },
  {
   "label": "Beer bought in shops",
   "value": 6628,
   "code": "02.1.3"
  },
  {
   "label": "Dental services",
   "value": 6254,
   "code": "06.2.2"
  },
  {
   "label": "Domestic cleaners, gardeners",
   "value": 4838,
   "code": "05.6.2"
  },
  {
   "label": "Books",
   "value": 4200,
   "code": "09.5.1"
  },
  {
   "label": "Newspapers",
   "value": 3765,
   "code": "09.5.2"
  },
  {
   "label": "Illegal drugs",
   "value": 3058,
   "code": "02.3"
  }
 ],
 "comparators_other": [
  {
   "label": "UK overseas aid, 2025",
   "value": 13095,
   "note": "FCDO, final ODA"
  },
  {
   "label": "Farming income (TIFF), 2025",
   "value": 8422,
   "note": "Defra"
  },
  {
   "label": "Tobacco duty, 2025-26",
   "value": 7567,
   "note": "HMRC receipts"
  },
  {
   "label": "Premier League club revenue, 2024-25",
   "value": 6800,
   "note": "Deloitte"
  },
  {
   "label": "Prostitution (ONS), 2025",
   "value": 6655,
   "note": "ONS Consumer Trends",
   "hi": true
  },
  {
   "label": "Land-based gambling, 2025-26",
   "value": 4900,
   "note": "Gambling Commission GGY"
  },
  {
   "label": "BBC licence fee income, 2025-26",
   "value": 3879,
   "note": "BBC annual report"
  },
  {
   "label": "NHS dentistry, England, 2023-24",
   "value": 3110,
   "note": "NAO"
  },
  {
   "label": "Fish landed by UK boats, 2024",
   "value": 1160,
   "note": "MMO, first-sale value"
  },
  {
   "label": "UK cinema box office, 2025",
   "value": 997,
   "note": "BFI"
  }
 ],
 "international": [
  {
   "country": "United Kingdom",
   "figure": "\u00a36.66bn spending in 2025. Value added was 0.35% of GDP in 2010",
   "share": "0.22%",
   "basis": "ONS model: a 2004 count grown with the male population, 25 clients a week",
   "counts": true
  },
  {
   "country": "Italy",
   "figure": "\u20ac4.8bn spending and \u20ac4.1bn value added in 2023",
   "share": "0.19%",
   "basis": "Istat: workers by type \u00d7 services a day \u00d7 days worked \u00d7 price",
   "counts": true
  },
  {
   "country": "Spain",
   "figure": "0.35% of GDP in 2010, about \u20ac3.8bn",
   "share": "0.35%",
   "basis": "INE, published once, in 2014",
   "counts": true
  },
  {
   "country": "Netherlands",
   "figure": "\u20ac0.7bn value added in 2021",
   "share": "0.08%",
   "basis": "CBS: licence records and advert counts, with prices per service",
   "counts": true
  },
  {
   "country": "Ireland",
   "figure": "0.72% of GDP in 2013, for drugs, prostitution and smuggling together",
   "share": "n/a",
   "basis": "CSO: no separate figure published",
   "counts": true
  },
  {
   "country": "Poland",
   "figure": "0.04% of GDP, pimping only",
   "share": "0.04%",
   "basis": "GUS: selling sex is legal there, so it counts as part of the hidden economy",
   "counts": true
  },
  {
   "country": "Sweden",
   "figure": "SEK 520m value added in 2006",
   "share": "0.02%",
   "basis": "SCB. It fell after Sweden banned buying sex in 1999",
   "counts": true
  },
  {
   "country": "Germany",
   "figure": "No separate figure",
   "share": "n/a",
   "basis": "Destatis: sex work is legal, so it was already in GDP",
   "counts": false
  },
  {
   "country": "France",
   "figure": "Street prostitution left out",
   "share": "n/a",
   "basis": "INSEE: coerced sex isn't a transaction, so it isn't counted",
   "counts": false
  },
  {
   "country": "United States",
   "figure": "Not counted. The BEA says it would add about $10bn a year, as of 2017",
   "share": "n/a",
   "basis": "BEA working paper",
   "counts": false
  },
  {
   "country": "Canada, Australia",
   "figure": "Not counted",
   "share": "n/a",
   "basis": "StatCan and the ABS leave out illegal activity",
   "counts": false
  }
 ],
 "licence": "CC BY 4.0, credit Erobella and link to https://erobella.com/research/sex-work-gdp/"
}