{
  "city": "bordeaux",
  "generated_at": "2026-05-05T10:05:07.184171",
  "period": "2026-05",
  "total": {
    "count": 714,
    "price": {
      "mean": 889,
      "median": 790,
      "p25": 650,
      "p75": 1040,
      "min": 150,
      "max": 2630,
      "sample_size": 714
    },
    "surface": {
      "mean": 44,
      "median": 35,
      "sample_size": 714
    },
    "price_per_m2_median": 22.6
  },
  "by_type": {
    "appartement": {
      "count": 688,
      "price": {
        "mean": 877,
        "median": 790,
        "p25": 650,
        "p75": 1000,
        "min": 403,
        "max": 2630,
        "sample_size": 688
      },
      "surface": {
        "mean": 43,
        "median": 35,
        "sample_size": 688
      },
      "price_per_m2_median": 22.9
    },
    "maison": {
      "count": 21,
      "price": {
        "mean": 1374,
        "median": 1260,
        "p25": 1070,
        "p75": 1750,
        "min": 450,
        "max": 2133,
        "sample_size": 21
      },
      "surface": {
        "mean": 79,
        "median": 72,
        "sample_size": 21
      },
      "price_per_m2_median": 18.8
    }
  },
  "by_rooms": {
    "T1": {
      "count": 299,
      "price": {
        "mean": 659,
        "median": 650,
        "p25": 570,
        "p75": 740,
        "min": 150,
        "max": 985,
        "sample_size": 299
      },
      "surface": {
        "mean": 25,
        "median": 25,
        "sample_size": 299
      },
      "price_per_m2_median": 26.3
    },
    "T2": {
      "count": 213,
      "price": {
        "mean": 884,
        "median": 869,
        "p25": 750,
        "p75": 980,
        "min": 490,
        "max": 1450,
        "sample_size": 213
      },
      "surface": {
        "mean": 42,
        "median": 42,
        "sample_size": 213
      },
      "price_per_m2_median": 21.2
    },
    "T3": {
      "count": 125,
      "price": {
        "mean": 1229,
        "median": 1223,
        "p25": 1055,
        "p75": 1390,
        "min": 650,
        "max": 2100,
        "sample_size": 125
      },
      "surface": {
        "mean": 67,
        "median": 65,
        "sample_size": 125
      },
      "price_per_m2_median": 18.2
    },
    "T4": {
      "count": 33,
      "price": {
        "mean": 1473,
        "median": 1495,
        "p25": 1250,
        "p75": 1750,
        "min": 570,
        "max": 2271,
        "sample_size": 33
      },
      "surface": {
        "mean": 86,
        "median": 85,
        "sample_size": 33
      },
      "price_per_m2_median": 17.2
    },
    "T5": {
      "count": 9,
      "price": {
        "mean": 1625,
        "median": 1700,
        "p25": 1499,
        "p75": 1884,
        "min": 577,
        "max": 2630,
        "sample_size": 9
      },
      "surface": {
        "mean": 122,
        "median": 120,
        "sample_size": 9
      },
      "price_per_m2_median": 13.6
    }
  },
  "by_furnished": {
    "meuble": {
      "count": 454,
      "price": {
        "mean": 901,
        "median": 800,
        "p25": 674,
        "p75": 1048,
        "min": 442,
        "max": 2630,
        "sample_size": 454
      },
      "surface": {
        "mean": 41,
        "median": 34,
        "sample_size": 454
      },
      "price_per_m2_median": 24.3
    },
    "vide": {
      "count": 249,
      "price": {
        "mean": 880,
        "median": 790,
        "p25": 630,
        "p75": 1050,
        "min": 150,
        "max": 2100,
        "sample_size": 249
      },
      "surface": {
        "mean": 48,
        "median": 42,
        "sample_size": 249
      },
      "price_per_m2_median": 19.7
    }
  },
  "by_quartier": {
    "Centre": {
      "count": 51,
      "price": {
        "mean": 928,
        "median": 900,
        "p25": 809,
        "p75": 1060,
        "min": 575,
        "max": 1380,
        "sample_size": 51
      },
      "surface": {
        "mean": 43,
        "median": 42,
        "sample_size": 51
      },
      "price_per_m2_median": 21.0
    },
    "Victor Hugo Saint-Augustin": {
      "count": 42,
      "price": {
        "mean": 910,
        "median": 898,
        "p25": 820,
        "p75": 980,
        "min": 600,
        "max": 1325,
        "sample_size": 42
      },
      "surface": {
        "mean": 44,
        "median": 44,
        "sample_size": 42
      },
      "price_per_m2_median": 20.6
    },
    "Saint-Michel Nansouty Saint-Genès": {
      "count": 39,
      "price": {
        "mean": 805,
        "median": 790,
        "p25": 695,
        "p75": 895,
        "min": 490,
        "max": 1190,
        "sample_size": 39
      },
      "surface": {
        "mean": 38,
        "median": 37,
        "sample_size": 39
      },
      "price_per_m2_median": 21.6
    },
    "Grand Parc Paul Doumer": {
      "count": 31,
      "price": {
        "mean": 902,
        "median": 870,
        "p25": 795,
        "p75": 994,
        "min": 590,
        "max": 1250,
        "sample_size": 31
      },
      "surface": {
        "mean": 42,
        "median": 40,
        "sample_size": 31
      },
      "price_per_m2_median": 22.6
    },
    "Saint-Pierre": {
      "count": 10,
      "price": {
        "mean": 1033,
        "median": 900,
        "p25": 862,
        "p75": 1350,
        "min": 596,
        "max": 1450,
        "sample_size": 10
      },
      "surface": {
        "mean": 47,
        "median": 46,
        "sample_size": 10
      },
      "price_per_m2_median": 20.8
    }
  },
  "by_quartier_type": "T2",
  "distribution": [
    {
      "min": 500,
      "max": 600,
      "count": 79,
      "pct": 10.9
    },
    {
      "min": 600,
      "max": 700,
      "count": 135,
      "pct": 18.7
    },
    {
      "min": 700,
      "max": 800,
      "count": 124,
      "pct": 17.2
    },
    {
      "min": 800,
      "max": 900,
      "count": 83,
      "pct": 11.5
    },
    {
      "min": 900,
      "max": 1000,
      "count": 77,
      "pct": 10.7
    },
    {
      "min": 1000,
      "max": 1100,
      "count": 33,
      "pct": 4.6
    },
    {
      "min": 1100,
      "max": 1200,
      "count": 37,
      "pct": 5.1
    },
    {
      "min": 1200,
      "max": 1300,
      "count": 38,
      "pct": 5.3
    },
    {
      "min": 1300,
      "max": 1400,
      "count": 18,
      "pct": 2.5
    },
    {
      "min": 1400,
      "max": 1500,
      "count": 22,
      "pct": 3.0
    },
    {
      "min": 1500,
      "max": 1600,
      "count": 15,
      "pct": 2.1
    }
  ],
  "by_landlord_type": {
    "pro": {
      "count": 343,
      "price": {
        "mean": 883,
        "median": 790,
        "p25": 650,
        "p75": 1026,
        "min": 403,
        "max": 2271,
        "sample_size": 343
      },
      "surface": {
        "mean": 47,
        "median": 40,
        "sample_size": 343
      },
      "price_per_m2_median": 20.9
    },
    "particulier": {
      "count": 367,
      "price": {
        "mean": 895,
        "median": 795,
        "p25": 650,
        "p75": 1068,
        "min": 150,
        "max": 2630,
        "sample_size": 367
      },
      "surface": {
        "mean": 41,
        "median": 34,
        "sample_size": 367
      },
      "price_per_m2_median": 23.6
    },
    "diff_pct": -0.6
  },
  "vs_encadrement": {
    "plafond_majored_median_eur_m2": 16.8,
    "plafond_majored_min_eur_m2": 13.9,
    "plafond_majored_max_eur_m2": 20.4,
    "observed_median_eur_m2": 19.3,
    "pct_above_plafond": 75.7,
    "sample_size_t2_vide": 70,
    "methodology": "T2 vide. Plafond = médiane majored sur toutes zones et toutes périodes de construction. Observed = médiane prix/m² des T2 vides actifs sur les 10 derniers jours."
  },
  "evolution": {
    "previous_period": null,
    "previous_generated_at": "2026-04-01T00:00:00",
    "count_delta": -187,
    "median_delta_eur": -60,
    "median_delta_pct": -7.1,
    "price_per_m2_delta_eur": 1.0,
    "price_per_m2_delta_pct": 4.6
  }
}