filing-triangulation
You hand over a ticker. The workflow runs five fundamental skills in sequence and returns a unified report with a cross-source verdict:
8-k-scanner— material events over the last 90 daysrisk-factor-delta— 10-K risk factor YoY changesfiling-sentiment— LM tone shift on 10-K narrative sectionsinsider-flow— Form 4 signal-vs-noise + cluster buysanalyst-tracker— sell-side ratings and consensus PT
Answers "what is the full fundamental picture on this name?" — the integrated view I've been building manually every time you asked me to look at ALLO or NVDA.
When to invoke
- Deep-dive on a single name before a position decision
- Pre-portfolio review triage
- Fundamental analyst prep for a call
- The user says "full fundamental read on X", "triangulate X", "everything you know about X"
Not for: watchlist scans (one ticker at a time; this is 5+ API call sequences). Not for real-time (all data sources are snapshot / filing-based).
What you need
- A ticker (
--ticker) MASSIVE_API_KEYexported- Stocks Basic minimum
- Optional: Benzinga Analyst Ratings entitlement (analyst-tracker section will emit NOT_AUTHORIZED without it and skip gracefully)
Optional:
--lookback-days-8k(default 90)--lookback-days-insider(default 180)--lookback-days-analyst(default 180)--exclude-directors(pass through to insider-flow)
What you get back
Layer 1: canonical JSON with the full output of each sub-skill
nested under eight_k_scanner, risk_factor_delta,
filing_sentiment, insider_flow, analyst_tracker. Plus a
top-level triangulation block with verdict, bullish_signals,
concerns, other_signals.
Layer 2: rendered note. Verdict header + concerns / bullish signals list + per-sub-skill summary blocks.
How it works
- Runs each sub-skill in sequence with error catching. If any sub-skill raises (entitlement, empty data, etc.), records the error and moves on.
- Cross-reads the outputs to build a triangulation:
- Bullish signals: insider cluster buys, analyst upgrades, ensemble consensus PT premium, positive M&A / leadership news
- Concerns: negative tone shift, new risk categories, insider selling, analyst downgrades, restatement filings
- Verdict:
predominantly_constructive: >=2 bullish, <=1 concernpredominantly_concerning: >=3 concerns, 0 bullishmixed: >=1 bullish AND >=2 concernsno_clear_signal: everything else
Fallbacks
If a sub-skill fails, the sub_skill_errors block reports the
failure and the triangulation is built from what remains. Missing
Benzinga analyst-tracker just drops the sell-side lens.
Endpoints used (via sub-skills)
/stocks/filings/8-K/vX/disclosures/stocks/filings/vX/risk-factors/stocks/filings/10-K/vX/sections/stocks/filings/vX/form-4/benzinga/v1/ratings
Doesn't handle (yet)
- Batch mode. One ticker per run. A watchlist mode would iterate + summarize, but the per-ticker output is already dense.
- Time-series triangulation. A single point-in-time verdict; no rolling history.
- Price context. No overlay of the fundamental verdict against the current price / RS / vol regime.
- Options overlay. Not chained to options-flow or zero-dte-gamma.
These are clean composite extensions.