Predictor — learning loop
Aratea is a weather-factor discovery engine. Every named feature here is a hypothesis; every training run measures whether it carries signal. The bench is the same row-set kalshi_mid Brier — beat the market, on its own ground.
Everything the manifest carries: named factors with their leave-one-out delta, paper-trade ledger, training runs and Brier trajectory. This is the meteorologist / actuary view — no rounding, no sugar-coating.
Manifest generated at 2026-10-13T00:42:25Z (schema v3).
Hybrid effective sample (N_eff)
α = 0.3N_eff drives secondary decisions only — feature-set selection, reliability plots, complementary promotion check. The Phase 1 go/no-go gate stays strictly on N_live; backtest volume never substitutes for live trades there.
Read CONVENTION §6.bisA. Live runs (Kalshi paper trades)
Each row is a real paper trade on Kalshi. The champion takes the position (real ledger row, real P&L); challengers and baselines run in shadow mode for Brier comparison. ★ marks the best Brier on a given run. The promotion rule (champion swap) needs a rolling-mean Brier dominance over N≥10 resolved trades — single-run wins are anecdotal.
| Run | When | Event / Bin | Side | Champion p | Challenger p | Baseline p | kalshi_mid | Outcome | P&L paper |
|---|---|---|---|---|---|---|---|---|---|
| 934 | 2026-10-10 | HIGHTDC 11/10B68.5 | NO | 24.4%B=0.0598 | 9.6%B=0.0092 ★ | 34.5%B=0.1190 | 34.5% | WIN (NO) | +$5.87 |
| 933 | 2026-10-10 | HIGHTDC 11/10B72.5 | YES | 20.3%B=0.0410 | 7.0%B=0.0049 | 2.5%B=0.0006 ★ | 2.5% | LOSS (NO) | −$45.43 |
| 932 | 2026-10-10 | HIGHTSFO 11/10B69.5 | NO | 11.1%B=0.0124 ★ | 14.5%B=0.0211 | 17.5%B=0.0306 | 17.5% | WIN (NO) | +$9.62 |
| 931 | 2026-10-10 | HIGHTSFO 11/10B63.5 | YES | 19.1%B=0.0364 | 29.5%B=0.0871 | 6.5%B=0.0042 ★ | 6.5% | LOSS (NO) | −$45.44 |
| 930 | 2026-10-10 | HIGHTSFO 11/10B67.5 | NO | 19.2%B=0.0371 ★ | 22.3%B=0.0499 | 51.5%B=0.2652 | 51.5% | WIN (NO) | +$47.90 |
| 929 | 2026-10-10 | LOWTDEN 11/10B56.5 | NO | 22.9%B=0.5944 | 5.9%B=0.8859 | 32.0%B=0.4624 ★ | 32.0% | LOSS (YES) | −$44.88 |
| 928 | 2026-10-10 | LOWTPHX 11/10B70.5 | NO | 16.6%B=0.0274 ★ | 24.0%B=0.0575 | 26.5%B=0.0702 | 26.5% | WIN (NO) | +$16.16 |
| 927 | 2026-10-10 | LOWTMIA 11/10B76.5 | YES | 22.9%B=0.5942 ★ | 5.4%B=0.8948 | 5.5%B=0.8930 | 5.5% | WIN (YES) | +$780.57 |
| 926 | 2026-10-10 | LOWTMIA 11/10B78.5 | YES | 36.2%B=0.1308 | 15.0%B=0.0226 ★ | 16.5%B=0.0272 | 16.5% | LOSS (NO) | −$45.38 |
| 925 | 2026-10-10 | LOWTMIA 11/10B80.5 | NO | 30.7%B=0.0943 | 10.2%B=0.0105 ★ | 56.0%B=0.3136 | 56.0% | WIN (NO) | +$57.68 |
| 924 | 2026-10-10 | LOWTBOS 11/10B45.5 | NO | 6.0%B=0.0036 ★ | 10.5%B=0.0110 | 14.0%B=0.0196 | 14.0% | WIN (NO) | +$7.28 |
| 923 | 2026-10-10 | LOWTDC 11/10B58.5 | YES | 9.7%B=0.0094 | 2.1%B=0.0004 ★ | 4.0%B=0.0016 | 4.0% | LOSS (NO) | −$33.68 |
| 922 | 2026-10-10 | LOWTSFO 11/10B49.5 | NO | 9.4%B=0.0089 | 1.6%B=0.0003 ★ | 18.0%B=0.0324 | 18.0% | WIN (NO) | +$9.90 |
| 921 | 2026-10-10 | LOWTSFO 11/10B51.5 | NO | 36.3%B=0.4052 | 16.0%B=0.7051 | 69.5%B=0.0930 ★ | 69.5% | LOSS (YES) | −$45.14 |
| 920 | 2026-10-10 | LOWTNYC 11/10B59.5 | YES | 15.9%B=0.0254 | 3.8%B=0.0014 ★ | 8.5%B=0.0072 | 8.5% | LOSS (NO) | −$45.39 |
| 919 | 2026-10-10 | LOWTNYC 11/10B53.5 | YES | 16.9%B=0.6906 ★ | 3.2%B=0.9369 | 4.5%B=0.9120 | 4.5% | WIN (YES) | +$963.60 |
| 918 | 2026-10-08 | LOWTSEA 9/10B52.5 | YES | 34.1%B=0.1161 | 61.0%B=0.3725 | 6.5%B=0.0042 ★ | 6.5% | LOSS (NO) | −$44.72 |
| 917 | 2026-10-08 | LOWTDEN 9/10B55.5 | NO | 25.9%B=0.5495 | 7.5%B=0.8563 | 31.5%B=0.4692 ★ | 31.5% | LOSS (YES) | −$44.53 |
| 916 | 2026-10-08 | LOWTDEN 9/10B49.5 | YES | 14.5%B=0.0209 | 3.8%B=0.0014 | 3.5%B=0.0012 ★ | 3.5% | LOSS (NO) | −$44.73 |
| 915 | 2026-10-08 | LOWTPHX 9/10B79.5 | NO | 12.5%B=0.0156 ★ | 22.8%B=0.0520 | 31.0%B=0.0961 | 31.0% | WIN (NO) | +$19.84 |
| 914 | 2026-10-08 | LOWTMIA 9/10B79.5 | NO | 33.2%B=0.1103 | 13.0%B=0.0169 ★ | 51.0%B=0.2601 | 51.0% | WIN (NO) | +$46.41 |
| 913 | 2026-10-08 | LOWTMIA 9/10B77.5 | YES | 34.7%B=0.1205 | 13.6%B=0.0185 | 11.0%B=0.0121 ★ | 11.0% | LOSS (NO) | −$44.66 |
| 912 | 2026-10-08 | LOWTBOS 9/10B52.5 | NO | 38.6%B=0.1489 ★ | 60.3%B=0.3631 | 51.0%B=0.2601 | 51.0% | WIN (NO) | +$46.41 |
| 911 | 2026-10-08 | LOWTBOS 9/10B54.5 | YES | 27.5%B=0.5251 | 38.8%B=0.3749 ★ | 14.5%B=0.7310 | 14.5% | WIN (YES) | +$263.34 |
| 910 | 2026-10-08 | LOWTDC 9/10B52.5 | NO | 27.1%B=0.5310 | 8.5%B=0.8375 | 47.0%B=0.2809 ★ | 47.0% | LOSS (YES) | −$44.52 |
| 909 | 2026-10-08 | LOWTCHI 9/10B52.5 | NO | 33.6%B=0.1132 ★ | 44.5%B=0.1976 | 40.0%B=0.1600 | 40.0% | WIN (NO) | +$29.60 |
| 908 | 2026-10-08 | LOWTSFO 9/10B60.5 | YES | 30.9%B=0.0955 | 60.8%B=0.3699 | 3.5%B=0.0012 ★ | 3.5% | LOSS (NO) | −$44.73 |
| 907 | 2026-10-08 | LOWTLAX 9/10B66.5 | YES | 25.7%B=0.0662 | 6.9%B=0.0048 ★ | 17.5%B=0.0306 | 17.5% | LOSS (NO) | −$44.62 |
| 906 | 2026-10-08 | LOWTLAX 9/10B70.5 | YES | 15.7%B=0.0245 | 3.7%B=0.0013 ★ | 5.5%B=0.0030 | 5.5% | LOSS (NO) | −$44.72 |
| 905 | 2026-10-08 | LOWTNYC 9/10B54.5 | NO | 21.3%B=0.0456 | 6.1%B=0.0037 ★ | 40.5%B=0.1640 | 40.5% | WIN (NO) | +$30.38 |
| 904 | 2026-10-08 | LOWTNYC 9/10B50.5 | YES | 33.2%B=0.1100 | 12.6%B=0.0160 | 10.5%B=0.0110 ★ | 10.5% | LOSS (NO) | −$44.73 |
| 903 | 2026-10-06 | HIGHTDC 7/10B74.5 | YES | 30.2%B=0.0912 | 58.1%B=0.3378 | 17.5%B=0.0306 ★ | 17.5% | LOSS (NO) | −$42.70 |
| 902 | 2026-10-06 | HIGHTDC 7/10B72.5 | NO | 27.2%B=0.5293 | 48.5%B=0.2656 | 62.0%B=0.1444 ★ | 62.0% | LOSS (YES) | −$57.76 |
| 901 | 2026-10-06 | HIGHTSFO 7/10B79.5 | YES | 22.2%B=0.0491 | 40.5%B=0.1642 | 13.5%B=0.0182 ★ | 13.5% | LOSS (NO) | −$57.78 |
| 900 | 2026-10-06 | HIGHTSFO 7/10B81.5 | YES | 18.9%B=0.0356 | 34.9%B=0.1216 | 7.5%B=0.0056 ★ | 7.5% | LOSS (NO) | −$57.83 |
| 899 | 2026-10-06 | LOWTSEA 7/10B49.5 | YES | 24.8%B=0.0615 | 25.0%B=0.0627 | 23.0%B=0.0529 ★ | 23.0% | LOSS (NO) | −$48.30 |
| 898 | 2026-10-06 | LOWTSEA 7/10B47.5 | YES | 5.1%B=0.0026 | 7.4%B=0.0055 | 3.0%B=0.0009 ★ | 3.0% | LOSS (NO) | −$44.13 |
| 897 | 2026-10-06 | LOWTSEA 7/10B51.5 | NO | 46.9%B=0.2203 ★ | 70.3%B=0.4937 | 58.5%B=0.3422 | 58.5% | WIN (NO) | +$81.31 |
| 896 | 2026-10-06 | LOWTPHX 7/10B77.5 | NO | 12.8%B=0.0163 ★ | 22.7%B=0.0517 | 21.0%B=0.0441 | 21.0% | WIN (NO) | +$15.33 |
| 895 | 2026-10-06 | LOWTPHX 7/10B79.5 | NO | 21.5%B=0.6167 | 42.0%B=0.3361 | 49.5%B=0.2550 ★ | 49.5% | LOSS (YES) | −$57.57 |
| 894 | 2026-10-06 | LOWTMIA 7/10B73.5 | YES | 9.1%B=0.0082 | 7.8%B=0.0061 | 4.0%B=0.0016 ★ | 4.0% | LOSS (NO) | −$38.12 |
| 893 | 2026-10-06 | LOWTMIA 7/10B77.5 | NO | 33.6%B=0.4405 | 23.3%B=0.5883 | 44.0%B=0.3136 ★ | 44.0% | LOSS (YES) | −$57.68 |
| 892 | 2026-10-06 | LOWTMIA 7/10B75.5 | YES | 24.6%B=0.0606 | 9.2%B=0.0085 | 6.5%B=0.0042 ★ | 6.5% | LOSS (NO) | −$57.79 |
| 891 | 2026-10-06 | LOWTSFO 7/10B61.5 | YES | 44.9%B=0.2013 | 84.0%B=0.7051 | 5.0%B=0.0025 ★ | 5.0% | LOSS (NO) | −$57.80 |
| 890 | 2026-10-06 | LOWTLAX 7/10B72.5 | YES | 52.5%B=0.2761 | 52.4%B=0.2747 | 33.0%B=0.1089 ★ | 33.0% | LOSS (NO) | −$57.75 |
| 889 | 2026-10-06 | LOWTLAX 7/10B70.5 | NO | 9.0%B=0.8273 | 2.0%B=0.9606 | 52.0%B=0.2304 ★ | 52.0% | LOSS (YES) | −$57.60 |
| 888 | 2026-10-06 | LOWTNYC 7/10B48.5 | NO | 22.2%B=0.6057 | 6.0%B=0.8828 | 32.5%B=0.4556 ★ | 32.5% | LOSS (YES) | −$57.38 |
| 887 | 2026-10-04 | HIGHTDC 5/10B75.5 | NO | 27.4%B=0.0749 ★ | 54.1%B=0.2928 | 38.5%B=0.1482 | 38.5% | WIN (NO) | +$16.94 |
| 886 | 2026-10-04 | HIGHTDC 5/10B73.5 | NO | 30.3%B=0.4857 | 55.1%B=0.2015 ★ | 46.0%B=0.2916 | 46.0% | LOSS (YES) | −$66.42 |
| 885 | 2026-10-04 | LOWTDEN 5/10B52.5 | NO | 25.4%B=0.0646 ★ | 44.2%B=0.1952 | 32.0%B=0.1024 | 32.0% | WIN (NO) | +$31.36 |
| 884 | 2026-10-04 | LOWTPHX 5/10B80.5 | NO | 24.1%B=0.5764 | 45.3%B=0.2993 ★ | 36.5%B=0.4032 | 36.5% | LOSS (YES) | −$66.67 |
| 883 | 2026-10-04 | LOWTMIA 5/10B74.5 | YES | 9.2%B=0.0084 | 4.2%B=0.0018 | 3.5%B=0.0012 ★ | 3.5% | LOSS (NO) | −$48.86 |
| 882 | 2026-10-04 | LOWTMIA 5/10B76.5 | YES | 22.6%B=0.0510 | 7.3%B=0.0053 | 5.0%B=0.0025 ★ | 5.0% | LOSS (NO) | −$66.65 |
| 881 | 2026-10-04 | LOWTBOS 5/10B55.5 | YES | 14.9%B=0.0223 | 15.2%B=0.0232 | 3.5%B=0.0012 ★ | 3.5% | LOSS (NO) | −$66.68 |
| 880 | 2026-10-04 | LOWTBOS 5/10B51.5 | NO | 32.4%B=0.1050 ★ | 51.0%B=0.2599 | 54.0%B=0.2916 | 54.0% | WIN (NO) | +$77.76 |
| 879 | 2026-10-04 | LOWTDC 5/10B53.5 | NO | 1.8%B=0.0003 ★ | 8.8%B=0.0077 | 7.0%B=0.0049 | 7.0% | WIN (NO) | +$4.97 |
| 878 | 2026-10-04 | LOWTCHI 5/10B47.5 | NO | 9.9%B=0.0098 ★ | 14.1%B=0.0199 | 17.0%B=0.0289 | 17.0% | WIN (NO) | +$13.60 |
| 877 | 2026-10-04 | LOWTCHI 5/10B49.5 | NO | 28.4%B=0.5121 | 50.3%B=0.2470 ★ | 42.5%B=0.3306 | 42.5% | LOSS (YES) | −$66.12 |
| 876 | 2026-10-04 | LOWTSFO 5/10B64.5 | YES | 43.6%B=0.1903 | 83.6%B=0.6991 | 3.5%B=0.0012 ★ | 3.5% | LOSS (NO) | −$66.68 |
| 875 | 2026-10-04 | LOWTLAX 5/10B74.5 | NO | 29.7%B=0.0883 ★ | 64.5%B=0.4154 | 43.5%B=0.1892 | 43.5% | WIN (NO) | +$51.33 |
| 874 | 2026-10-04 | LOWTNYC 5/10B51.5 | YES | 19.2%B=0.0367 | 15.9%B=0.0252 | 13.0%B=0.0169 ★ | 13.0% | LOSS (NO) | −$59.02 |
| 873 | 2026-10-04 | LOWTNYC 5/10B57.5 | YES | 15.1%B=0.0229 | 18.9%B=0.0358 | 4.5%B=0.0020 ★ | 4.5% | LOSS (NO) | −$66.64 |
| 872 | 2026-10-03 | LOWTNYC 4/10B54.5 | YES | 25.6%B=0.0654 | 37.8%B=0.1426 | 5.0%B=0.0025 ★ | 5.0% | LOSS (NO) | −$4.95 |
| 871 | 2026-10-02 | HIGHTSEA 3/10B66.5 | YES | 26.5%B=0.5395 | 44.5%B=0.3080 ★ | 7.0%B=0.8649 | 7.0% | WIN (YES) | +$730.98 |
| 870 | 2026-10-02 | HIGHTSEA 3/10B70.5 | NO | 17.5%B=0.0307 ★ | 26.0%B=0.0676 | 49.5%B=0.2450 | 49.5% | WIN (NO) | +$58.41 |
| 869 | 2026-10-02 | HIGHTPHX 3/10B97.5 | NO | 43.2%B=0.3223 | 74.6%B=0.0644 ★ | 56.5%B=0.1892 | 56.5% | LOSS (YES) | −$59.60 |
| 868 | 2026-10-02 | HIGHTBOS 3/10B71.5 | YES | 15.1%B=0.0227 | 23.5%B=0.0550 | 4.5%B=0.0020 ★ | 4.5% | LOSS (NO) | −$59.94 |
| 867 | 2026-10-02 | HIGHTBOS 3/10B67.5 | NO | 27.8%B=0.5209 | 45.6%B=0.2955 ★ | 42.5%B=0.3306 | 42.5% | LOSS (YES) | −$59.80 |
| 866 | 2026-10-02 | HIGHTDC 3/10B71.5 | NO | 24.9%B=0.0619 ★ | 42.9%B=0.1836 | 40.0%B=0.1600 | 40.0% | WIN (NO) | +$39.60 |
| 865 | 2026-10-02 | HIGHTDC 3/10B69.5 | NO | 9.2%B=0.0085 ★ | 16.9%B=0.0287 | 32.5%B=0.1056 | 32.5% | WIN (NO) | +$28.60 |
| 864 | 2026-10-02 | HIGHTDC 3/10B73.5 | YES | 31.7%B=0.1007 | 54.9%B=0.3011 | 7.5%B=0.0056 ★ | 7.5% | LOSS (NO) | −$59.93 |
| 863 | 2026-10-02 | HIGHTSFO 3/10B85.5 | YES | 22.9%B=0.0526 | 44.8%B=0.2004 | 16.5%B=0.0272 ★ | 16.5% | LOSS (NO) | −$57.59 |
| 862 | 2026-10-02 | HIGHTSFO 3/10B89.5 | NO | 9.1%B=0.8257 | 19.2%B=0.6527 ★ | 16.5%B=0.6972 | 16.5% | LOSS (YES) | −$59.28 |
| 861 | 2026-10-02 | HIGHTSFO 3/10B83.5 | YES | 19.8%B=0.0391 | 39.7%B=0.1579 | 4.5%B=0.0020 ★ | 4.5% | LOSS (NO) | −$59.94 |
| 860 | 2026-10-02 | LOWTSEA 3/10B53.5 | NO | 32.3%B=0.4588 | 46.1%B=0.2905 | 49.0%B=0.2601 ★ | 49.0% | LOSS (YES) | −$59.67 |
| 859 | 2026-10-02 | LOWTMIA 3/10B75.5 | YES | 15.4%B=0.0236 | 5.2%B=0.0027 ★ | 7.0%B=0.0049 | 7.0% | LOSS (NO) | −$59.92 |
| 858 | 2026-10-02 | LOWTSFO 3/10B57.5 | NO | 10.5%B=0.0110 | 8.2%B=0.0067 ★ | 26.5%B=0.0702 | 26.5% | WIN (NO) | +$21.47 |
| 857 | 2026-10-02 | LOWTNYC 3/10B57.5 | YES | 29.7%B=0.0881 | 48.0%B=0.2304 | 18.0%B=0.0324 ★ | 18.0% | LOSS (NO) | −$59.94 |
| 856 | 2026-10-01 | LOWTNYC 2/10B61.5 | YES | 16.3%B=0.0264 | 3.3%B=0.0011 | 2.5%B=0.0006 ★ | 2.5% | LOSS (NO) | −$7.08 |
| 855 | 2026-09-30 | HIGHTATL 1/10B85.5 | NO | 10.7%B=0.7979 | 4.0%B=0.9211 | 30.5%B=0.4830 ★ | 30.5% | LOSS (YES) | −$68.11 |
| 854 | 2026-09-30 | HIGHTATL 1/10B89.5 | YES | 32.1%B=0.1032 | 1.2%B=0.0001 ★ | 11.5%B=0.0132 | 11.5% | LOSS (NO) | −$68.66 |
| 853 | 2026-09-30 | HIGHTATL 1/10B87.5 | NO | 30.0%B=0.0897 | 1.7%B=0.0003 ★ | 53.5%B=0.2862 | 53.5% | WIN (NO) | +$78.65 |
| 852 | 2026-09-30 | HIGHTSEA 1/10B69.5 | NO | 18.7%B=0.0349 ★ | 27.2%B=0.0740 | 25.5%B=0.0650 | 25.5% | WIN (NO) | +$23.46 |
| 851 | 2026-09-30 | HIGHTSEA 1/10B63.5 | YES | 10.9%B=0.0119 | 13.5%B=0.0184 | 3.5%B=0.0012 ★ | 3.5% | LOSS (NO) | −$66.05 |
| 850 | 2026-09-30 | HIGHTSEA 1/10B67.5 | NO | 31.5%B=0.4689 | 54.7%B=0.2051 ★ | 48.0%B=0.2704 | 48.0% | LOSS (YES) | −$68.64 |
| 849 | 2026-09-30 | HIGHTPHX 1/10B89.5 | YES | 16.6%B=0.0277 | 30.5%B=0.0928 | 5.5%B=0.0030 ★ | 5.5% | LOSS (NO) | −$68.64 |
| 848 | 2026-09-30 | HIGHTPHX 1/10B91.5 | YES | 48.0%B=0.2304 | 84.3%B=0.7098 | 17.0%B=0.0289 ★ | 17.0% | LOSS (NO) | −$68.51 |
| 847 | 2026-09-30 | HIGHTBOS 1/10B79.5 | NO | 24.0%B=0.5783 | 43.8%B=0.3158 ★ | 38.5%B=0.3782 | 38.5% | LOSS (YES) | −$68.27 |
| 846 | 2026-09-30 | HIGHTDC 1/10B86.5 | NO | 31.1%B=0.0970 ★ | 63.5%B=0.4029 | 53.5%B=0.2862 | 53.5% | WIN (NO) | +$78.65 |
| 845 | 2026-09-30 | HIGHTSFO 1/10B75.5 | YES | 22.3%B=0.0497 | 41.0%B=0.1681 | 16.0%B=0.0256 ★ | 16.0% | LOSS (NO) | −$64.16 |
| 844 | 2026-09-30 | LOWTBOS 1/10B58.5 | NO | 31.6%B=0.4678 | 49.9%B=0.2512 ★ | 47.0%B=0.2809 | 47.0% | LOSS (YES) | −$68.37 |
| 843 | 2026-09-30 | LOWTSFO 1/10B55.5 | NO | 31.1%B=0.0970 | 24.1%B=0.0583 ★ | 65.5%B=0.4290 | 65.5% | WIN (NO) | +$130.34 |
| 842 | 2026-09-30 | LOWTSFO 1/10B57.5 | YES | 51.4%B=0.2642 | 80.1%B=0.6422 | 14.5%B=0.0210 ★ | 14.5% | LOSS (NO) | −$68.58 |
| 841 | 2026-09-30 | LOWTLAX 1/10B65.5 | YES | 59.0%B=0.3477 | 92.4%B=0.8539 | 32.0%B=0.1024 ★ | 32.0% | LOSS (NO) | −$68.48 |
| 840 | 2026-09-28 | HIGHTDC 29/9B76.5 | NO | 36.7%B=0.1345 | 20.1%B=0.0403 ★ | 54.5%B=0.2970 | 54.5% | WIN (NO) | +$19.62 |
| 839 | 2026-09-28 | HIGHTSFO 29/9B79.5 | NO | 13.2%B=0.7526 | 23.5%B=0.5858 ★ | 22.5%B=0.6006 | 22.5% | LOSS (YES) | −$65.10 |
| 838 | 2026-09-28 | HIGHTSFO 29/9B73.5 | YES | 16.6%B=0.0277 | 28.7%B=0.0823 | 5.5%B=0.0030 ★ | 5.5% | LOSS (NO) | −$65.72 |
| 837 | 2026-09-28 | LOWTDEN 29/9B54.5 | NO | 29.4%B=0.4989 | 10.2%B=0.8065 | 37.5%B=0.3906 ★ | 37.5% | LOSS (YES) | −$65.62 |
| 836 | 2026-09-28 | LOWTDEN 29/9B56.5 | NO | 21.3%B=0.0452 | 5.8%B=0.0034 ★ | 32.0%B=0.1024 | 32.0% | WIN (NO) | +$30.72 |
| 835 | 2026-09-28 | LOWTPHX 29/9B68.5 | NO | 22.6%B=0.0512 ★ | 27.7%B=0.0768 | 29.5%B=0.0870 | 29.5% | WIN (NO) | +$27.43 |
B. Named factors
Each row is a named hypothesis used by the learned predictor at training time. Brier Δ is the leave-one-out test delta from the most recent training run — sort by it to see what carried the model.
| Name | Hypothesis | Source | Added | Brier Δ ↓ | Status |
|---|---|---|---|---|---|
| p_ensemble | Mean of four vendor probabilities (ECMWF + GraphCast + GFS + JMA). Hypothesis: vendor disagreement washes out, the mean is the wisest single bet. (Bench 2026-05-11 N=138: ensemble Brier 0.1429 vs kalshi_mid 0.0845 — the average **lost** to the market, so we need to learn weights instead of averaging blindly.) | derived from `predictors/ensemble.py` | 2026-05-09 | ↑ +0.0041 | active |
| forecast_spread | Max − min of the per-vendor probabilities (proxy of model disagreement). Hypothesis: when vendors disagree, the prediction is less trustworthy and the market mid carries more weight than the model. | derived from `predictions.ensemble.inputs.individual_probs` | 2026-05-09 | ↑ +0.0033 | active |
| p_climatology | Historical base rate of (variable in [lower, upper]) over the same date-of-year window from the past 15 years. The dumb-but-honest prior every forecast must beat. | derived from `predictors/climatology.py` (Open-Meteo historical) | 2026-05-09 | ↑ +0.0015 | experimental |
| urban_density_5km | OSM `way["building"]` count within 5 km of the station. Hypothesis: urban heat island raises overnight lows above what a non-urban climatology predicts → biases low-temp markets in cities. Units: building count (not %-area; see README for why). | OSM Overpass API | 2026-05-11 | ↑ +0.0000 | dropped (v3, 2026-06-05 — noise as additive linear term) |
| elevation_m | USGS EPQS elevation at the station point. Hypothesis: thinner air at altitude amplifies the diurnal swing (Denver KDEN ~1638 m vs. Miami KMIA ~2 m at the extremes of our station set). | https://epqs.nationalmap.gov/v1/json | 2026-05-11 | ↑ +0.0000 | dropped (v3, 2026-06-05 — noise as additive linear term) |
| latitude | Station latitude (degrees, signed). Hypothesis: insolation, daylight length, and seasonal amplitude scale with `cos(latitude)` — explicit feature lets the learner discover the interaction with the date-of-year encoded in climatology. | NWS_STATIONS table | 2026-05-11 | ↑ +0.0000 | dropped (v3, 2026-06-05 — noise as additive linear term) |
| forest_pct_5km | OSM `natural=wood` + `landuse=forest` feature count within 5 km. Hypothesis: canopy cover lowers daytime highs (shade + evapotranspiration) and limits radiative night cooling (canopy traps). Units: feature count. | OSM Overpass API | 2026-05-11 | ↑ +0.0000 | dropped (v3, 2026-06-05 — noise as additive linear term) |
| days_ahead | Days between snapshot and target_date. Hypothesis: forecast skill decays with horizon, learned weights should interact non-linearly with this. | derived from `predictions.forecast_blend.inputs.days_ahead` | 2026-05-09 | · ±0.0000 | experimental |
| water_pct_10km | OSM `natural=water` + `waterway=*` feature count within 10 km. Hypothesis: large water bodies dampen diurnal swings via thermal inertia → tightens the [lower, upper] hit probability for both highs and lows. Units: feature count (kept the `_pct_` name from the spec for continuity). | OSM Overpass API | 2026-05-11 | ↓ −0.0000 | dropped (v3, 2026-06-05 — noise as additive linear term) |
| distance_to_coast_km | Haversine distance to the nearest Natural Earth 1:50m coastline vertex. Hypothesis: maritime regime (Boston, Miami, SFO) damps extremes; continental regime (Denver, Oklahoma City) amplifies them. | Natural Earth `ne_50m_coastline.geojson` | 2026-05-11 | ↓ −0.0000 | dropped (v3, 2026-06-05 — noise as additive linear term) |
| p_consensus | Mean of the three correlated probability views (`p_climatology` + `p_forecast_blend` + `p_ensemble`). Hypothesis: those three estimate the same P(YES) by different routes and are near-collinear; under L2 the learner splits one signal across three compensating coefficients (the +1.07 / -0.87 / -0.40 pattern measured on the v2 run). Collapsing them into their mean keeps the shared signal on one stable coefficient, with the orthogonal disagreement axis carried by `forecast_spread`. Standard mean+spread reparametrisation of a collinear block. | derived from `predictors/{climatology,forecast_blend,ensemble}.py` | 2026-06-05 | ↓ −0.0011 | experimental |
| p_forecast_blend | Open-Meteo deterministic forecast around target_date, blended with climatology by horizon. Hypothesis: state-of-art deterministic forecast carries calibrated short-horizon signal. | derived from `predictors/forecast_blend.py` | 2026-05-09 | ↓ −0.0021 | active |
| p_nws_ndfd | P(YES) computed from the NWS NDFD official forecast, gaussian around NDFD temp with sigma from climatology range. Hypothesis: the agency that *resolves* Kalshi weather markets (NWS Climatological Report Daily) should issue the highest-signal forecast available. | https://api.weather.gov | 2026-05-11 | TBD (forward-only — no historical coverage yet) | experimental |
| series_bias_prior | Known mean bias (p_consensus − y) per series_ticker over 61-date backfill. Hypothesis: each Kalshi weather series has a stable series-specific intercept (KXHIGHTSFO −0.090 to BOS/LAX ~0); this continuous prior generalises `is_hightemp` without per-series dummy variables. Expected coef ≈ −1. | backfill_dataset analysis (B24) | 2026-06-21 | TBD (v3b run, pending HOLDOUT > 20 dates) | experimental |
| forecast_revision | Change in p_consensus between earliest and latest capture of the same ticker. Hypothesis: drift velocity of the consensus toward YES/NO encodes atmospheric persistence; complementary to the level (p_consensus) and the horizon decay (days_ahead). | derived via dataset.annotate_revision_drift() across multi-day forward captures (B23) | 2026-06-21 | TBD (v4, pending multi-capture pipeline) | experimental |
| p_consensus_x_series_bias_fa | Interaction p_consensus × series_bias_fa. Hypothesis: bias correction should scale with confidence level — when p_consensus is high and series overestimates, the error is larger. Tested B38 2026-06-21: NO-GO (VALID p=0.912, 3/12 dates, Brier worse than incumbent). | derived from p_consensus × series_bias_fa | 2026-06-21 | +0.0002 (VALID, worse) | dropped (v3fb NO-GO, 2026-06-21) |
| days_ahead_x_series_bias_fa | Interaction days_ahead × series_bias_fa. Hypothesis: per-series calibration bias scales with forecast horizon — longer horizons may amplify series-specific miscalibration. Tested B38 2026-06-21: NO-GO (VALID p=0.633, 6/12 dates, tie). | derived from days_ahead × series_bias_fa | 2026-06-21 | 0.0000 (VALID, tie) | dropped (v3fb NO-GO, 2026-06-21) |
| pop_per_km2 | Inhabitants / km² in a disk around the official station (WorldPop 2020 count / πr²). Not OSM building counts. Hypothesis: city heat raises overnight lows. Measured 2026-09-12 on 18 stations: Spearman vs typical min is ~0.10 at 5-20 km (no effect). Additive residual on A1 holdout does not beat 0.1154. | WorldPop `usa_ppp_2020_1km_Aggregated.tif` (doi.org/10.5258/SOTON/WP00674) | 2026-09-12 | +0.0075 vs station_bias (worse); -0.0021 vs raw at 20 km | dropped (additive, 2026-09-12; place label for the mutual only) |
| veg_frac | Vegetation fraction (km² green / km²) from ESA WorldCover 2021 classes 10/20/30/40/90/95/100. Not OSM tree counts. Hypothesis: canopy lowers daytime highs. Measured 2026-09-12: Spearman vs typical max is ~-0.07 at 5 km (no effect). | ESA WorldCover 10 m 2021 v200 (doi.org/10.5281/zenodo.7254221) | 2026-09-12 | tested jointly with pop/water | dropped (additive, 2026-09-12; no temperature rank on these 18 airports) |
| water_frac | Permanent-water fraction (class 80, including sea) from the same WorldCover map. Not OSM waterway counts. Hypothesis: water damps the day-night range. Measured 2026-09-12: Spearman vs typical range -0.88 at 20 km, -0.75 at 10 km, -0.70 at 5 km, -0.37 at 1 km (18 stations). Additive residual on daily bins still loses to the 0.1154 city-corrected mix (0.1229 best). | ESA WorldCover 10 m 2021 v200 | 2026-09-12 | +0.0075 vs station_bias (worse); -0.0021 vs raw at 20 km | dropped as live additive (2026-09-12); kept as a place label for the mutual |
Click a row for the full hypothesis, source link, and per-run history. Brier Δ is the leave-one-out test-Brier delta from the latest run — negative (↓) = feature carried signal, positive (↑) = net noise on this split.
C. Latest training run
Snapshot of the most recent sklearn fit of the learned predictor on historical resolutions. This is not a paper trade — it's a cross-validation pass to see whether the current feature set has edge over kalshi_mid on past Kalshi events.
D. Training run history
Every sklearn training pass, most recent first. This is not the paper-trade history — see section A for that. A training run with Brier test below Brier kalshi_mid on the same rows means the model has signal beyond the market mid in cross-validation.
| When (UTC) | Feature set | n_test | Brier test | Brier kalshi_mid | Gap | Verdict | Notes |
|---|---|---|---|---|---|---|---|
| 2026-06-05 12:34 UTC | v3 | 84 | 0.1359 | 0.1098 | +0.0261 | MARKET WINS | — |
| 2026-05-14 19:19 UTC | v2 | 84 | 0.1323 | 0.1305 | +0.0018 | MARKET WINS | Phase A.2 rerun under clean target_date split; supersedes invalidated 20260514T141925Z. Decision-gate run for the temporal-split fix. |
| 2026-05-12 13:45 UTC | v2 | 65 | 0.1301 | 0.0764 | +0.0537 | MARKET WINS | schema v2: add intercept + feature_means/stds for live inference |
| 2026-05-11 13:08 UTC | v2 | 42 | 0.1260 | 0.0282 | +0.0978 | MARKET WINS | First A.3 discovery run. V2 = V0 baseline + 6 static geographic features (urban_density_5km, water_pct_10km, forest_pct_5km, elevation_m, distance_to_coast_km, latitude). N=138 resolved, train=96 (older), test=42 (newer). Test slice currently collapses to a single capture date (20260510T171217Z) — limits temporal variance; geographic deltas mostly null on this split as expected. |
E. Training Brier trajectory
Learned model (test) vs kalshi_mid (same test rows) across all training runs. Dashed horizontal line is the most recent kalshi_mid Brier as all-time reference; vertical dashed markers flag a feature-set bump (v0 → v1 → v2 …).
F. Backtest replays
Replayed records produced by backtest.py against settled Kalshi events. Only strict point-in-time records count toward N_backtest_strict; NAIVE-mode rows are flagged and excluded from the hybrid sample. Filters above narrow both this table and the live runs section.