You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CRSP data now come from CRSP v2 (CIZ) instead of the legacy CRSP files. WRDS is retiring the legacy format. Both the signals and the portfolio code were migrated, including the WRDS prep scripts. Rebuilding the most-revised signals on legacy CRSP changes their replication R² by less than 1 point, so the main effects seem to come through CIZ's SIC codes (next item) and exchange codes. (#211) (#215) (#216)
SIC codes now differ between legacy CRSP and CIZ, although Schwarz, Walter and Weiss (JFQA 2026) found them nearly identical in a July 2024 vintage. Legacy CRSP left a growing share of new listings unclassified (SIC 9999), about two-thirds by 2015. Since mid-2024, CRSP appears to have filled in those codes in CIZ only, so in current data about 189k previously unclassified stock-months now have SIC codes. We use the CIZ codes, which mainly changes post-2010 returns of industry-based signals such as Herf and IndMom. See Docs/CRSP-v2-Migration.md. (#212)
The data release is now parquet files on Hugging Face (OpenSourceAP/CrossSection), one file per set of signals or portfolios, instead of zipped csvs on Google Drive. Google Drive could not handle the download volume. The new Shipping/Code/ builds, checks and uploads the release. (#228)
Performance Improvements
Portfolio code runs on parallel workers with lower peak RAM. The full build, including daily portfolios, takes about 3.6 hours with 3 workers. Run settings moved to Portfolios/Code/config.R.
Minor Bug Fixes
Calendar lags (l12. etc.) now consistently use the shared stata_multi_lag helper. Most signals are unchanged or lose a few percent of rows; the main revisions are CompositeDebtIssuance and the MomOffSeason* signals. (#219)
PayoutYield and NetPayoutYield: fixed preferred stock handling, improving replication, updated portfolio construction. See SignalDoc.csv. Thanks to Seongdeok Ko (Seoul National University, @SeongDeokKo) for pointing this out. (#207)
CompositeDebtIssuance: fixed infinite values. Thanks to Silas Wang (@silaswang19) for pointing this out. (#209)
IntanBM, IntanSP, IntanCFP, IntanEP: all four now take logs, and IntanEP uses ib, consistent with the original paper. Thanks to Peng Li (University of Bath, @mk0417) for pointing this out. (#210)
High52: prices are now split-adjusted, and the 52-week high includes the current month, so the ratio lies between 0 and 1, as in George and Hwang (2004). Thanks to @gliedtke-at-ub for pointing this out. (#205)
13F signals (DelBreadth, IO_ShortInterest, Activism1, Activism2): checked split adjustments for look-ahead bias and found none, since the code compares ratios of shares. The adjustments are now isolated in one block to make this clear. (#155)
dCPVolSpread: fixed the return sign in SignalDoc.csv. (#206)
Signal browser: mobile-friendly layout and fixed broken code links. (#191) (#204)
Compatibility and robustness: signal scripts work with Polars 2, TrendFactor uses much less memory, and the 13F prep accepts the new WRDS date format.