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-08-10T19:29:07Z (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 |
|---|---|---|---|---|---|---|---|---|---|
| 666 | 2026-08-09 | LOWTPHX 10/8B85.5 | YES | 17.2% | 16.6% | 6.5% | 6.5% | PENDING | — |
| 665 | 2026-08-09 | LOWTPHX 10/8B89.5 | NO | 19.2% | 38.6% | 47.5% | 47.5% | PENDING | — |
| 664 | 2026-08-09 | LOWTMIA 10/8B80.5 | NO | 18.4% | 12.9% | 38.5% | 38.5% | PENDING | — |
| 663 | 2026-08-09 | LOWTBOS 10/8B66.5 | NO | 3.4% | 5.8% | 9.5% | 9.5% | PENDING | — |
| 662 | 2026-08-09 | LOWTDC 10/8B72.5 | NO | 2.7% | 6.2% | 9.0% | 9.0% | PENDING | — |
| 661 | 2026-08-09 | LOWTDC 10/8B76.5 | YES | 54.5% | 90.3% | 45.5% | 45.5% | PENDING | — |
| 660 | 2026-08-09 | LOWTCHI 10/8B72.5 | NO | 17.9% | 25.0% | 36.5% | 36.5% | PENDING | — |
| 659 | 2026-08-09 | LOWTCHI 10/8B70.5 | YES | 60.9% | 93.3% | 36.5% | 36.5% | PENDING | — |
| 658 | 2026-08-09 | LOWTSFO 10/8B55.5 | NO | 5.4% | 1.9% | 13.0% | 13.0% | PENDING | — |
| 657 | 2026-08-09 | LOWTSFO 10/8B57.5 | NO | 40.1% | 25.7% | 61.5% | 61.5% | PENDING | — |
| 656 | 2026-08-09 | LOWTSFO 10/8B59.5 | YES | 49.8% | 80.7% | 20.5% | 20.5% | PENDING | — |
| 655 | 2026-08-09 | LOWTLAX 10/8B67.5 | NO | 4.5% | 6.2% | 48.5% | 48.5% | PENDING | — |
| 654 | 2026-08-09 | LOWTNYC 10/8B69.5 | NO | 2.6% | 5.8% | 14.0% | 14.0% | PENDING | — |
| 653 | 2026-08-09 | LOWTNYC 10/8B71.5 | NO | 12.3% | 12.5% | 28.5% | 28.5% | PENDING | — |
| 652 | 2026-08-09 | LOWTNYC 10/8B75.5 | YES | 31.8% | 61.4% | 13.5% | 13.5% | PENDING | — |
| 651 | 2026-08-07 | LOWTDEN 8/8B64.5 | NO | 2.9%B=0.0008 ★ | 5.0%B=0.0025 | 26.5%B=0.0702 | 26.5% | WIN (NO) | +$22.00 |
| 650 | 2026-08-07 | LOWTDEN 8/8B66.5 | NO | 5.3%B=0.8968 | 7.7%B=0.8511 | 33.5%B=0.4422 ★ | 33.5% | LOSS (YES) | −$61.18 |
| 649 | 2026-08-07 | LOWTPHX 8/8B88.5 | NO | 7.4%B=0.0055 ★ | 8.6%B=0.0074 | 15.5%B=0.0240 | 15.5% | WIN (NO) | +$11.16 |
| 648 | 2026-08-07 | LOWTPHX 8/8B90.5 | NO | 20.0%B=0.0400 ★ | 30.1%B=0.0905 | 48.5%B=0.2352 | 48.5% | WIN (NO) | +$57.71 |
| 647 | 2026-08-07 | LOWTMIA 8/8B81.5 | YES | 42.1%B=0.3348 | 66.1%B=0.1149 ★ | 35.0%B=0.4225 | 35.0% | WIN (YES) | +$113.75 |
| 646 | 2026-08-07 | LOWTMIA 8/8B79.5 | NO | 31.3%B=0.0979 | 23.4%B=0.0549 ★ | 39.5%B=0.1560 | 39.5% | WIN (NO) | +$39.90 |
| 645 | 2026-08-07 | LOWTBOS 8/8B72.5 | YES | 38.2%B=0.1459 | 62.3%B=0.3877 | 19.5%B=0.0380 ★ | 19.5% | LOSS (NO) | −$61.23 |
| 644 | 2026-08-07 | LOWTDC 8/8B75.5 | NO | 30.1%B=0.0905 ★ | 44.5%B=0.1983 | 39.0%B=0.1521 | 39.0% | WIN (NO) | +$39.00 |
| 643 | 2026-08-07 | LOWTCHI 8/8B67.5 | NO | 2.3%B=0.0005 ★ | 6.8%B=0.0046 | 14.0%B=0.0196 | 14.0% | WIN (NO) | +$9.94 |
| 642 | 2026-08-07 | LOWTCHI 8/8B71.5 | YES | 54.2%B=0.2942 | 88.9%B=0.7900 | 38.0%B=0.1444 ★ | 38.0% | LOSS (NO) | −$61.18 |
| 641 | 2026-08-07 | LOWTSFO 8/8B59.5 | YES | 44.0%B=0.1940 | 73.9%B=0.5468 | 24.5%B=0.0600 ★ | 24.5% | LOSS (NO) | −$61.25 |
| 640 | 2026-08-07 | LOWTSFO 8/8B57.5 | NO | 33.2%B=0.4459 | 23.0%B=0.5936 | 60.5%B=0.1560 ★ | 60.5% | LOSS (YES) | −$61.23 |
| 639 | 2026-08-07 | LOWTLAX 8/8B65.5 | NO | 2.9%B=0.0008 ★ | 3.3%B=0.0011 | 13.5%B=0.0182 | 13.5% | WIN (NO) | +$9.45 |
| 638 | 2026-08-07 | LOWTLAX 8/8B67.5 | NO | 13.1%B=0.7554 | 11.7%B=0.7795 | 55.0%B=0.2025 ★ | 55.0% | LOSS (YES) | −$61.20 |
| 637 | 2026-08-07 | LOWTNYC 8/8B75.5 | YES | 58.3%B=0.3399 | 57.2%B=0.3267 | 40.5%B=0.1640 ★ | 40.5% | LOSS (NO) | −$61.16 |
| 636 | 2026-08-04 | LOWTDEN 5/8B53.5 | NO | 13.5%B=0.0183 ★ | 18.6%B=0.0347 | 29.5%B=0.0870 | 29.5% | WIN (NO) | ±$0.00 |
| 635 | 2026-08-04 | LOWTDEN 5/8B57.5 | YES | 23.2%B=0.0537 | 39.5%B=0.1563 | 4.5%B=0.0020 ★ | 4.5% | LOSS (NO) | −$72.36 |
| 634 | 2026-08-04 | LOWTPHX 5/8B85.5 | YES | 17.5%B=0.0306 | 15.0%B=0.0225 | 4.0%B=0.0016 ★ | 4.0% | LOSS (NO) | −$72.32 |
| 633 | 2026-08-04 | LOWTPHX 5/8B89.5 | NO | 19.8%B=0.0394 ★ | 22.6%B=0.0509 | 45.5%B=0.2070 | 45.5% | WIN (NO) | +$60.06 |
| 632 | 2026-08-04 | LOWTMIA 5/8B78.5 | NO | 31.8%B=0.4652 | 16.6%B=0.6957 | 39.0%B=0.3721 ★ | 39.0% | LOSS (YES) | −$71.98 |
| 631 | 2026-08-04 | LOWTMIA 5/8B76.5 | NO | 18.7%B=0.0351 | 6.4%B=0.0040 ★ | 31.5%B=0.0992 | 31.5% | WIN (NO) | +$33.07 |
| 630 | 2026-08-04 | LOWTMIA 5/8B80.5 | YES | 26.4%B=0.0696 | 47.9%B=0.2296 | 13.5%B=0.0182 ★ | 13.5% | LOSS (NO) | −$72.23 |
| 629 | 2026-08-04 | LOWTDC 5/8B73.5 | YES | 37.1%B=0.1374 | 53.2%B=0.2825 | 30.5%B=0.0930 ★ | 30.5% | LOSS (NO) | −$72.28 |
| 628 | 2026-08-04 | LOWTDC 5/8B71.5 | NO | 3.5%B=0.0012 ★ | 6.3%B=0.0040 | 11.5%B=0.0132 | 11.5% | WIN (NO) | +$9.31 |
| 627 | 2026-08-04 | LOWTCHI 5/8B65.5 | YES | 15.1%B=0.0228 | 3.9%B=0.0015 ★ | 4.5%B=0.0020 | 4.5% | LOSS (NO) | −$72.36 |
| 626 | 2026-08-04 | LOWTCHI 5/8B67.5 | YES | 31.5%B=0.0991 | 14.8%B=0.0220 ★ | 20.5%B=0.0420 | 20.5% | LOSS (NO) | −$72.16 |
| 625 | 2026-08-04 | LOWTCHI 5/8B69.5 | NO | 30.5%B=0.4833 | 14.3%B=0.7352 | 43.0%B=0.3249 ★ | 43.0% | LOSS (YES) | −$71.82 |
| 624 | 2026-08-04 | LOWTSFO 5/8B56.5 | NO | 11.0%B=0.0121 | 1.6%B=0.0002 ★ | 22.5%B=0.0506 | 22.5% | WIN (NO) | +$20.92 |
| 623 | 2026-08-04 | LOWTSFO 5/8B58.5 | NO | 50.7%B=0.2428 | 70.1%B=0.0895 ★ | 62.5%B=0.1406 | 62.5% | LOSS (YES) | −$72.00 |
| 622 | 2026-08-04 | LOWTLAX 5/8B67.5 | NO | 44.9%B=0.3038 | 78.0%B=0.0484 ★ | 56.5%B=0.1892 | 56.5% | LOSS (YES) | −$72.21 |
| 621 | 2026-08-04 | LOWTNYC 5/8B67.5 | NO | 22.7%B=0.0514 ★ | 24.9%B=0.0618 | 39.5%B=0.1560 | 39.5% | WIN (NO) | +$47.00 |
| 620 | 2026-08-02 | LOWTDEN 3/8B68.5 | NO | 8.0%B=0.0064 | 2.6%B=0.0007 ★ | 15.0%B=0.0225 | 15.0% | WIN (NO) | ±$0.00 |
| 619 | 2026-08-02 | LOWTPHX 3/8B92.5 | NO | 34.3%B=0.4320 | 62.4%B=0.1415 ★ | 46.5%B=0.2862 | 46.5% | LOSS (YES) | −$82.93 |
| 618 | 2026-08-02 | LOWTPHX 3/8B90.5 | YES | 23.6%B=0.0559 | 29.7%B=0.0880 | 10.5%B=0.0110 ★ | 10.5% | LOSS (NO) | −$82.95 |
| 617 | 2026-08-02 | LOWTMIA 3/8B77.5 | NO | 21.2%B=0.0450 | 4.6%B=0.0021 ★ | 32.5%B=0.1056 | 32.5% | WIN (NO) | +$39.65 |
| 616 | 2026-08-02 | LOWTMIA 3/8B79.5 | YES | 49.0%B=0.2400 | 38.4%B=0.1478 | 35.5%B=0.1260 ★ | 35.5% | LOSS (NO) | −$82.71 |
| 615 | 2026-08-02 | LOWTMIA 3/8B81.5 | YES | 31.4%B=0.0984 | 13.1%B=0.0170 | 9.5%B=0.0090 ★ | 9.5% | LOSS (NO) | −$82.94 |
| 614 | 2026-08-02 | LOWTBOS 3/8B68.5 | YES | 26.1%B=0.0682 | 29.7%B=0.0885 | 15.5%B=0.0240 ★ | 15.5% | LOSS (NO) | −$82.93 |
| 613 | 2026-08-02 | LOWTDC 3/8B74.5 | YES | 66.1%B=0.1149 | 73.9%B=0.0680 ★ | 45.5%B=0.2970 | 45.5% | WIN (YES) | +$99.19 |
| 612 | 2026-08-02 | LOWTCHI 3/8B62.5 | YES | 46.5%B=0.2867 ★ | 32.8%B=0.4517 | 32.5%B=0.4556 | 32.5% | WIN (YES) | +$172.12 |
| 611 | 2026-08-02 | LOWTCHI 3/8B64.5 | YES | 49.5%B=0.2450 | 41.1%B=0.1686 | 35.5%B=0.1260 ★ | 35.5% | LOSS (NO) | −$82.71 |
| 610 | 2026-08-02 | LOWTSFO 3/8B56.5 | NO | 55.4%B=0.1986 | 51.0%B=0.2399 | 67.0%B=0.1089 ★ | 67.0% | LOSS (YES) | −$82.83 |
| 609 | 2026-08-02 | LOWTSFO 3/8B54.5 | YES | 28.0%B=0.0786 | 8.0%B=0.0063 ★ | 13.5%B=0.0182 | 13.5% | LOSS (NO) | −$82.89 |
| 608 | 2026-08-02 | LOWTLAX 3/8B67.5 | NO | 40.0%B=0.3606 | 22.8%B=0.5953 | 61.0%B=0.1521 ★ | 61.0% | LOSS (YES) | −$82.68 |
| 607 | 2026-08-02 | LOWTNYC 3/8B70.5 | NO | 6.1%B=0.8817 | 1.4%B=0.9731 | 24.5%B=0.5700 ★ | 24.5% | LOSS (YES) | −$82.30 |
| 606 | 2026-08-02 | LOWTNYC 3/8B72.5 | NO | 24.3%B=0.0593 | 6.0%B=0.0036 ★ | 45.0%B=0.2025 | 45.0% | WIN (NO) | +$67.50 |
| 605 | 2026-08-02 | LOWTNYC 3/8B74.5 | YES | 65.3%B=0.4261 | 71.0%B=0.5045 | 11.5%B=0.0132 ★ | 11.5% | LOSS (NO) | −$82.92 |
| 604 | 2026-07-31 | LOWTDEN 1/8B64.5 | YES | 41.0%B=0.1682 | 55.3%B=0.3053 | 13.5%B=0.0182 ★ | 13.5% | LOSS (NO) | ±$0.00 |
| 603 | 2026-07-31 | LOWTMIA 1/8B79.5 | NO | 25.7%B=0.0658 | 11.1%B=0.0124 ★ | 40.5%B=0.1640 | 40.5% | WIN (NO) | +$53.87 |
| 602 | 2026-07-31 | LOWTMIA 1/8B77.5 | NO | 17.6%B=0.0311 | 3.2%B=0.0011 ★ | 35.5%B=0.1260 | 35.5% | WIN (NO) | +$43.31 |
| 601 | 2026-07-31 | LOWTDC 1/8B68.5 | NO | 4.4%B=0.0020 ★ | 7.5%B=0.0056 | 15.0%B=0.0225 | 15.0% | WIN (NO) | +$13.95 |
| 600 | 2026-07-31 | LOWTDC 1/8B72.5 | YES | 43.9%B=0.1929 | 66.8%B=0.4460 | 25.5%B=0.0650 ★ | 25.5% | LOSS (NO) | −$79.05 |
| 599 | 2026-07-31 | LOWTCHI 1/8B68.5 | YES | 44.9%B=0.2013 | 75.4%B=0.5679 | 35.5%B=0.1260 ★ | 35.5% | LOSS (NO) | −$79.16 |
| 598 | 2026-07-31 | LOWTCHI 1/8B64.5 | NO | 3.4%B=0.0012 ★ | 6.5%B=0.0043 | 13.5%B=0.0182 | 13.5% | WIN (NO) | +$12.28 |
| 597 | 2026-07-31 | LOWTCHI 1/8B66.5 | YES | 42.8%B=0.3270 | 67.3%B=0.1072 ★ | 27.5%B=0.5256 | 27.5% | WIN (YES) | +$208.07 |
| 596 | 2026-07-31 | LOWTSFO 1/8B54.5 | YES | 14.2%B=0.0202 | 2.5%B=0.0006 ★ | 5.5%B=0.0030 | 5.5% | LOSS (NO) | −$79.14 |
| 595 | 2026-07-31 | LOWTSFO 1/8B58.5 | YES | 40.1%B=0.1608 | 23.7%B=0.0562 ★ | 29.5%B=0.0870 | 29.5% | LOSS (NO) | −$79.06 |
| 594 | 2026-07-31 | LOWTSFO 1/8B56.5 | NO | 34.7%B=0.4269 | 14.4%B=0.7321 | 59.5%B=0.1640 ★ | 59.5% | LOSS (YES) | −$78.98 |
| 593 | 2026-07-31 | LOWTLAX 1/8B68.5 | NO | 37.3%B=0.1388 | 23.4%B=0.0550 ★ | 43.5%B=0.1892 | 43.5% | WIN (NO) | +$60.90 |
| 592 | 2026-07-31 | LOWTLAX 1/8B66.5 | NO | 25.7%B=0.5518 | 8.9%B=0.8302 | 32.5%B=0.4556 ★ | 32.5% | LOSS (YES) | −$78.98 |
| 591 | 2026-07-31 | LOWTNYC 1/8B71.5 | YES | 41.3%B=0.3440 ★ | 24.0%B=0.5782 | 29.5%B=0.4970 | 29.5% | WIN (YES) | +$188.94 |
| 590 | 2026-07-31 | LOWTNYC 1/8B67.5 | NO | 8.7%B=0.0075 | 1.6%B=0.0003 ★ | 26.5%B=0.0702 | 26.5% | WIN (NO) | +$28.36 |
| 589 | 2026-07-31 | LOWTNYC 1/8B69.5 | NO | 22.8%B=0.0520 | 5.3%B=0.0028 ★ | 41.5%B=0.1722 | 41.5% | WIN (NO) | +$56.03 |
| 588 | 2026-07-29 | LOWTDEN 30/7B65.5 | YES | 45.7%B=0.2086 | 33.5%B=0.1123 | 29.0%B=0.0841 ★ | 29.0% | LOSS (NO) | ±$0.00 |
| 587 | 2026-07-29 | LOWTPHX 30/7B90.5 | NO | 23.7%B=0.0563 ★ | 39.5%B=0.1564 | 37.5%B=0.1406 | 37.5% | WIN (NO) | +$49.12 |
| 586 | 2026-07-29 | LOWTMIA 30/7B80.5 | YES | 40.0%B=0.3600 ★ | 22.3%B=0.6037 | 31.0%B=0.4761 | 31.0% | WIN (YES) | +$182.85 |
| 585 | 2026-07-29 | LOWTMIA 30/7B78.5 | NO | 24.7%B=0.0610 | 6.2%B=0.0039 ★ | 35.5%B=0.1260 | 35.5% | WIN (NO) | +$45.08 |
| 584 | 2026-07-29 | LOWTBOS 30/7B61.5 | NO | 5.1%B=0.0026 ★ | 6.9%B=0.0048 | 11.0%B=0.0121 | 11.0% | WIN (NO) | +$10.12 |
| 583 | 2026-07-29 | LOWTDC 30/7B68.5 | NO | 12.8%B=0.0165 | 2.5%B=0.0006 ★ | 27.0%B=0.0729 | 27.0% | WIN (NO) | +$30.24 |
| 582 | 2026-07-29 | LOWTCHI 30/7B63.5 | YES | 42.5%B=0.3304 ★ | 27.2%B=0.5305 | 33.5%B=0.4422 | 33.5% | WIN (YES) | +$162.93 |
| 581 | 2026-07-29 | LOWTCHI 30/7B65.5 | YES | 33.3%B=0.1108 | 15.8%B=0.0249 ★ | 24.0%B=0.0576 | 24.0% | LOSS (NO) | −$82.08 |
| 580 | 2026-07-29 | LOWTSFO 30/7B58.5 | YES | 30.6%B=0.0935 | 11.7%B=0.0137 ★ | 17.0%B=0.0289 | 17.0% | LOSS (NO) | −$82.11 |
| 579 | 2026-07-29 | LOWTSFO 30/7B54.5 | YES | 22.7%B=0.0515 | 5.1%B=0.0026 ★ | 7.0%B=0.0049 | 7.0% | LOSS (NO) | −$82.11 |
| 578 | 2026-07-29 | LOWTSFO 30/7B56.5 | NO | 35.3%B=0.4190 | 15.0%B=0.7218 | 55.5%B=0.1980 ★ | 55.5% | LOSS (YES) | −$81.88 |
| 577 | 2026-07-29 | LOWTLAX 30/7B63.5 | YES | 12.0%B=0.0145 | 2.2%B=0.0005 ★ | 4.0%B=0.0016 | 4.0% | LOSS (NO) | −$82.16 |
| 576 | 2026-07-29 | LOWTLAX 30/7B67.5 | NO | 39.5%B=0.3661 | 20.6%B=0.6309 | 52.0%B=0.2304 ★ | 52.0% | LOSS (YES) | −$82.08 |
| 575 | 2026-07-29 | LOWTLAX 30/7B65.5 | YES | 28.7%B=0.0821 | 8.7%B=0.0075 | 5.0%B=0.0025 ★ | 5.0% | LOSS (NO) | −$82.15 |
| 574 | 2026-07-29 | LOWTNYC 30/7B64.5 | NO | 13.1%B=0.0171 | 2.4%B=0.0006 ★ | 24.5%B=0.0600 | 24.5% | WIN (NO) | +$26.46 |
| 573 | 2026-07-29 | LOWTNYC 30/7B68.5 | YES | 42.5%B=0.1810 | 24.9%B=0.0619 | 17.5%B=0.0306 ★ | 17.5% | LOSS (NO) | −$82.07 |
| 572 | 2026-07-27 | HIGHTSFO 28/7B71.5 | NO | 15.7%B=0.7102 | 17.3%B=0.6836 | 30.5%B=0.4830 ★ | 30.5% | LOSS (YES) | −$5.56 |
| 571 | 2026-07-27 | LOWTDEN 28/7B68.5 | YES | 53.7%B=0.2889 | 87.2%B=0.7609 | 12.0%B=0.0144 ★ | 12.0% | LOSS (NO) | −$79.44 |
| 570 | 2026-07-27 | LOWTPHX 28/7B87.5 | YES | 11.1%B=0.0123 | 11.7%B=0.0138 | 3.5%B=0.0012 ★ | 3.5% | LOSS (NO) | −$78.19 |
| 569 | 2026-07-27 | LOWTMIA 28/7B79.5 | YES | 41.2%B=0.1699 | 25.2%B=0.0636 | 19.5%B=0.0380 ★ | 19.5% | LOSS (NO) | −$79.37 |
| 568 | 2026-07-27 | LOWTMIA 28/7B77.5 | NO | 25.2%B=0.5599 | 3.8%B=0.9259 | 47.5%B=0.2756 ★ | 47.5% | LOSS (YES) | −$79.28 |
| 567 | 2026-07-27 | LOWTDC 28/7B67.5 | YES | 7.1%B=0.0050 | 12.1%B=0.0147 | 4.5%B=0.0020 ★ | 4.5% | LOSS (NO) | −$74.97 |
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) |
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.