{"id": "DE12", "n": "Heidelberg & Karlsruhe", "c": "Baden-Württemberg, Germany", "official": "Karlsruhe", "cc": "DE", "t": "city", "type_basis": "Eurostat NUTS3 typologies weighted by population: urban 85%, coastal 0%, mountain 22%; median ground height 236 m", "lat": 49.017, "lon": 8.679, "population": 2848413, "peak": 8, "trough": 1, "n_years_crowd": 2, "spread": 2.038, "is_flat": false, "seasonality_pct": 21.301, "hotel_share": 0.833, "rental_share": 0.096, "camping_share": 0.071, "hotel_occupancy_pct": 58.74, "elevation_m": 236.036, "weather_check": {"kind": "stations", "n": 10, "hi_err": 0.25, "lo_err": 0.35, "rain_ratio": 1.08}, "provenance": {"crowd_years": 2, "crowd_first_year": 2024, "crowd_last_year": 2025, "crowd_source": "Eurostat tour_occ_nin2m, 2024–2025", "population_year": 2025, "climate_years": 15, "climate_source": "ERA5 (Copernicus C3S reanalysis) corrected with open national weather-service station observations (11 services), 2011-2025, 0.25 deg", "price_years": null, "platform_years": 2, "platform_first_year": 2024, "platform_last_year": 2025, "platform_source": "Eurostat tour_ce_omn12, 2024–2025", "price_source": null, "type_basis": "Eurostat NUTS3 typologies weighted by population: urban 85%, coastal 0%, mountain 22%; median ground height 236 m", "nuts3_population_coverage": 1.0}, "pli_restaurants_hotels": 112.1, "pli_overall": 109.1, "months": [{"m": 1, "est_share": 0.0, "weather": 55.417, "index": "HCI:Urban", "weather_alt": 33.559, "hci_urban": 55.417, "hci_beach": 33.559, "good_days": 2.054, "good_days_urban": 2.054, "good_days_beach": 0.049, "tx_mean": 6.166, "tx_max_median": 13.6, "tn_mean": -0.509, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 2.02, "p35": 0.0, "p30": 0.0, "rain_days": 13.002, "rain_days_p90": 17.351, "rain_withheld": null, "climate_years": 15, "k": 6.533, "visitors_night": 18594.065, "dom_share": 0.802, "stage": 0.490695, "share_pct": 0.649, "cost_hotel_swing": -3.757, "cost_accom_swing": -3.85, "cost_package_swing": -19.285, "cost_air_swing": -11.626, "plat_night": 2440.177, "plat_ratio": 0.131, "plat_dom_share": 0.608, "share_pct_upper": 0.734, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 2, "est_share": 0.0, "weather": 59.544, "index": "HCI:Urban", "weather_alt": 39.121, "hci_urban": 59.544, "hci_beach": 39.121, "good_days": 4.59, "good_days_urban": 4.59, "good_days_beach": 0.69, "tx_mean": 8.151, "tx_max_median": 15.008, "tn_mean": -0.46, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 3.969, "p35": 0.0, "p30": 0.0, "rain_days": 8.545, "rain_days_p90": 15.85, "rain_withheld": null, "climate_years": 15, "k": 7.806, "visitors_night": 22218.549, "dom_share": 0.786, "stage": 0.586336, "share_pct": 0.775, "cost_hotel_swing": -3.428, "cost_accom_swing": -3.563, "cost_package_swing": -12.024, "cost_air_swing": -13.261, "plat_night": 2739.504, "plat_ratio": 0.123, "plat_dom_share": 0.603, "share_pct_upper": 0.869, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 3, "est_share": 0.0, "weather": 66.362, "index": "HCI:Urban", "weather_alt": 49.196, "hci_urban": 66.362, "hci_beach": 49.196, "good_days": 13.389, "good_days_urban": 13.389, "good_days_beach": 4.998, "tx_mean": 12.562, "tx_max_median": 19.963, "tn_mean": 1.897, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 7.441, "p35": 0.0, "p30": 0.0, "rain_days": 9.82, "rain_days_p90": 12.481, "rain_withheld": null, "climate_years": 15, "k": 8.973, "visitors_night": 25540.339, "dom_share": 0.815, "stage": 0.674, "share_pct": 0.889, "cost_hotel_swing": -2.867, "cost_accom_swing": -2.725, "cost_package_swing": -7.5, "cost_air_swing": -3.799, "plat_night": 3202.79, "plat_ratio": 0.125, "plat_dom_share": 0.645, "share_pct_upper": 1.0, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 4, "est_share": 0.0, "weather": 72.772, "index": "HCI:Urban", "weather_alt": 58.507, "hci_urban": 72.772, "hci_beach": 58.507, "good_days": 18.816, "good_days_urban": 18.816, "good_days_beach": 9.703, "tx_mean": 16.638, "tx_max_median": 24.372, "tn_mean": 5.033, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 6.609, "p35": 0.0, "p30": 0.0, "rain_days": 7.865, "rain_days_p90": 12.435, "rain_withheld": null, "climate_years": 15, "k": 10.245, "visitors_night": 29161.983, "dom_share": 0.797, "stage": 0.769554, "share_pct": 1.014, "cost_hotel_swing": -1.529, "cost_accom_swing": -1.425, "cost_package_swing": -4.109, "cost_air_swing": 2.475, "plat_night": 4038.317, "plat_ratio": 0.138, "plat_dom_share": 0.601, "share_pct_upper": 1.153, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 5, "est_share": 0.0, "weather": 76.261, "index": "HCI:Urban", "weather_alt": 65.199, "hci_urban": 76.261, "hci_beach": 65.199, "good_days": 22.728, "good_days_urban": 22.728, "good_days_beach": 14.351, "tx_mean": 20.411, "tx_max_median": 28.921, "tn_mean": 8.776, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 5.242, "p35": 0.0, "p30": 0.067, "rain_days": 10.222, "rain_days_p90": 15.677, "rain_withheld": null, "climate_years": 15, "k": 11.876, "visitors_night": 33805.113, "dom_share": 0.802, "stage": 0.892077, "share_pct": 1.174, "cost_hotel_swing": 2.055, "cost_accom_swing": 1.87, "cost_package_swing": -1.592, "cost_air_swing": -3.219, "plat_night": 4438.661, "plat_ratio": 0.131, "plat_dom_share": 0.616, "share_pct_upper": 1.326, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 6, "est_share": 0.0, "weather": 78.364, "index": "HCI:Urban", "weather_alt": 73.958, "hci_urban": 78.364, "hci_beach": 73.958, "good_days": 23.738, "good_days_urban": 23.738, "good_days_beach": 19.417, "tx_mean": 25.039, "tx_max_median": 33.08, "tn_mean": 13.135, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 6.174, "p35": 0.133, "p30": 0.933, "rain_days": 9.291, "rain_days_p90": 13.907, "rain_withheld": null, "climate_years": 15, "k": 11.933, "visitors_night": 33967.067, "dom_share": 0.783, "stage": 0.896361, "share_pct": 1.179, "cost_hotel_swing": 2.538, "cost_accom_swing": 2.58, "cost_package_swing": 3.439, "cost_air_swing": -2.551, "plat_night": 4351.083, "plat_ratio": 0.128, "plat_dom_share": 0.554, "share_pct_upper": 1.328, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 7, "est_share": 0.0, "weather": 77.934, "index": "HCI:Urban", "weather_alt": 76.565, "hci_urban": 77.934, "hci_beach": 76.565, "good_days": 24.335, "good_days_urban": 24.335, "good_days_beach": 22.369, "tx_mean": 26.575, "tx_max_median": 35.048, "tn_mean": 14.345, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 6.826, "p35": 0.333, "p30": 0.867, "rain_days": 11.792, "rain_days_p90": 14.41, "rain_withheld": null, "climate_years": 15, "k": 12.975, "visitors_night": 36933.629, "dom_share": 0.734, "stage": 0.974655, "share_pct": 1.281, "cost_hotel_swing": 1.16, "cost_accom_swing": 2.574, "cost_package_swing": 13.097, "cost_air_swing": 11.305, "plat_night": 5338.839, "plat_ratio": 0.145, "plat_dom_share": 0.477, "share_pct_upper": 1.463, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 8, "est_share": 0.0, "weather": 77.795, "index": "HCI:Urban", "weather_alt": 76.65, "hci_urban": 77.795, "hci_beach": 76.65, "good_days": 24.458, "good_days_urban": 24.458, "good_days_beach": 22.174, "tx_mean": 26.6, "tx_max_median": 34.791, "tn_mean": 14.221, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 6.875, "p35": 0.333, "p30": 0.933, "rain_days": 8.173, "rain_days_p90": 13.87, "rain_withheld": null, "climate_years": 15, "k": 13.313, "visitors_night": 37894.516, "dom_share": 0.731, "stage": 1.0, "share_pct": 1.314, "cost_hotel_swing": 1.306, "cost_accom_swing": 2.68, "cost_package_swing": 15.054, "cost_air_swing": 3.018, "plat_night": 5554.21, "plat_ratio": 0.147, "plat_dom_share": 0.478, "share_pct_upper": 1.503, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 9, "est_share": 0.0, "weather": 79.353, "index": "HCI:Urban", "weather_alt": 71.141, "hci_urban": 79.353, "hci_beach": 71.141, "good_days": 24.727, "good_days_urban": 24.727, "good_days_beach": 17.445, "tx_mean": 22.066, "tx_max_median": 30.004, "tn_mean": 10.513, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 6.667, "p35": 0.0, "p30": 0.4, "rain_days": 6.455, "rain_days_p90": 13.633, "rain_withheld": null, "climate_years": 15, "k": 12.206, "visitors_night": 34742.017, "dom_share": 0.794, "stage": 0.91683, "share_pct": 1.206, "cost_hotel_swing": 4.062, "cost_accom_swing": 3.027, "cost_package_swing": 9.618, "cost_air_swing": -2.866, "plat_night": 4430.4, "plat_ratio": 0.128, "plat_dom_share": 0.612, "share_pct_upper": 1.357, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 10, "est_share": 0.0, "weather": 70.884, "index": "HCI:Urban", "weather_alt": 55.917, "hci_urban": 70.884, "hci_beach": 55.917, "good_days": 17.584, "good_days_urban": 17.584, "good_days_beach": 6.754, "tx_mean": 16.673, "tx_max_median": 24.199, "tn_mean": 7.041, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 3.332, "p35": 0.0, "p30": 0.0, "rain_days": 11.262, "rain_days_p90": 14.005, "rain_withheld": null, "climate_years": 15, "k": 11.623, "visitors_night": 33083.968, "dom_share": 0.813, "stage": 0.873068, "share_pct": 1.149, "cost_hotel_swing": 1.816, "cost_accom_swing": 1.053, "cost_package_swing": 7.836, "cost_air_swing": 10.544, "plat_night": 4724.419, "plat_ratio": 0.143, "plat_dom_share": 0.638, "share_pct_upper": 1.311, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 11, "est_share": 0.0, "weather": 61.079, "index": "HCI:Urban", "weather_alt": 40.674, "hci_urban": 61.079, "hci_beach": 40.674, "good_days": 6.731, "good_days_urban": 6.731, "good_days_beach": 1.084, "tx_mean": 10.402, "tx_max_median": 17.964, "tn_mean": 2.877, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 2.115, "p35": 0.0, "p30": 0.0, "rain_days": 11.022, "rain_days_p90": 17.075, "rain_withheld": null, "climate_years": 15, "k": 9.383, "visitors_night": 26708.283, "dom_share": 0.808, "stage": 0.704817, "share_pct": 0.93, "cost_hotel_swing": -0.731, "cost_accom_swing": -1.253, "cost_package_swing": -5.793, "cost_air_swing": -5.06, "plat_night": 3306.45, "plat_ratio": 0.124, "plat_dom_share": 0.613, "share_pct_upper": 1.043, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}, {"m": 12, "est_share": 0.0, "weather": 56.354, "index": "HCI:Urban", "weather_alt": 34.296, "hci_urban": 56.354, "hci_beach": 34.296, "good_days": 3.21, "good_days_urban": 3.21, "good_days_beach": 0.153, "tx_mean": 7.492, "tx_max_median": 13.64, "tn_mean": 1.028, "lows_withheld": null, "sea_c": null, "us_pax": null, "us_airports": [], "sunny_days": 2.207, "p35": 0.0, "p30": 0.0, "rain_days": 16.943, "rain_days_p90": 21.49, "rain_withheld": null, "climate_years": 15, "k": 8.65, "visitors_night": 24622.161, "dom_share": 0.769, "stage": 0.649758, "share_pct": 0.858, "cost_hotel_swing": -0.625, "cost_accom_swing": -0.968, "cost_package_swing": 1.26, "cost_air_swing": 15.038, "plat_night": 3993.726, "plat_ratio": 0.162, "plat_dom_share": 0.555, "share_pct_upper": 0.995, "adr_eur": null, "adr_swing": null, "adr_vs_cheapest": null, "adr_source": null, "adr_unit": null, "adr_period": null, "adr_annual_level": null}]}