guidance-tracker
You hand over a ticker. The skill pulls every corporate guidance event Benzinga has on record over the lookback window, compares each event to the prior figure for the same fiscal period, and labels it as a raise, cut, reaffirmation, or initiation. Groups results by fiscal period so the reader can see "management guided FY26 EPS at $5.20 in January, raised to $5.60 in April, reaffirmed in June."
When to invoke
- A PM asks "has NVDA management been raising or cutting guidance this cycle?"
- A fundamental analyst wants a heads-up on companies that just lowered guidance
- Screening a watchlist for consistent raisers as a bullish tilt
- The user says "guidance history", "guidance trajectory", "management raise", "corporate guidance track record"
Not for: consensus vs guided (that's earnings-drilldown territory). Not for actual vs guided (also earnings-drilldown once the print lands).
What you need
- A ticker (
--ticker, required) MASSIVE_API_KEYexported- Stocks Basic plan minimum PLUS Benzinga Corporate Guidance add-on (approx $99/mo). Without the add-on the endpoint returns NOT_AUTHORIZED; the skill emits a clean tier caveat and no events.
Optional:
--lookback-days(default 540): calendar-day window back from today.
What you get back
Two output layers from one run.
Layer 1: canonical JSON matching output-schema.json.
Per-event: date, fiscal_year, fiscal_period, label
(raised/lowered/reaffirmed/initiation/mixed/unclear),
EPS midpoint current and prior, revenue midpoint current and prior,
per-metric direction and delta_pct. Top-level by_period group of
events per fiscal period plus a trajectory array showing the sequence
of labels for that period.
Layer 2: rendered note. Header with counts by label, timeline
sorted most-recent-first with EPS and revenue on the same line as
the raise/cut tag, one-line Take. See
references/rendering.md.
How it works
- Pull guidance events via
GET /benzinga/v1/guidance?ticker={T}&date.gte={D}&limit=1000&sort=date.desc. - Classify per event using the endpoint's built-in
previous_fields. EPS midpoint =estimated_eps_guidance(fallback to(min+max)/2). Prior midpoint =(previous_min + previous_max)/2. Delta_pct =(cur - prior) / |prior|. Below 0.5% isreaffirmed; above israisedorlowered; missing prior isinitiation. - Combine EPS and revenue labels into a headline:
raised+raised= raised;raised+lowered= mixed; and so on. - Group by fiscal_period. Each period gets its trajectory (the ordered sequence of labels), so "FY26 Q4: initiated → raised → raised → reaffirmed" is one legible line.
- Take summarizes the overall balance of raises vs cuts and surfaces the most-recent event's label.
Foundations used
massive-api-patternsfor REST auth, retry, pagination.
Output mode: note
Narrative note with a chronological timeline. Guidance events are few per name (5-30 in 18 months typically); a wide table would lose the fiscal-period grouping that makes the timeline legible.
Endpoints used
GET /benzinga/v1/guidance?ticker={T}&date.gte={D}— every guidance event Benzinga has on record for the ticker in the window.
Doesn't handle (yet)
- Chain to actual results. No comparison of guided vs delivered.
earnings-drilldowncovers actual-vs-consensus; a workflow composite could add actual-vs-guided. - Cross-ticker sector scan. No "list every consumer name that cut guidance this quarter." Queued as a composite.
- Analyst reaction overlay. No pairing with rating changes /
price target moves. Would compose cleanly with a future
analyst-tracker. - Detection of guidance-plan vs one-off. No flag for "management gives structural annual guidance" vs "gave a one-off during a special-situation update."
These are clean PR extensions. The output schema is forward-compatible.