SPB Git

spb/wp17_uqo

Public
14.8 KB

# REVIEW REPORT — Editorial board, 2026-10-17

WP 17 — Does the Language of Artificial Intelligence Move Markets? A Semantic Analysis of S&P 500 SEC Filings and the Cross-Section of Stock Returns, 2010–2026 (Kammoun, Tandjambianda, Boucher). Version reviewed: 1.0 (June 2026, 39 p., docs/main_pre-revision-20261017.pdf). Version produced: 1.1 (October 2026, 54 p., paper/main.pdf). Board composition for this paper: empirical asset pricing, textual analysis / NLP in finance, accounting and disclosure, panel econometrics. Target journals considered: JFE, RFS, JF, JFQA, Review of Accounting Studies, JAR, Journal of Empirical Finance, Finance Research Letters, IRFA. The audit trail of every change is in docs/CHANGELOG-REVISION.md.


# 1. Summary verdict

The paper asks a good question with a genuinely useful measurement technology, and its timing design (filing year Y → July Y+1 to June Y+2) is look-ahead-free. But the June 2026 draft contained one factual misdescription of the data serious enough to invalidate the paper as written, and several inferential overstatements that together turned a thin, one-cohort result into a "regime change" narrative. Specifically:

  1. The corpus is not what the paper said it was. The text, abstract, tables and appendix describe "the full text of annual reports (Form 10-K), parsed section by section", filed in February–March of Y+1. Inspection of the EDGAR Research Database shows that the scoring engine had processed only Form 8-K current reports (103,926, all 500 firms) and 3,710 Form 10-Q reports belonging to 84 alphabetically contiguous firms (SMCI→ZTS); zero 10-K filings were parsed, and fiscal_year is the calendar year of the filing date. The AI measure is therefore a measure of announcement language (median 28 chunks per firm-year, two chunks per 8-K), and 16 % of firm-years get a mechanical boost (+0.67 SD on the composite z-score, t = 6.7) from the presence of a scored 10-Q. The look-ahead argument survives (gap ≥ 6 months), but the whole description of the measurement had to be rewritten, and the headline results re-estimated on an 8-K-only signal (they hold: +1.6 → +16.3 pp).
  2. The post-2022 "regime" rests on one cohort. The three post-launch cohorts earned +9.3, −4.0 and +38.4 pp. The draft wrote "uniformly large and positive for every post-2022 cohort", which its own Figure 3 contradicts. Without the 2024 cohort the post-period spread is +2.6 pp, equal to the pre-period. Winsorizing returns halves the pooled post spread (+14.7 → +7.2 pp) because three memory/storage stocks (WDC, MU, STX) returned +600 % to +970 % in the 2024 cohort.
  3. The post-period Newey–West t-statistics (2.07–2.44) are computed on three annual observations and carry no information. Inference was re-based on 36 monthly long-short returns (HAC t = 2.20, Sharpe 1.32) and on pooled firm-clustered tests.
  4. The signal is largely a technology-sector bet after 2022. Adding an IT-sector factor built from the panel reduces the post-period FF6 alpha from 5.2 % (t 1.72) to 1.9 % per year (t 0.86), with β_TECH = 0.47; sector dummies halve the Fama–MacBeth slope (5.5 → 2.9, t 1.4); sector×year FE leave +1.3 (t 1.2); the sector-neutral sort gives +3.8 (t 0.8).
  5. A coding error produced degenerate standard errors in the event-time DiD (clustering by year on year-specific coefficients: SE ≈ 0.001, t ≈ 20–30). With firm-clustered SEs the pre-launch premium on fixed exposure is significantly positive in 2015 (+3.9, t 2.8) and 2016 (+3.0, t 2.3), as large as in 2022 (+3.4); the "flat pre-trend" claim is withdrawn.
  6. The event-study inference ignored cross-sectional dependence (single event date; Welch t = 1.97). Dependence-robust portfolio tests give t = 2.28 at one year but only 1.35 at sixty days — the horizon at which an attention shock should show.

After revision the paper's defensible claim is narrower: AI language in current reports was essentially unpriced in 2010–2021, became strongly related to returns in the 2024 cohort and modestly in 2022, mostly through the technology sector and persistent firm-level exposure; this is consistent with a sector-level re-rating during the AI investment cycle, not with a stable premium or a sharp attention shock. We regard the revised paper as an honest and useful working paper, publishable in a field journal after the extensions in §7 are done, but not yet competitive at a top-three finance journal.

# 2. Diagnosis by section

