{
  "overall": {
    "n": 92089,
    "share_short_hold": 0.2881886001585423,
    "share_flagged": 0.018362670894460795,
    "months_held_p25": 9.82340862422998,
    "months_held_median": 23.523613963039015,
    "months_held_p75": 37.84804928131417,
    "annualised_log_return_median": 0.08036037517067995,
    "index_change_median": 0.12380695643157935,
    "gap_mean": 0.015468638683450185,
    "gap_median": 0.01396706528665348,
    "gap_sd": 0.43792276593506624,
    "gap_abs_median": 0.1275613598407368
  },
  "by_class": {
    "condo": {
      "n": 30900,
      "share_short_hold": 0.504757281553398,
      "share_flagged": 0.006019417475728156,
      "months_held_p25": 2.299794661190965,
      "months_held_median": 11.728952772073923,
      "months_held_p75": 29.66735112936345,
      "annualised_log_return_median": 0.05856243511091462,
      "index_change_median": 0.05463392967542191,
      "gap_mean": 0.004065669919173253,
      "gap_median": 0.008653409056407213,
      "gap_sd": 0.3005895741460536,
      "gap_abs_median": 0.09448357611077718
    },
    "house": {
      "n": 50178,
      "share_short_hold": 0.17449878432779306,
      "share_flagged": 0.021543305831240783,
      "months_held_p25": 15.342915811088295,
      "months_held_median": 27.170431211498972,
      "months_held_p75": 40.50924024640657,
      "annualised_log_return_median": 0.08811222679602647,
      "index_change_median": 0.1745568411513947,
      "gap_mean": 0.02798385057519985,
      "gap_median": 0.017758985104870284,
      "gap_sd": 0.4910603490895561,
      "gap_abs_median": 0.1464346838184296
    },
    "plex": {
      "n": 11011,
      "share_short_hold": 0.19852874398328943,
      "share_flagged": 0.03850694759785669,
      "months_held_p25": 14.472279260780287,
      "months_held_median": 27.531827515400412,
      "months_held_p75": 41.49486652977413,
      "annualised_log_return_median": 0.09116687037753403,
      "index_change_median": 0.16440420121492938,
      "gap_mean": -0.00956419825125669,
      "gap_median": 0.019841019730339582,
      "gap_sd": 0.49977078770589084,
      "gap_abs_median": 0.17436664958134962
    }
  },
  "by_region": {
    "Montréal CMA": {
      "n": 39256,
      "share_short_hold": 0.34962808233136333,
      "share_flagged": 0.020582840839616874,
      "months_held_p25": 5.815195071868583,
      "months_held_median": 21.585215605749486,
      "months_held_p75": 37.125256673511295,
      "annualised_log_return_median": 0.05809650465438112,
      "index_change_median": 0.0797284966799463,
      "gap_mean": 0.01133275578727807,
      "gap_median": 0.0163217284222279,
      "gap_sd": 0.4227768745725832,
      "gap_abs_median": 0.11230328861482164
    },
    "Outaouais": {
      "n": 5731,
      "share_short_hold": 0.3318792531844355,
      "share_flagged": 0.010643866689931948,
      "months_held_p25": 6.899383983572895,
      "months_held_median": 22.143737166324435,
      "months_held_p75": 37.02669404517454,
      "annualised_log_return_median": 0.06761122423668095,
      "index_change_median": 0.09738068579064674,
      "gap_mean": 0.049285627078822884,
      "gap_median": 0.018359897500239697,
      "gap_sd": 0.3540418492645551,
      "gap_abs_median": 0.10018853148305062
    },
    "Québec CMA": {
      "n": 8641,
      "share_short_hold": 0.2547158893646569,
      "share_flagged": 0.017822011341279944,
      "months_held_p25": 11.893223819301848,
      "months_held_median": 24.476386036960985,
      "months_held_p75": 37.97946611909651,
      "annualised_log_return_median": 0.0971976615216946,
      "index_change_median": 0.17801966145484371,
      "gap_mean": -0.0006632853368857285,
      "gap_median": 0.013526980028007785,
      "gap_sd": 0.4024916749987534,
      "gap_abs_median": 0.11656600908038506
    },
    "other": {
      "n": 38461,
      "share_short_hold": 0.22648917084839187,
      "share_flagged": 0.017368243155404174,
      "months_held_p25": 12.878850102669405,
      "months_held_median": 24.870636550308006,
      "months_held_p75": 38.53798767967146,
      "annualised_log_return_median": 0.09867698993225775,
      "index_change_median": 0.1937560125821962,
      "gap_mean": 0.01827535233982871,
      "gap_median": 0.009917101008502627,
      "gap_sd": 0.4705626364502145,
      "gap_abs_median": 0.15415067982725894
    }
  },
  "by_hold_bucket": {
    "<12": {
      "n": 26539,
      "share_short_hold": 1.0,
      "share_flagged": 0.015675044274463996,
      "months_held_p25": 1.1827515400410678,
      "months_held_median": 3.679671457905544,
      "months_held_p75": 7.62217659137577,
      "annualised_log_return_median": 0.13256947571872868,
      "index_change_median": 0.017056596431817894,
      "gap_mean": 0.03318260718972106,
      "gap_median": 0.018928009885518904,
      "gap_sd": 0.4011461439536792,
      "gap_abs_median": 0.12108934534264115
    },
    "12-24": {
      "n": 20501,
      "share_short_hold": 0.0,
      "share_flagged": 0.019169796595288034,
      "months_held_p25": 14.718685831622176,
      "months_held_median": 17.93839835728953,
      "months_held_p75": 21.22381930184805,
      "annualised_log_return_median": 0.09204730070640503,
      "index_change_median": 0.10693569996646346,
      "gap_mean": 0.04212871445663325,
      "gap_median": 0.032521351510906626,
      "gap_sd": 0.45137240424499897,
      "gap_abs_median": 0.12524356243929624
    },
    "24-36": {
      "n": 18890,
      "share_short_hold": 0.0,
      "share_flagged": 0.01683430386447856,
      "months_held_p25": 26.579055441478438,
      "months_held_median": 29.66735112936345,
      "months_held_p75": 33.05133470225873,
      "annualised_log_return_median": 0.0740075739779382,
      "index_change_median": 0.16890202317518188,
      "gap_mean": 0.011712286029614645,
      "gap_median": 0.011961741147774596,
      "gap_sd": 0.4354587134832692,
      "gap_abs_median": 0.12432843857818288
    },
    "36+": {
      "n": 26159,
      "share_short_hold": 0.0,
      "share_flagged": 0.02156045720402156,
      "months_held_p25": 40.34496919917864,
      "months_held_median": 46.455852156057496,
      "months_held_p75": 52.73100616016427,
      "annualised_log_return_median": 0.07191591353149837,
      "index_change_median": 0.2907203262699678,
      "gap_mean": -0.02068380299945036,
      "gap_median": -0.006665449535281809,
      "gap_sd": 0.4616194733610451,
      "gap_abs_median": 0.13794709859690002
    }
  },
  "by_split": {
    "holdout": {
      "n": 2501,
      "share_short_hold": 1.0,
      "share_flagged": 0.011995201919232307,
      "months_held_p25": 0.3613963039014374,
      "months_held_median": 0.9527720739219713,
      "months_held_p75": 2.102669404517454,
      "annualised_log_return_median": 0.0016602687795588267,
      "index_change_median": 0.0,
      "gap_mean": -0.002624911845029809,
      "gap_median": 0.0,
      "gap_sd": 0.3875393188031034,
      "gap_abs_median": 0.12695541309637015
    },
    "test": {
      "n": 3778,
      "share_short_hold": 0.8041291688724193,
      "share_flagged": 0.018793012175754367,
      "months_held_p25": 2.004106776180698,
      "months_held_median": 6.061601642710473,
      "months_held_p75": 10.973305954825461,
      "annualised_log_return_median": 0.07606366219747321,
      "index_change_median": 0.014607541259788803,
      "gap_mean": 0.02545814487394008,
      "gap_median": 0.01736836491254401,
      "gap_sd": 0.4261951057700654,
      "gap_abs_median": 0.10048926144326309
    },
    "train": {
      "n": 80559,
      "share_short_hold": 0.231904566839211,
      "share_flagged": 0.018309561935972392,
      "months_held_p25": 12.91170431211499,
      "months_held_median": 26.611909650924023,
      "months_held_p75": 39.885010266940455,
      "annualised_log_return_median": 0.08008832085595473,
      "index_change_median": 0.14241648141311813,
      "gap_mean": 0.014499750404851604,
      "gap_median": 0.013471453530268462,
      "gap_sd": 0.43744893683238145,
      "gap_abs_median": 0.12953966672304773
    },
    "validation": {
      "n": 5251,
      "share_short_hold": 0.4414397257665207,
      "share_flagged": 0.02190059036374024,
      "months_held_p25": 7.162217659137577,
      "months_held_median": 13.1088295687885,
      "months_held_p75": 18.710472279260777,
      "annualised_log_return_median": 0.09465444112774411,
      "index_change_median": 0.07631580198138188,
      "gap_mean": 0.03176349420043377,
      "gap_median": 0.023159823947349167,
      "gap_sd": 0.47417086758113114,
      "gap_abs_median": 0.11605050032681952
    }
  },
  "n_analytic": 631866,
  "share_with_resale": 0.14574134389253418,
  "parameters": {
    "min_n": 5,
    "window": 3,
    "full_snapshot": true
  },
  "index_sources_mun_level": {
    "region": 141524,
    "mun": 16003,
    "base": 2283
  },
  "generated_at": "2026-10-27T23:38:45+00:00",
  "seconds": 3.4
}