{
  "city": "nantes",
  "generated_at": "2026-05-05T10:05:07.283737",
  "period": "2026-05",
  "total": {
    "count": 775,
    "price": {
      "mean": 762,
      "median": 690,
      "p25": 550,
      "p75": 880,
      "min": 60,
      "max": 3000,
      "sample_size": 775
    },
    "surface": {
      "mean": 41,
      "median": 35,
      "sample_size": 775
    },
    "price_per_m2_median": 20.3
  },
  "by_type": {
    "appartement": {
      "count": 766,
      "price": {
        "mean": 759,
        "median": 690,
        "p25": 550,
        "p75": 875,
        "min": 350,
        "max": 2270,
        "sample_size": 766
      },
      "surface": {
        "mean": 41,
        "median": 34,
        "sample_size": 766
      },
      "price_per_m2_median": 20.3
    },
    "maison": {
      "count": 6,
      "price": {
        "mean": 995,
        "median": 961,
        "p25": 850,
        "p75": 1128,
        "min": 460,
        "max": 1590,
        "sample_size": 6
      },
      "surface": {
        "mean": 52,
        "median": 54,
        "sample_size": 6
      },
      "price_per_m2_median": 20.0
    }
  },
  "by_rooms": {
    "T1": {
      "count": 313,
      "price": {
        "mean": 557,
        "median": 537,
        "p25": 485,
        "p75": 610,
        "min": 350,
        "max": 3000,
        "sample_size": 313
      },
      "surface": {
        "mean": 22,
        "median": 20,
        "sample_size": 313
      },
      "price_per_m2_median": 26.1
    },
    "T2": {
      "count": 250,
      "price": {
        "mean": 747,
        "median": 740,
        "p25": 651,
        "p75": 820,
        "min": 470,
        "max": 1431,
        "sample_size": 250
      },
      "surface": {
        "mean": 40,
        "median": 39,
        "sample_size": 250
      },
      "price_per_m2_median": 19.1
    },
    "T3": {
      "count": 139,
      "price": {
        "mean": 1014,
        "median": 980,
        "p25": 871,
        "p75": 1137,
        "min": 440,
        "max": 1500,
        "sample_size": 139
      },
      "surface": {
        "mean": 64,
        "median": 64,
        "sample_size": 139
      },
      "price_per_m2_median": 16.0
    },
    "T4": {
      "count": 44,
      "price": {
        "mean": 1328,
        "median": 1386,
        "p25": 1107,
        "p75": 1592,
        "min": 610,
        "max": 2167,
        "sample_size": 44
      },
      "surface": {
        "mean": 86,
        "median": 85,
        "sample_size": 44
      },
      "price_per_m2_median": 15.4
    },
    "T5": {
      "count": 9,
      "price": {
        "mean": 1362,
        "median": 1390,
        "p25": 1269,
        "p75": 1590,
        "min": 785,
        "max": 1653,
        "sample_size": 9
      },
      "surface": {
        "mean": 94,
        "median": 92,
        "sample_size": 9
      },
      "price_per_m2_median": 14.6
    }
  },
  "by_furnished": {
    "meuble": {
      "count": 466,
      "price": {
        "mean": 730,
        "median": 660,
        "p25": 550,
        "p75": 829,
        "min": 355,
        "max": 1800,
        "sample_size": 466
      },
      "surface": {
        "mean": 35,
        "median": 29,
        "sample_size": 466
      },
      "price_per_m2_median": 22.8
    },
    "vide": {
      "count": 298,
      "price": {
        "mean": 813,
        "median": 750,
        "p25": 563,
        "p75": 966,
        "min": 60,
        "max": 2270,
        "sample_size": 298
      },
      "surface": {
        "mean": 51,
        "median": 46,
        "sample_size": 298
      },
      "price_per_m2_median": 16.9
    }
  },
  "by_quartier": {
    "Centre-Ville": {
      "count": 88,
      "price": {
        "mean": 755,
        "median": 744,
        "p25": 680,
        "p75": 821,
        "min": 470,
        "max": 1146,
        "sample_size": 88
      },
      "surface": {
        "mean": 40,
        "median": 37,
        "sample_size": 88
      },
      "price_per_m2_median": 19.7
    },
    "Hauts-Pavés-Saint-Félix": {
      "count": 62,
      "price": {
        "mean": 782,
        "median": 775,
        "p25": 672,
        "p75": 850,
        "min": 500,
        "max": 1431,
        "sample_size": 62
      },
      "surface": {
        "mean": 39,
        "median": 42,
        "sample_size": 62
      },
      "price_per_m2_median": 20.1
    },
    "Malakoff-Saint-Donatien": {
      "count": 57,
      "price": {
        "mean": 725,
        "median": 735,
        "p25": 650,
        "p75": 800,
        "min": 485,
        "max": 1020,
        "sample_size": 57
      },
      "surface": {
        "mean": 40,
        "median": 40,
        "sample_size": 57
      },
      "price_per_m2_median": 18.4
    },
    "Graslin": {
      "count": 8,
      "price": {
        "mean": 645,
        "median": 632,
        "p25": 585,
        "p75": 681,
        "min": 495,
        "max": 838,
        "sample_size": 8
      },
      "surface": {
        "mean": 45,
        "median": 47,
        "sample_size": 8
      },
      "price_per_m2_median": 14.6
    }
  },
  "by_quartier_type": "T2",
  "distribution": [
    {
      "min": 400,
      "max": 500,
      "count": 99,
      "pct": 12.7
    },
    {
      "min": 500,
      "max": 600,
      "count": 153,
      "pct": 19.7
    },
    {
      "min": 600,
      "max": 700,
      "count": 144,
      "pct": 18.5
    },
    {
      "min": 700,
      "max": 800,
      "count": 105,
      "pct": 13.5
    },
    {
      "min": 800,
      "max": 900,
      "count": 88,
      "pct": 11.3
    },
    {
      "min": 900,
      "max": 1000,
      "count": 58,
      "pct": 7.5
    },
    {
      "min": 1000,
      "max": 1100,
      "count": 25,
      "pct": 3.2
    },
    {
      "min": 1100,
      "max": 1200,
      "count": 22,
      "pct": 2.8
    },
    {
      "min": 1200,
      "max": 1300,
      "count": 24,
      "pct": 3.1
    },
    {
      "min": 1300,
      "max": 1400,
      "count": 10,
      "pct": 1.3
    }
  ],
  "by_landlord_type": {
    "pro": {
      "count": 327,
      "price": {
        "mean": 755,
        "median": 680,
        "p25": 545,
        "p75": 871,
        "min": 350,
        "max": 2270,
        "sample_size": 327
      },
      "surface": {
        "mean": 43,
        "median": 37,
        "sample_size": 327
      },
      "price_per_m2_median": 19.3
    },
    "particulier": {
      "count": 446,
      "price": {
        "mean": 768,
        "median": 695,
        "p25": 556,
        "p75": 880,
        "min": 60,
        "max": 3000,
        "sample_size": 446
      },
      "surface": {
        "mean": 39,
        "median": 33,
        "sample_size": 446
      },
      "price_per_m2_median": 21.3
    },
    "diff_pct": -2.2
  },
  "evolution": {
    "previous_period": null,
    "previous_generated_at": "2026-04-01T00:00:00",
    "count_delta": -346,
    "median_delta_eur": -10,
    "median_delta_pct": -1.4,
    "price_per_m2_delta_eur": 0.6,
    "price_per_m2_delta_pct": 3.0
  }
}