{
 "universe": {
  "snapshot_date": "2026-09-25",
  "funnel": {
   "rows_P": 318878,
   "rows_S": 917795,
   "rows_total_db": 3181459,
   "first_filing": "20160104",
   "last_filing": "20260925",
   "buy_rows_raw": 1236673,
   "buy_rows_clean": 282942,
   "buy_rows_dedup": 232627,
   "buy_events_all": 132507,
   "buy_events_after_cap": 132469,
   "sell_rows_raw": 1048526,
   "sell_rows_clean": 778771,
   "sell_rows_dedup": 752496,
   "sell_events": 356622,
   "verify_365_median_abs_diff": 0.003,
   "verify_365_share_within_1pt": 0.879,
   "buys_price_artifact_excluded": 1078,
   "buys_penny_excluded": 8045
  },
  "turnover_buys": 0.0032,
  "turnover_sells": 0.0073,
  "mature_buys": 113117,
  "mature_companies": 6477,
  "insiders": 30216,
  "companies": 7429,
  "spy_total_2016_2026": 356.2916,
  "iwm_total_2016_2026": 193.7656
 },
 "all": {
  "n": 113117,
  "companies": 6477,
  "avg_ret": 17.4806,
  "avg_idx": 15.4816,
  "avg_spy": 17.2399,
  "edge": 1.999,
  "median_ret": 5.6271,
  "beat_pct": 42.2403,
  "edge_trimmed": -0.0026,
  "median_idx": 12.8055,
  "pos_pct": 56.4345
 },
 "horizons": {
  "30d": {
   "n": 122524,
   "companies": 6925,
   "avg_ret": 1.4023,
   "avg_idx": 1.2705,
   "avg_spy": 1.445,
   "edge": 0.1318,
   "median_ret": 0.6897,
   "beat_pct": 47.0798,
   "edge_trimmed": 0.12,
   "median_idx": 1.7194,
   "pos_pct": 53.5503
  },
  "90d": {
   "n": 121018,
   "companies": 6845,
   "avg_ret": 4.8752,
   "avg_idx": 4.5745,
   "avg_spy": 4.6687,
   "edge": 0.3007,
   "median_ret": 2.4456,
   "beat_pct": 45.3106,
   "edge_trimmed": 0.2503,
   "median_idx": 4.671,
   "pos_pct": 56.8147
  },
  "180d": {
   "n": 118275,
   "companies": 6674,
   "avg_ret": 7.6951,
   "avg_idx": 7.7162,
   "avg_spy": 8.5444,
   "edge": -0.021,
   "median_ret": 3.4363,
   "beat_pct": 43.5874,
   "edge_trimmed": -0.373,
   "median_idx": 7.1225,
   "pos_pct": 56.328
  },
  "365d": {
   "n": 113117,
   "companies": 6477,
   "avg_ret": 17.4806,
   "avg_idx": 15.4816,
   "avg_spy": 17.2399,
   "edge": 1.999,
   "median_ret": 5.6271,
   "beat_pct": 42.2403,
   "edge_trimmed": -0.0026,
   "median_idx": 12.8055,
   "pos_pct": 56.4345
  }
 },
 "top1_share_of_gains": 34.2826,
 "by_year": {
  "2016": {
   "n": 11921,
   "companies": 2243,
   "avg_ret": 26.2566,
   "avg_idx": 24.1923,
   "avg_spy": 19.8359,
   "edge": 2.0643,
   "median_ret": 22.288,
   "beat_pct": 48.1503,
   "edge_trimmed": 1.8041,
   "median_idx": 23.8483,
   "pos_pct": 76.1933
  },
  "2017": {
   "n": 10520,
   "companies": 2094,
   "avg_ret": 11.8986,
   "avg_idx": 13.2723,
   "avg_spy": 14.0085,
   "edge": -1.3737,
   "median_ret": 4.5453,
   "beat_pct": 38.1274,
   "edge_trimmed": -2.2042,
   "median_idx": 15.6845,
   "pos_pct": 58.1179
  },
  "2018": {
   "n": 12097,
   "companies": 2318,
   "avg_ret": 0.2321,
   "avg_idx": 2.875,
   "avg_spy": 10.5971,
   "edge": -2.6429,
   "median_ret": -2.6044,
   "beat_pct": 42.2005,
   "edge_trimmed": -3.4183,
   "median_idx": 2.1373,
   "pos_pct": 45.7717
  },
  "2019": {
   "n": 11264,
   "companies": 2237,
   "avg_ret": 0.6305,
   "avg_idx": 1.1767,
   "avg_spy": 12.7999,
   "edge": -0.5462,
   "median_ret": -12.9133,
   "beat_pct": 33.3274,
   "edge_trimmed": -1.8718,
   "median_idx": 3.4137,
   "pos_pct": 35.9197
  },
  "2020": {
   "n": 14631,
   "companies": 2548,
   "avg_ret": 83.1801,
   "avg_idx": 61.1476,
   "avg_spy": 40.8799,
   "edge": 22.0325,
   "median_ret": 53.927,
   "beat_pct": 46.1212,
   "edge_trimmed": 14.2343,
   "median_idx": 51.11,
   "pos_pct": 84.7994
  },
  "2021": {
   "n": 11190,
   "companies": 2352,
   "avg_ret": -12.8644,
   "avg_idx": -12.4754,
   "avg_spy": -3.7655,
   "edge": -0.389,
   "median_ret": -9.6774,
   "beat_pct": 53.9857,
   "edge_trimmed": -0.6859,
   "median_idx": -13.2588,
   "pos_pct": 38.1144
  },
  "2022": {
   "n": 13287,
   "companies": 2463,
   "avg_ret": -4.3268,
   "avg_idx": 0.8134,
   "avg_spy": 6.8412,
   "edge": -5.1402,
   "median_ret": -8.5681,
   "beat_pct": 36.7502,
   "edge_trimmed": -5.529,
   "median_idx": -0.0589,
   "pos_pct": 37.6308
  },
  "2023": {
   "n": 11840,
   "companies": 2164,
   "avg_ret": 18.4962,
   "avg_idx": 20.0949,
   "avg_spy": 29.087,
   "edge": -1.5987,
   "median_ret": 9.983,
   "beat_pct": 37.1368,
   "edge_trimmed": -5.6995,
   "median_idx": 19.0464,
   "pos_pct": 61.1318
  },
  "2024": {
   "n": 9359,
   "companies": 1977,
   "avg_ret": 14.9276,
   "avg_idx": 7.2806,
   "avg_spy": 15.562,
   "edge": 7.647,
   "median_ret": 7.5549,
   "beat_pct": 50.0053,
   "edge_trimmed": 6.4612,
   "median_idx": 6.898,
   "pos_pct": 60.0278
  },
  "2025": {
   "n": 7008,
   "companies": 1748,
   "avg_ret": 22.1174,
   "avg_idx": 29.0034,
   "avg_spy": 22.4049,
   "edge": -6.8859,
   "median_ret": 11.706,
   "beat_pct": 34.5605,
   "edge_trimmed": -8.0322,
   "median_idx": 27.3691,
   "pos_pct": 64.6261
  }
 },
 "by_role": {
  "Director": {
   "n": 50993,
   "companies": 5188,
   "avg_ret": 19.119,
   "avg_idx": 15.4953,
   "avg_spy": 17.2053,
   "edge": 3.6237,
   "median_ret": 7.2201,
   "beat_pct": 44.3159,
   "edge_trimmed": 1.5955,
   "median_idx": 12.8239,
   "pos_pct": 58.3296
  },
  "CFO": {
   "n": 7065,
   "companies": 2287,
   "avg_ret": 18.9375,
   "avg_idx": 15.8951,
   "avg_spy": 17.3731,
   "edge": 3.0424,
   "median_ret": 5.519,
   "beat_pct": 43.1423,
   "edge_trimmed": 1.0163,
   "median_idx": 12.5987,
   "pos_pct": 55.8811
  },
  "CEO": {
   "n": 19978,
   "companies": 3426,
   "avg_ret": 16.5405,
   "avg_idx": 14.9978,
   "avg_spy": 17.0822,
   "edge": 1.5428,
   "median_ret": 1.9299,
   "beat_pct": 40.0591,
   "edge_trimmed": -1.0691,
   "median_idx": 12.3994,
   "pos_pct": 51.9121
  },
  "Other officer": {
   "n": 17392,
   "companies": 3215,
   "avg_ret": 19.5305,
   "avg_idx": 17.2804,
   "avg_spy": 18.0081,
   "edge": 2.2501,
   "median_ret": 7.2822,
   "beat_pct": 42.8933,
   "edge_trimmed": 0.1792,
   "median_idx": 13.9351,
   "pos_pct": 58.5154
  },
  "10% owner only": {
   "n": 13704,
   "companies": 1555,
   "avg_ret": 11.5538,
   "avg_idx": 14.2342,
   "avg_spy": 16.8866,
   "edge": -2.6804,
   "median_ret": 2.2967,
   "beat_pct": 37.033,
   "edge_trimmed": -4.1573,
   "median_idx": 12.4988,
   "pos_pct": 52.7145
  }
 },
 "by_tier": {
  "small": {
   "n": 86536,
   "companies": 4972,
   "avg_ret": 18.617,
   "avg_idx": 15.5018,
   "avg_spy": 17.4295,
   "edge": 3.1152,
   "median_ret": 5.6049,
   "beat_pct": 42.5384,
   "edge_trimmed": 0.6819,
   "median_idx": 12.228,
   "pos_pct": 56.4517
  },
  "mid": {
   "n": 16654,
   "companies": 2052,
   "avg_ret": 15.8318,
   "avg_idx": 14.9881,
   "avg_spy": 16.9146,
   "edge": 0.8437,
   "median_ret": 4.4929,
   "beat_pct": 42.4883,
   "edge_trimmed": -0.0983,
   "median_idx": 10.7652,
   "pos_pct": 54.6235
  },
  "large": {
   "n": 9927,
   "companies": 1034,
   "avg_ret": 10.3404,
   "avg_idx": 16.1329,
   "avg_spy": 16.1329,
   "edge": -5.7925,
   "median_ret": 7.2576,
   "beat_pct": 39.2264,
   "edge_trimmed": -5.809,
   "median_idx": 16.7707,
   "pos_pct": 59.3231
  }
 },
 "by_liq": {
  "under $100k": {
   "n": 24566,
   "companies": 1758,
   "avg_ret": 9.2054,
   "avg_idx": 13.4468,
   "avg_spy": 16.5627,
   "edge": -4.2415,
   "median_ret": 0.0842,
   "beat_pct": 38.6673,
   "edge_trimmed": -5.4463,
   "median_idx": 12.0623,
   "pos_pct": 50.1425
  },
  "$100k-1M": {
   "n": 30986,
   "companies": 2398,
   "avg_ret": 18.0429,
   "avg_idx": 14.9797,
   "avg_spy": 17.0899,
   "edge": 3.0632,
   "median_ret": 6.7594,
   "beat_pct": 42.6451,
   "edge_trimmed": 0.2112,
   "median_idx": 12.0417,
   "pos_pct": 58.2166
  },
  "$1-10M": {
   "n": 29202,
   "companies": 2721,
   "avg_ret": 18.9727,
   "avg_idx": 16.0193,
   "avg_spy": 17.6042,
   "edge": 2.9534,
   "median_ret": 6.4747,
   "beat_pct": 43.1751,
   "edge_trimmed": 1.3969,
   "median_idx": 12.228,
   "pos_pct": 57.4241
  },
  "$10-100M": {
   "n": 17724,
   "companies": 2072,
   "avg_ret": 25.682,
   "avg_idx": 18.4269,
   "avg_spy": 18.5634,
   "edge": 7.2551,
   "median_ret": 8.1105,
   "beat_pct": 44.1379,
   "edge_trimmed": 3.8687,
   "median_idx": 13.8881,
   "pos_pct": 58.1754
  },
  "over $100M": {
   "n": 8139,
   "companies": 774,
   "avg_ret": 22.1544,
   "avg_idx": 17.6139,
   "avg_spy": 17.3883,
   "edge": 4.5405,
   "median_ret": 12.4724,
   "beat_pct": 45.4356,
   "edge_trimmed": 4.2049,
   "median_idx": 16.7707,
   "pos_pct": 65.3274
  }
 },
 "hist": {
  "edges": [
   -100,
   -90,
   -80,
   -70,
   -60,
   -50,
   -40,
   -30,
   -20,
   -10,
   0,
   10,
   20,
   30,
   40,
   50,
   60,
   70,
   80,
   90,
   100,
   110,
   120,
   130,
   140,
   150,
   160,
   170,
   180,
   190,
   200,
   210,
   220,
   230,
   240,
   250,
   260,
   270,
   280,
   290,
   300
  ],
  "counts": [
   971,
   1753,
   2401,
   2724,
   3334,
   4090,
   5369,
   7147,
   9443,
   11923,
   12972,
   10981,
   8825,
   6248,
   4848,
   3776,
   2845,
   2200,
   1743,
   1391,
   1074,
   892,
   732,
   616,
   518,
   448,
   389,
   345,
   304,
   276,
   222,
   191,
   176,
   166,
   129,
   145,
   98,
   103,
   60,
   1249
  ],
  "above_300": 1184,
  "lost_half": 9.9287,
  "doubled": 7.1899
 },
 "headstart": {
  "mean": 2.2826,
  "median": 0.8475,
  "share_over_5": 22.0656,
  "share_negative": 38.0217,
  "insider_avg_ret": 19.6674,
  "follower_avg_ret": 17.3417,
  "median_lag_days": 2.0,
  "by_lag": {
   "0-2 days": {
    "n": 74411,
    "companies": 5911,
    "avg_ret": 17.6193,
    "avg_idx": 15.7652,
    "avg_spy": 17.4207,
    "edge": 1.854,
    "median_ret": 5.9102,
    "beat_pct": 42.4171,
    "edge_trimmed": -0.1164,
    "median_idx": 12.9221,
    "pos_pct": 56.6838
   },
   "3-4 days": {
    "n": 28461,
    "companies": 4774,
    "avg_ret": 18.8677,
    "avg_idx": 15.2592,
    "avg_spy": 17.0024,
    "edge": 3.6086,
    "median_ret": 4.8511,
    "beat_pct": 41.9873,
    "edge_trimmed": 1.0224,
    "median_idx": 12.4986,
    "pos_pct": 55.4583
   },
   "5-30 days": {
    "n": 7920,
    "companies": 2649,
    "avg_ret": 12.9573,
    "avg_idx": 14.3808,
    "avg_spy": 16.8224,
    "edge": -1.4235,
    "median_ret": 5.5964,
    "beat_pct": 41.9697,
    "edge_trimmed": -2.0226,
    "median_idx": 13.6597,
    "pos_pct": 57.9924
   },
   "over 30 days": {
    "n": 2325,
    "companies": 1416,
    "avg_ret": 11.4711,
    "avg_idx": 12.8761,
    "avg_spy": 15.7855,
    "edge": -1.405,
    "median_ret": 4.1592,
    "beat_pct": 40.6022,
    "edge_trimmed": -2.0257,
    "median_idx": 11.4092,
    "pos_pct": 55.0968
   }
  }
 },
 "buys_vs_sells": {
  "under $100k": {
   "buy": {
    "n": 21365,
    "companies": 1590,
    "avg_ret": 9.6541,
    "avg_idx": 13.3587,
    "avg_spy": 16.552,
    "edge": -3.7046,
    "median_ret": 1.0335,
    "beat_pct": 39.649,
    "edge_trimmed": -4.5769,
    "median_idx": 12.0485,
    "pos_pct": 51.2193
   },
   "sell": {
    "n": 6314,
    "companies": 909,
    "avg_ret": -11.8202,
    "avg_idx": 10.8019,
    "avg_spy": 15.3328,
    "edge": -22.6221,
    "median_ret": -19.2224,
    "beat_pct": 28.6189,
    "edge_trimmed": -22.7306,
    "median_idx": 10.1879,
    "pos_pct": 34.764
   }
  },
  "$100k-1M": {
   "buy": {
    "n": 24783,
    "companies": 2162,
    "avg_ret": 20.0723,
    "avg_idx": 15.3151,
    "avg_spy": 17.2113,
    "edge": 4.7572,
    "median_ret": 7.032,
    "beat_pct": 43.5137,
    "edge_trimmed": 1.3521,
    "median_idx": 11.772,
    "pos_pct": 57.9147
   },
   "sell": {
    "n": 19775,
    "companies": 1736,
    "avg_ret": 8.3107,
    "avg_idx": 10.4131,
    "avg_spy": 15.3234,
    "edge": -2.1024,
    "median_ret": -3.2787,
    "beat_pct": 37.6587,
    "edge_trimmed": -4.9675,
    "median_idx": 10.4904,
    "pos_pct": 46.9027
   }
  },
  "$1-10M": {
   "buy": {
    "n": 23913,
    "companies": 2520,
    "avg_ret": 20.6765,
    "avg_idx": 16.3207,
    "avg_spy": 17.621,
    "edge": 4.3558,
    "median_ret": 7.0035,
    "beat_pct": 44.1977,
    "edge_trimmed": 2.5194,
    "median_idx": 12.4067,
    "pos_pct": 57.5503
   },
   "sell": {
    "n": 62071,
    "companies": 2802,
    "avg_ret": 12.1323,
    "avg_idx": 10.2149,
    "avg_spy": 14.891,
    "edge": 1.9174,
    "median_ret": 1.925,
    "beat_pct": 42.8703,
    "edge_trimmed": 1.2108,
    "median_idx": 10.2754,
    "pos_pct": 52.0581
   }
  },
  "$10-100M": {
   "buy": {
    "n": 15855,
    "companies": 1990,
    "avg_ret": 26.4233,
    "avg_idx": 19.1382,
    "avg_spy": 19.0603,
    "edge": 7.2851,
    "median_ret": 8.9403,
    "beat_pct": 44.6799,
    "edge_trimmed": 3.7309,
    "median_idx": 14.3606,
    "pos_pct": 59.3188
   },
   "sell": {
    "n": 133303,
    "companies": 2774,
    "avg_ret": 12.4247,
    "avg_idx": 11.3357,
    "avg_spy": 15.0815,
    "edge": 1.089,
    "median_ret": 5.2524,
    "beat_pct": 44.4596,
    "edge_trimmed": 0.7478,
    "median_idx": 10.6409,
    "pos_pct": 56.2598
   }
  },
  "over $100M": {
   "buy": {
    "n": 7392,
    "companies": 757,
    "avg_ret": 20.446,
    "avg_idx": 17.1886,
    "avg_spy": 17.0084,
    "edge": 3.2575,
    "median_ret": 12.0213,
    "beat_pct": 45.2381,
    "edge_trimmed": 2.9797,
    "median_idx": 16.5926,
    "pos_pct": 65.0974
   },
   "sell": {
    "n": 94707,
    "companies": 1198,
    "avg_ret": 16.5294,
    "avg_idx": 15.258,
    "avg_spy": 15.6478,
    "edge": 1.2714,
    "median_ret": 10.1472,
    "beat_pct": 43.4044,
    "edge_trimmed": 0.7751,
    "median_idx": 16.4267,
    "pos_pct": 62.3829
   }
  }
 },
 "sells_all": {
  "n": 316593,
  "companies": 5586,
  "avg_ret": 12.8229,
  "avg_idx": 12.2132,
  "avg_spy": 15.2265,
  "edge": 0.6097,
  "median_ret": 5.4836,
  "beat_pct": 43.0632,
  "edge_trimmed": -0.0021,
  "median_idx": 12.8534,
  "pos_pct": 56.2198
 },
 "b10": {
  "10b5-1 plan": {
   "n": 6479,
   "companies": 422,
   "avg_ret": 17.7606,
   "avg_idx": 14.6796,
   "avg_spy": 16.5693,
   "edge": 3.0809,
   "median_ret": 3.8992,
   "beat_pct": 38.9103,
   "edge_trimmed": 0.3872,
   "median_idx": 13.9651,
   "pos_pct": 54.6381
  },
  "discretionary": {
   "n": 106638,
   "companies": 6449,
   "avg_ret": 17.4636,
   "avg_idx": 15.5303,
   "avg_spy": 17.2807,
   "edge": 1.9333,
   "median_ret": 5.7042,
   "beat_pct": 42.4427,
   "edge_trimmed": -0.0263,
   "median_idx": 12.713,
   "pos_pct": 56.5436
  }
 },
 "b10_post2023": {
  "discretionary": {
   "n": 24458,
   "companies": 3244,
   "avg_ret": 19.4524,
   "avg_idx": 18.3461,
   "avg_spy": 22.2912,
   "edge": 1.1063,
   "median_ret": 11.1111,
   "beat_pct": 42.2602,
   "edge_trimmed": -1.6286,
   "median_idx": 17.4943,
   "pos_pct": 63.3944
  },
  "10b5-1 plan": {
   "n": 992,
   "companies": 102,
   "avg_ret": 21.7684,
   "avg_idx": 19.4795,
   "avg_spy": 22.0253,
   "edge": 2.2889,
   "median_ret": 8.9914,
   "beat_pct": 39.1129,
   "edge_trimmed": 2.2505,
   "median_idx": 18.971,
   "pos_pct": 61.2903
  }
 },
 "value": {
  "under $50k": {
   "n": 62338,
   "companies": 4888,
   "avg_ret": 18.0111,
   "avg_idx": 15.5569,
   "avg_spy": 17.4051,
   "edge": 2.4542,
   "median_ret": 6.262,
   "beat_pct": 43.0299,
   "edge_trimmed": 0.416,
   "median_idx": 12.8227,
   "pos_pct": 57.5973
  },
  "$50-250k": {
   "n": 28927,
   "companies": 4783,
   "avg_ret": 19.3175,
   "avg_idx": 16.1859,
   "avg_spy": 17.5632,
   "edge": 3.1317,
   "median_ret": 5.9072,
   "beat_pct": 42.4206,
   "edge_trimmed": 0.5856,
   "median_idx": 13.1549,
   "pos_pct": 56.3211
  },
  "$250k-1M": {
   "n": 12095,
   "companies": 3263,
   "avg_ret": 14.566,
   "avg_idx": 14.7802,
   "avg_spy": 16.6121,
   "edge": -0.2142,
   "median_ret": 3.9211,
   "beat_pct": 40.1488,
   "edge_trimmed": -1.3111,
   "median_idx": 12.4542,
   "pos_pct": 54.4936
  },
  "$1-5M": {
   "n": 6145,
   "companies": 2064,
   "avg_ret": 13.5945,
   "avg_idx": 14.2585,
   "avg_spy": 16.3051,
   "edge": -0.664,
   "median_ret": 2.5245,
   "beat_pct": 40.1302,
   "edge_trimmed": -2.3824,
   "median_idx": 12.4342,
   "pos_pct": 52.6932
  },
  "over $5M": {
   "n": 3612,
   "companies": 1240,
   "avg_ret": 9.9853,
   "avg_idx": 12.9705,
   "avg_spy": 15.4938,
   "edge": -2.9852,
   "median_ret": 0.2319,
   "beat_pct": 37.763,
   "edge_trimmed": -3.509,
   "median_idx": 11.1665,
   "pos_pct": 50.1384
  }
 },
 "ex2020": {
  "n": 98486,
  "companies": 6342,
  "avg_ret": 7.7203,
  "avg_idx": 8.6975,
  "avg_spy": 13.728,
  "edge": -0.9771,
  "median_ret": 1.8365,
  "beat_pct": 41.6638,
  "edge_trimmed": -2.1176,
  "median_idx": 9.4139,
  "pos_pct": 52.2206
 },
 "y2020": {
  "n": 14631,
  "companies": 2548,
  "avg_ret": 83.1801,
  "avg_idx": 61.1476,
  "avg_spy": 40.8799,
  "edge": 22.0325,
  "median_ret": 53.927,
  "beat_pct": 46.1212,
  "edge_trimmed": 14.2343,
  "median_idx": 51.11,
  "pos_pct": 84.7994
 },
 "marapr2020": {
  "n": 5056,
  "companies": 1413,
  "avg_ret": 125.9663,
  "avg_idx": 90.8231,
  "avg_spy": 54.5137,
  "edge": 35.1432,
  "median_ret": 78.3086,
  "beat_pct": 44.106,
  "edge_trimmed": 18.3595,
  "median_idx": 94.5101,
  "pos_pct": 93.6116
 },
 "share_2020_of_excess": 142.5581,
 "by_liq_ex2020": {
  "under $100k": {
   "n": 21966,
   "companies": 1708,
   "avg_ret": 2.0944,
   "avg_idx": 8.5362,
   "avg_spy": 14.0731,
   "edge": -6.4418,
   "median_ret": -2.7257,
   "beat_pct": 37.813,
   "edge_trimmed": -7.3073,
   "median_idx": 9.473,
   "pos_pct": 46.5173
  },
  "$100k-1M": {
   "n": 26855,
   "companies": 2318,
   "avg_ret": 10.5081,
   "avg_idx": 7.9003,
   "avg_spy": 13.6515,
   "edge": 2.6078,
   "median_ret": 3.3371,
   "beat_pct": 43.2173,
   "edge_trimmed": 0.1403,
   "median_idx": 7.9443,
   "pos_pct": 54.2953
  },
  "$1-10M": {
   "n": 25434,
   "companies": 2605,
   "avg_ret": 8.7717,
   "avg_idx": 8.4786,
   "avg_spy": 13.9377,
   "edge": 0.293,
   "median_ret": 2.4578,
   "beat_pct": 42.9071,
   "edge_trimmed": -0.6079,
   "median_idx": 8.5012,
   "pos_pct": 53.1021
  },
  "$10-100M": {
   "n": 14910,
   "companies": 1978,
   "avg_ret": 7.2644,
   "avg_idx": 9.6106,
   "avg_spy": 13.7337,
   "edge": -2.3463,
   "median_ret": 1.86,
   "beat_pct": 41.5694,
   "edge_trimmed": -2.5043,
   "median_idx": 9.9344,
   "pos_pct": 52.0724
  },
  "over $100M": {
   "n": 7128,
   "companies": 739,
   "avg_ret": 14.7346,
   "avg_idx": 13.048,
   "avg_spy": 13.7716,
   "edge": 1.6866,
   "median_ret": 9.6166,
   "beat_pct": 44.5146,
   "edge_trimmed": 1.4722,
   "median_idx": 15.4791,
   "pos_pct": 62.2615
  }
 },
 "by_role_ex2020": {
  "Director": {
   "n": 44152,
   "companies": 5019,
   "avg_ret": 9.8694,
   "avg_idx": 8.4913,
   "avg_spy": 13.5585,
   "edge": 1.3782,
   "median_ret": 3.2645,
   "beat_pct": 44.0592,
   "edge_trimmed": 0.0229,
   "median_idx": 9.261,
   "pos_pct": 54.0429
  },
  "CFO": {
   "n": 6102,
   "companies": 2107,
   "avg_ret": 8.3217,
   "avg_idx": 8.5255,
   "avg_spy": 13.6127,
   "edge": -0.2039,
   "median_ret": 1.0857,
   "beat_pct": 42.4451,
   "edge_trimmed": -1.1399,
   "median_idx": 9.0386,
   "pos_pct": 51.311
  },
  "CEO": {
   "n": 17466,
   "companies": 3253,
   "avg_ret": 4.8485,
   "avg_idx": 8.3967,
   "avg_spy": 13.7005,
   "edge": -3.5482,
   "median_ret": -2.3193,
   "beat_pct": 38.5263,
   "edge_trimmed": -4.7376,
   "median_idx": 9.0769,
   "pos_pct": 47.1888
  },
  "Other officer": {
   "n": 14889,
   "companies": 2994,
   "avg_ret": 7.3975,
   "avg_idx": 9.1425,
   "avg_spy": 13.8068,
   "edge": -1.745,
   "median_ret": 3.3822,
   "beat_pct": 42.2392,
   "edge_trimmed": -2.475,
   "median_idx": 10.055,
   "pos_pct": 54.0399
  },
  "10% owner only": {
   "n": 12355,
   "companies": 1451,
   "avg_ret": 5.0639,
   "avg_idx": 9.8451,
   "avg_spy": 14.5792,
   "edge": -4.7812,
   "median_ret": 0.0,
   "beat_pct": 36.6572,
   "edge_trimmed": -6.0084,
   "median_idx": 10.3115,
   "pos_pct": 49.9312
  }
 },
 "buys_vs_sells_ex2020": {
  "under $100k": {
   "buy": {
    "n": 19092,
    "companies": 1542,
    "avg_ret": 2.383,
    "avg_idx": 8.4023,
    "avg_spy": 14.0412,
    "edge": -6.0193,
    "median_ret": -1.7699,
    "beat_pct": 38.7545,
    "edge_trimmed": -6.4592,
    "median_idx": 9.4139,
    "pos_pct": 47.6587
   },
   "sell": {
    "n": 5823,
    "companies": 877,
    "avg_ret": -16.451,
    "avg_idx": 7.8009,
    "avg_spy": 13.7397,
    "edge": -24.2519,
    "median_ret": -22.1106,
    "beat_pct": 27.8894,
    "edge_trimmed": -24.3696,
    "median_idx": 8.5297,
    "pos_pct": 32.509
   }
  },
  "$100k-1M": {
   "buy": {
    "n": 21179,
    "companies": 2088,
    "avg_ret": 11.5081,
    "avg_idx": 7.346,
    "avg_spy": 13.3529,
    "edge": 4.1621,
    "median_ret": 2.7802,
    "beat_pct": 44.1475,
    "edge_trimmed": 1.2064,
    "median_idx": 7.374,
    "pos_pct": 53.3878
   },
   "sell": {
    "n": 18270,
    "companies": 1679,
    "avg_ret": 5.6041,
    "avg_idx": 7.6608,
    "avg_spy": 13.8918,
    "edge": -2.0567,
    "median_ret": -5.1447,
    "beat_pct": 37.9091,
    "edge_trimmed": -4.953,
    "median_idx": 8.6544,
    "pos_pct": 45.1177
   }
  },
  "$1-10M": {
   "buy": {
    "n": 20687,
    "companies": 2408,
    "avg_ret": 9.4813,
    "avg_idx": 8.3667,
    "avg_spy": 13.7538,
    "edge": 1.1146,
    "median_ret": 2.4096,
    "beat_pct": 43.7279,
    "edge_trimmed": 0.0506,
    "median_idx": 8.3419,
    "pos_pct": 52.8641
   },
   "sell": {
    "n": 56663,
    "companies": 2736,
    "avg_ret": 8.3251,
    "avg_idx": 6.8433,
    "avg_spy": 13.1225,
    "edge": 1.4818,
    "median_ret": 0.1786,
    "beat_pct": 42.9487,
    "edge_trimmed": 1.0329,
    "median_idx": 7.8913,
    "pos_pct": 50.1827
   }
  },
  "$10-100M": {
   "buy": {
    "n": 13258,
    "companies": 1899,
    "avg_ret": 7.6873,
    "avg_idx": 9.9482,
    "avg_spy": 14.0706,
    "edge": -2.2609,
    "median_ret": 2.763,
    "beat_pct": 42.3141,
    "edge_trimmed": -2.4431,
    "median_idx": 10.498,
    "pos_pct": 53.2358
   },
   "sell": {
    "n": 118648,
    "companies": 2736,
    "avg_ret": 8.161,
    "avg_idx": 7.5344,
    "avg_spy": 12.8061,
    "edge": 0.6266,
    "median_ret": 2.6901,
    "beat_pct": 44.5402,
    "edge_trimmed": 0.3969,
    "median_idx": 8.1178,
    "pos_pct": 53.5652
   }
  },
  "over $100M": {
   "buy": {
    "n": 6531,
    "companies": 722,
    "avg_ret": 14.1893,
    "avg_idx": 12.7842,
    "avg_spy": 13.4746,
    "edge": 1.4051,
    "median_ret": 9.5066,
    "beat_pct": 44.4802,
    "edge_trimmed": 1.1711,
    "median_idx": 15.4187,
    "pos_pct": 62.3182
   },
   "sell": {
    "n": 83777,
    "companies": 1184,
    "avg_ret": 12.736,
    "avg_idx": 12.6091,
    "avg_spy": 13.1952,
    "edge": 0.1269,
    "median_ret": 7.8475,
    "beat_pct": 42.9497,
    "edge_trimmed": -0.3581,
    "median_idx": 15.1501,
    "pos_pct": 59.8541
   }
  }
 },
 "snapshot_date": "2026-09-25"
}