Skip to content

feat(factors): net-share-issuance (Pontiff-Woodgate), screened positive#15

Open
EranDaniel98 wants to merge 2 commits into
mainfrom
feat/net-share-issuance
Open

feat(factors): net-share-issuance (Pontiff-Woodgate), screened positive#15
EranDaniel98 wants to merge 2 commits into
mainfrom
feat/net-share-issuance

Conversation

@EranDaniel98

Copy link
Copy Markdown
Owner

What this is

The net-share-issuance factor (Pontiff-Woodgate composite-issuance anomaly) — the highest-conviction cheap, on-disk item from the 2026-06-01 tri-model discovery agenda. Built PIT from cached EDGAR companyfacts and screened through factor_lab.

Files

  • src/factors/net_share_issuance.py — PIT extractor + loader + net_share_issuance_factor() (ticker/raw/rank/z_score). Mirrors accruals_pit.py.
  • scripts/build_nsi_sidecar.py — per-snapshot nsi_pit.json builder (reuses cached companyfacts; ~90% coverage, ~24k records/snapshot). Sidecar JSONs are gitignored (regenerable).
  • scripts/factor_lab.py — NSI wired as a screenable base signal.
  • reports/net_share_issuance_findings_2026-06-01.md — the screen write-up.

Screen result (3 regimes × {21d, 63d}, n_perm=500)

net_share_issuance   avg fwd-IC +0.0173   2/6 signif   sign_cons 100%
  • Positive, directionally robust — all 6 cells positive (binomial p≈0.016), modest magnitude (same band as the composite's pead/quality/value legs). Cleanest new-factor screen of the session.
  • Not a standalone edge — incremental value over the live m+q+v+PEAD composite is the deciding test (a WF-gated phase-envelope backtest), not answered by IC.

Limitation

EDGAR shares are as-reported; splits masquerade as issuance. The extractor drops |nsi_1y| > 0.5 as a crude split/M&A guard — replace with proper Polygon split adjustment if the factor proves incrementally valuable.

Pure additive: a new factor module + sidecar builder + one screenable signal in factor_lab. No change to live trading logic.

🤖 Generated with Claude Code

EranDaniel98 and others added 2 commits June 1, 2026 14:04
… positive

Top cheap/on-disk item from the 2026-06-01 tri-model discovery agenda.
nsi_1y = log(shares_t / shares_{t-1y}) PIT from cached EDGAR companyfacts
(filing-date keyed), net repurchasers bullish. Built as a Postgres-free
sidecar mirroring accruals_pit.py.

factor_lab screen (3 regimes x {21d,63d}, n_perm=500): avg fwd-IC +0.0173,
100% sign-consistent across all 6 cells (joint directional p~0.016), 2/6 cells
individually significant. Mid-pack -- same band as the composite's own
pead/quality/value legs, and the cleanest new-factor screen of the session
(vs the distressed-insider NULL). Modest standalone signal; incremental value
over the live m+q+v+PEAD composite is the next gate (not answered by IC).

Limitation: EDGAR shares are as-reported, so splits look like issuance; the
extractor drops |nsi_1y|>0.5 as a crude split/M&A guard. Replace with Polygon
split adjustment if the factor proves incrementally valuable.

Files: src/factors/net_share_issuance.py, scripts/build_nsi_sidecar.py,
factor_lab wiring. Sidecars (data/snapshots/*/nsi_pit.json) are gitignored
(regenerable via build_nsi_sidecar).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…redundant)

Adds `--composite-factors n` (loads the nsi sidecar; off by default, mqv
unchanged) so net-share-issuance can be tested as a 5th composite leg.
WF-gated phase-envelope vs mqv baseline across 3 regimes: NSI nudges CAPM-alpha
+2.0pp (COVID) / +1.2pp (2022) but -1.7pp (bull), walk-forward equal-or-worse
in all three, all deltas within per-window noise. Verdict: redundant, does NOT
ship into the composite (overlaps existing premia). Leg kept as reusable test
infra. Findings updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant