← Back to Research

Horizon sweep: predictability across 1–10 day horizons

Panel FE regressions of cumulative forward returns on score_mean across multiple horizons.

Updated: 2026-04-05
Study
PredictabilityStatus: LIVE
Updated: 2026-04-05
Horizons
1,2,5,10
Signal
score_mean
Tickers
507
Obs
261179
Sample ticker
Tickers (panel)
507
Obs (panel)
261179
R² (TS)
R² (FE)

Key findings

  • Horizon profiles show whether any predictability is short-lived or persists over longer windows.
  • Interpretation: if coefficients decay quickly with horizon, sentiment behaves like a short-term reaction; persistent coefficients are more consistent with slow diffusion.
Specification
  • For each horizon h: r_{t+1..t+h} ~ score_mean(t) (+ controls), within-ticker FE.
Data
  • Universe: S&P 500 tickers in your snapshot pipeline.
  • Frequency: Daily.
  • Returns: log(P_t) − log(P_{t−1}) from ticker JSON prices.
  • Sentiment: score_mean from your sentiment pipeline (ticker JSON).
Limitations
  • Timing: after-close articles can contaminate same-day results; predictive tests mitigate this but do not fully solve it.
  • Causality: results are descriptive; omitted variables and measurement error remain.
  • Trading: no transaction costs / slippage / capacity modeled.
References (minimal)
  • Newey, W. K., & West, K. D. (1987). A simple, positive semi-definite, heteroskedasticity and autocorrelation consistent covariance matrix.
  • Petersen, M. A. (2009). Estimating standard errors in finance panel data sets.

Methodology

  • For each horizon h: compute cumulative forward return r_{t+1..t+h}.
  • Run panel FE regression on score_mean(t) (+ controls), cluster SE by ticker.

Figures

Charts are from the sample ticker (not the full panel).

Series (sample)

No series available.

Sentiment (sample)

score_mean
No sentiment series available. Export results.series.score_mean.

Tables

Horizon sweep (panel FE): cumulative forward returns vs signal
Horizon (days)β(score_mean)tpSig
1-1.332e-4-1.283520.1993106.083e-6
2-4.885e-4-3.4765985.078e-4***4.214e-5
5-6.161e-4-2.564040.010346**2.755e-5
10-8.094e-4-2.3056630.021129**2.487e-5
Note: exported by the Python builder; formatting is intentionally compact.
Models
This study is primarily descriptive (figures/tables). No regression model outputs were exported.

Appendix

Raw exported objects (reproducibility / debugging).
Raw exported JSON (collapsed)
{
  "results": {
    "tables": [
      {
        "title": "Horizon sweep (panel FE): cumulative forward returns vs signal",
        "columns": [
          "Horizon (days)",
          "β(score_mean)",
          "t",
          "p",
          "Sig",
          "R²"
        ],
        "rows": [
          [
            1,
            -0.00013323464208029765,
            -1.2835202416152551,
            0.1993098726609117,
            "",
            0.000006083300493009425
          ],
          [
            2,
            -0.0004885304137229944,
            -3.4765983823071616,
            0.0005078178783719178,
            "***",
            0.000042138168820704536
          ],
          [
            5,
            -0.000616066069436158,
            -2.564039541387773,
            0.010346175703174898,
            "**",
            0.000027554434735455047
          ],
          [
            10,
            -0.0008094489397038605,
            -2.305663139586866,
            0.021129462266930646,
            "**",
            0.000024865467736723268
          ]
        ]
      }
    ],
    "horizon_sweep": {
      "table": {
        "title": "Horizon sweep (panel FE): cumulative forward returns vs signal",
        "columns": [
          "Horizon (days)",
          "β(score_mean)",
          "t",
          "p",
          "Sig",
          "R²"
        ],
        "rows": [
          [
            1,
            -0.00013323464208029765,
            -1.2835202416152551,
            0.1993098726609117,
            "",
            0.000006083300493009425
          ],
          [
            2,
            -0.0004885304137229944,
            -3.4765983823071616,
            0.0005078178783719178,
            "***",
            0.000042138168820704536
          ],
          [
            5,
            -0.000616066069436158,
            -2.564039541387773,
            0.010346175703174898,
            "**",
            0.000027554434735455047
          ],
          [
            10,
            -0.0008094489397038605,
            -2.305663139586866,
            0.021129462266930646,
            "**",
            0.000024865467736723268
          ]
        ]
      },
      "stats": {
        "horizons": [
          1,
          2,
          5,
          10
        ],
        "signal": "score_mean"
      }
    },
    "n_tickers": 507,
    "n_obs_panel": 261179
  },
  "methodology": [
    "For each horizon h: compute cumulative forward return r_{t+1..t+h}.",
    "Run panel FE regression on score_mean(t) (+ controls), cluster SE by ticker."
  ],
  "sections": [
    {
      "title": "Specification",
      "bullets": [
        "For each horizon h: r_{t+1..t+h} ~ score_mean(t) (+ controls), within-ticker FE."
      ]
    },
    {
      "title": "Data",
      "bullets": [
        "Universe: S&P 500 tickers in your snapshot pipeline.",
        "Frequency: Daily.",
        "Returns: log(P_t) − log(P_{t−1}) from ticker JSON prices.",
        "Sentiment: score_mean from your sentiment pipeline (ticker JSON)."
      ]
    },
    {
      "title": "Limitations",
      "bullets": [
        "Timing: after-close articles can contaminate same-day results; predictive tests mitigate this but do not fully solve it.",
        "Causality: results are descriptive; omitted variables and measurement error remain.",
        "Trading: no transaction costs / slippage / capacity modeled."
      ]
    },
    {
      "title": "References (minimal)",
      "bullets": [
        "Newey, W. K., & West, K. D. (1987). A simple, positive semi-definite, heteroskedasticity and autocorrelation consistent covariance matrix.",
        "Petersen, M. A. (2009). Estimating standard errors in finance panel data sets."
      ]
    }
  ],
  "conclusions": [
    "Horizon profiles show whether any predictability is short-lived or persists over longer windows.",
    "Interpretation: if coefficients decay quickly with horizon, sentiment behaves like a short-term reaction; persistent coefficients are more consistent with slow diffusion."
  ]
}