← Back to Research

Event study: return dynamics around extreme sentiment

Panel event study using within-ticker z-score of sentiment. Compare average CAR/AAR paths for extreme positive vs negative sentiment days.

Updated: 2026-04-05
Study
Event studyStatus: LIVE
Updated: 2026-04-05
z threshold
2.0
window
5
N pos
13608
N neg
11870
warning
date range
2024-10-31..2026-04-03
Sample ticker
Tickers (panel)
507
Obs (panel)
261179
R² (TS)
R² (FE)

Key findings

  • Event-study profiles help distinguish immediate reaction vs post-event drift.
  • Asymmetries between positive and negative events can suggest non-linear responses to sentiment extremes.
Specification
  • AAR(τ) = mean return at event-time τ across events.
  • CAR(τ) computed relative to event date using log returns.
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.
  • MacKinlay, A. C. (1997). Event studies in economics and finance. Journal of Economic Literature.

Methodology

  • Compute within-ticker z-score of score_mean.
  • Define events: z≥threshold (positive) and z≤−threshold (negative).
  • Compute average abnormal return (AAR) and cumulative abnormal return (CAR) paths around events: tau ∈ [−W..W].

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

Event study CAR (z≥2.0 / z≤−2.0): cumulative log return
Event typeCAR(+1)CAR(+5)
Positive-4.161e-4-8.666e-4
Negative-1.402e-4-1.636e-4
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": {
    "n_tickers": 507,
    "n_obs_panel": 261179,
    "event_study": {
      "stats": {
        "z_thr": 2,
        "window": 5,
        "n_pos": 13608,
        "n_neg": 11870,
        "dedup_gap": 0,
        "warning": "—"
      },
      "series": {
        "tau": [
          -5,
          -4,
          -3,
          -2,
          -1,
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "aar_pos": [
          0.0005101570815763624,
          -0.00004081955967644973,
          -0.00004107875923609897,
          0.0003275094233872985,
          -0.00008636528108676883,
          0.004189741013740667,
          -0.0004160648819658812,
          -0.00020741016232403753,
          -0.000017514727420027708,
          -0.0004217843557251382,
          0.000196132116268917
        ],
        "aar_neg": [
          -0.0006425097615992088,
          -0.0009691409470284341,
          -0.0008713810881102337,
          -0.0010617182573540776,
          -0.0014193744044491328,
          -0.00849886720839026,
          -0.00014015765620113295,
          0.00017990924370211251,
          -0.00011020367900047485,
          -0.0003186589090092016,
          0.0002255399189789069
        ],
        "car_pos": [
          -0.0006694029049643447,
          -0.00015924582338798176,
          -0.0002000653830644311,
          -0.00024114414230053038,
          0.00008636528108676883,
          0,
          -0.0004160648819658812,
          -0.0006234750442899188,
          -0.0006409897717099483,
          -0.0010627741274350864,
          -0.0008666420111661712
        ],
        "car_neg": [
          0.004964124458541079,
          0.004321614696941868,
          0.003352473749913448,
          0.002481092661803206,
          0.0014193744044491328,
          0,
          -0.00014015765620113295,
          0.00003975158750097958,
          -0.00007045209149949527,
          -0.000389111000508696,
          -0.00016357108152978964
        ],
        "aar_pos_se": [
          0.0001468321754413668,
          0.000146192888293565,
          0.00015294877271477983,
          0.00014787595392344745,
          0.00015308119845865785,
          0.00015297962483160383,
          0.00014840862640122334,
          0.00014054047392110807,
          0.00014945071450468228,
          0.00014408348766943306,
          0.00014332665090023615
        ],
        "aar_neg_se": [
          0.0001700221641626554,
          0.0001630069057743741,
          0.0001670127505861431,
          0.00016621936985360735,
          0.0001847373784331844,
          0.0002025396024126403,
          0.00018240492178625594,
          0.00016470748915606583,
          0.0001616984489260161,
          0.00016567558987369636,
          0.0001681680646573039
        ],
        "car_pos_se": [
          0.00032792359601631956,
          0.0002952377188307074,
          0.0002579434224115485,
          0.00020899241572595073,
          0.00015308119845865785,
          0,
          0.00014840862640122334,
          0.000204968998865221,
          0.0002506378305037249,
          0.0002885579192011415,
          0.0003191947767610057
        ],
        "car_neg_se": [
          0.00038124920468026363,
          0.0003433587651207517,
          0.0002990230729244957,
          0.0002464107376459901,
          0.0001847373784331844,
          0,
          0.00018240492178625594,
          0.00023830240419327057,
          0.0002842008764913188,
          0.00032883993807754884,
          0.00036659307506187297
        ],
        "se_aar_pos": [
          0.0001468321754413668,
          0.000146192888293565,
          0.00015294877271477983,
          0.00014787595392344745,
          0.00015308119845865785,
          0.00015297962483160383,
          0.00014840862640122334,
          0.00014054047392110807,
          0.00014945071450468228,
          0.00014408348766943306,
          0.00014332665090023615
        ],
        "se_aar_neg": [
          0.0001700221641626554,
          0.0001630069057743741,
          0.0001670127505861431,
          0.00016621936985360735,
          0.0001847373784331844,
          0.0002025396024126403,
          0.00018240492178625594,
          0.00016470748915606583,
          0.0001616984489260161,
          0.00016567558987369636,
          0.0001681680646573039
        ],
        "se_car_pos": [
          0.00032792359601631956,
          0.0002952377188307074,
          0.0002579434224115485,
          0.00020899241572595073,
          0.00015308119845865785,
          0,
          0.00014840862640122334,
          0.000204968998865221,
          0.0002506378305037249,
          0.0002885579192011415,
          0.0003191947767610057
        ],
        "se_car_neg": [
          0.00038124920468026363,
          0.0003433587651207517,
          0.0002990230729244957,
          0.0002464107376459901,
          0.0001847373784331844,
          0,
          0.00018240492178625594,
          0.00023830240419327057,
          0.0002842008764913188,
          0.00032883993807754884,
          0.00036659307506187297
        ]
      },
      "table": {
        "title": "Event study CAR (z≥2.0 / z≤−2.0): cumulative log return",
        "columns": [
          "Event type",
          "CAR(+1)",
          "CAR(+5)"
        ],
        "rows": [
          [
            "Positive",
            -0.0004160648819658812,
            -0.0008666420111661712
          ],
          [
            "Negative",
            -0.00014015765620113295,
            -0.00016357108152978964
          ]
        ]
      }
    },
    "tables": [
      {
        "title": "Event study CAR (z≥2.0 / z≤−2.0): cumulative log return",
        "columns": [
          "Event type",
          "CAR(+1)",
          "CAR(+5)"
        ],
        "rows": [
          [
            "Positive",
            -0.0004160648819658812,
            -0.0008666420111661712
          ],
          [
            "Negative",
            -0.00014015765620113295,
            -0.00016357108152978964
          ]
        ]
      }
    ]
  },
  "methodology": [
    "Compute within-ticker z-score of score_mean.",
    "Define events: z≥threshold (positive) and z≤−threshold (negative).",
    "Compute average abnormal return (AAR) and cumulative abnormal return (CAR) paths around events: tau ∈ [−W..W]."
  ],
  "sections": [
    {
      "title": "Specification",
      "bullets": [
        "AAR(τ) = mean return at event-time τ across events.",
        "CAR(τ) computed relative to event date using log returns."
      ]
    },
    {
      "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.",
        "MacKinlay, A. C. (1997). Event studies in economics and finance. Journal of Economic Literature."
      ]
    }
  ],
  "conclusions": [
    "Event-study profiles help distinguish immediate reaction vs post-event drift.",
    "Asymmetries between positive and negative events can suggest non-linear responses to sentiment extremes."
  ]
}