Section Strengths Weaknesses found Action
Abstract Clear question, clear design 10-K claim false; "sextuples", "exceptional"; Sharpe 0.15/1.33 from an unversioned file; t = 1.97 presented as significant Rewritten (corpus, numbers, tone)
Introduction Good motivation, four-angle structure "every post-2022 cohort"; "the very same sort"; Mag-7 argument correct but beside the point (the drivers are mid-caps); contribution overstated Rewritten; third contribution now = the fragility analysis
Literature Well chosen core references No embedding-based disclosure papers (Hanley–Hoberg, Li et al.), no FinBERT, no multiple-testing or event-study-inference literature, no survivorship reference; Acemoglu key mislabelled 21 verified references added; new §2.6 on short samples and event-study inference; hypotheses sharpened
Data Timing convention sound; within-year standardization appropriate Corpus misdescribed; "fiscal year" wrong; persistence numbers unsourced; survivorship under-discussed; no equations for the measure §3.1 rewritten with Table 1 (corpus); equations (1)–(5); new §3.4 universe; persistence verified (0.883/0.726)
Methodology Six complementary designs One equation; no discussion of 3-observation inference, 15 year clusters, cross-sectional dependence; event-time clustering error 15 numbered equations; inferential limits explicit; TECH factor; CDA statistic
Results Tables clean, figures informative Cohort claim false; interaction coefficients in decimals; Sharpe unsourced; outliers not examined; "largest single-theme effect in the recent record" New Table 9 (cohorts, leave-one-out, pooled raw/winsorized, monthly series with TECH); economic-significance section rewritten
Robustness Broad battery Placebo ignores that cybersecurity (+13.5) and automation (+7.2) also rise and that both anchors mention AI; event study independence; DiD SE bug; 6-month horizon "holds" with +1.1 pp on 2 cohorts; no 8-K-only or entrant checks Table 13 (CDA), Table 16 (8-K-only, entrants, break definition, sector), §6.3 rewritten, 6-month claim corrected
Discussion Thoughtful mechanism discussion Mechanism (attention shock) not supported by timing (effect peaks 2.5 years after launch, weak at 60 days / 6 months) Rewritten around sector-cycle interpretation; limitations ranked
Conclusion — Overstated Rewritten; next steps: score 10-Ks, point-in-time index, new cohorts
Appendix Variable table No anchor texts; reproducibility section generic Exact anchor texts; corpus composition and the 84 tickers; reproducibility updated
Tables Generated by scripts (05/09), then hand-polished Two template fragments with fictitious numbers (125,400 obs.) in the repo; 10-K wording; mixed units Fragments deleted; notes corrected; units harmonized
Bibliography Correct entries No DOIs; two working papers now published/updated 57 entries, 56 DOIs, all Crossref-verified

# 3. Methodology — verdict on each point of the master prompt §3

  • Specification justified: yes for sorts, FM, panel; the DiD "treatment" (pre-determined exposure × Post) is a reasonable device but parallel trends fail (2015–2016 premia). Documented.
  • Estimation assumptions explicit: now yes (equations 1–15; HAC lags; cluster dimensions; estimation/event windows).
  • Variables correctly defined: corrected (filing year; 8-K/10-Q; composite; TECH; pre-determined exposure).
  • Fixed effects appropriate: firm + year FE absorb the persistent signal by construction — correctly interpreted as a finding about levels vs changes; sector×year FE added as the relevant alternative.
  • Temporal dependence: annual holding windows do not overlap (12-month return, annual formation), so NW(3) on annual spreads is defensible for the 15-year series; it is meaningless for 3 observations — replaced. Monthly LS returns do overlap in membership but not in time; HAC(3) is adequate.
  • Standard errors: double clustering with 15 year clusters is thin (Petersen 2009; Thompson 2011) — now stated, with firm-clustered alternatives. Event-time clustering corrected. Event-study dependence corrected.
  • Sample construction transparent: now yes (Table 1, Appendix C, §3.4).
  • Robustness addresses genuine threats: the original battery addressed mega-caps, signal construction, horizon, PCA; it did not address corpus composition, entrants, sector factor, outliers, break definition — all added.
  • Coefficient interpretation: units fixed; monthly vs annual spread difference explained (monthly rebalancing caps compounding of extreme winners).
  • Statistical vs economic significance: Sharpe standard error (~0.58) now stated; winsorized spread given as the better summary.
  • Causal claims: removed; "consistent with" language throughout.

# 4. Literature — references verified / added / removed

All 36 original entries were verified on Crossref (DOI resolved; author, journal, volume, pages checked) and received DOIs; cong2022textfactor, kelly2019textregression, lopezlira2023risk, webb2020, reimers2019sbert, eisfeldt2023generative were corrected or completed. 21 references were added (list and DOIs in the CHANGELOG §2); each is cited in the text where it does work (embedding-based disclosure measurement; AI and markets; multiple testing; event-study inference; survivorship; clustering; momentum factor). No reference was removed. MacKinlay (1997) has no Crossref DOI; JSTOR id noted.

# 5. Results — inconsistencies found and resolved

  • Abstract +2.4 vs tables +2.5 for the pre-period composite spread (0.02449): harmonized to +2.5.
  • "Sharpe 0.15 → 1.33" (unversioned results_extra.json) vs recomputed 0.22 → 1.32 with cohort-consistent sub-periods.
  • Interaction coefficients 0.0199 etc. in decimals next to spreads in %: converted to pp/SD.
  • 6- and 24-month post spreads shown without t (NaN, 2 cohorts): flagged.
  • Caption of Fig. 3 ("uniformly positive") contradicted by the figure: corrected.
  • README: "survivorship handled through point-in-time membership" contradicted the paper (current membership): corrected.
  • tab_panel note "firm × year" FE (interaction) vs two-way (additive) FE: corrected.
  • Persistence 0.88/0.73 unsourced: verified (0.883/0.726) and versioned.
  • Two template table fragments with fictitious numbers in paper/tables/: deleted.
  • Figure axis labels "Fiscal year of 10-K": regenerated.

# 6. Remaining limitations (after revision)

  1. Three post-launch cohorts; one drives the average; last cohort ends with a partial month (prices to 17 June 2026).
  2. Corpus = 8-K + partial 10-Q; the original question about annual-report narrative is untested.
  3. Current-membership universe; exits not observed; return levels biased upward.
  4. AI language ≈ technology sector after 2022; within-sector premium positive but insignificant everywhere.
  5. Constant-shares market-cap proxy; Yahoo Finance rather than CRSP; French factors end April 2026 (34 of 36 post months).
  6. Single anchor set; sensitivity to anchor wording untested.
  7. Long-horizon market-model event study; DiD parallel trends violated.
  8. Multiple comparisons across 4 signals × 3 aggregations × 3 horizons × 8 placebo factors × sub-periods; no formal adjustment.
Analysis Why not executed What it would need
Score the 7,655 Form 10-K filings and re-run everything on annual-report text Parsing + embedding of 88 GB of HTML; hours on the cluster; outside the < 30 min local rule and the no-download rule project-db ingest pipeline on the EDGAR DB; then 02_build_panel.py on a 10-K panel
Point-in-time S&P 500 membership (historical constituents, exits) Not available locally CRSP/Compustat index constituents or a curated constituent-history file
Alternative anchor sets (paraphrased anchors; keyword baseline; all-mpnet-base-v2) Requires re-embedding/re-scoring 491k chunks EDGAR DB build_factors.py with modified anchors.py
External semiconductor/AI factor (SOX index, SMH) and CRSP-based size proxy External downloads forbidden by protocol Yahoo/CRSP download; add to 11_review_reanalysis.py block A
Weighting filings by chunk count in the annual aggregation (chunk-weighted score) Needs chunk-level or filing-level scores for all firms; filing-level scores exported only by form type Extend 10_filing_type_scores.py to export filing-level rows (107k rows, feasible, ~10 MB)
Block bootstrap / randomization inference on the break date With 3 post cohorts the distribution is degenerate; placebo break dates on 12 pre cohorts would be informative Add to 11_review_reanalysis.py (feasible, < 1 min)
Calendar-time portfolio with FF6 for the event study (Mitchell–Stafford) Partly covered by the monthly LS series; daily factors not in repo Daily French factors (download)
Additional post-2024 cohorts Data do not exist yet Re-run in July 2027

# 8. Maturity for publication

  • Target venues: Finance Research Letters / Journal of Empirical Finance / IRFA as a short, cautious empirical note on the fragility of post-ChatGPT "AI factors"; Review of Accounting Studies / JAR would require the 10-K corpus and a point-in-time universe; JFE/RFS/JF would additionally require a longer post-period and a sharper identification of firm-level vs sector-level repricing.
  • Rejection risks as it stands: (i) corpus composition (8-K + partial 10-Q) will be read as a data-quality problem even if honestly disclosed; (ii) one-cohort result; (iii) current-membership universe; (iv) sector confound; (v) the paper now partly reads as a critique of its own first version, which is right for a working paper but will need to be rewritten as a positive contribution ("how fragile are AI-text factors?") for submission.
  • What would make it strong: the three not-executed items at the top of §7, plus one more year of data.

# 9. Integrity statement

No number in the revised paper was changed without a recomputation by a versioned script; the original files are preserved (docs/original_report_*.tex, docs/main_pre-revision-20261017.pdf, tag pre-revision-20261017). The only change to an original script is the clustering fix in 06_extended.py; all other blocks of its output are bit-identical. The revised text states explicitly which claims of version 1.0 are withdrawn.

Files · cf83735618c8471cdab6946aeeb2d2322f63c876
Menu

Theme