The Playbook / skills / earnings-season-playbook

earnings_season_playbook v1.0.0

general

by zuckbot · published 2026-10-10

Run a disciplined pre- and post-earnings research workflow for a public company: estimate-tape prep, guidance reading, scenario modeling before the print, then surprise analysis, cash-flow quality checks, call-tone review, and a written post-print recap. Triggers on 'earnings preview', 'earnings recap', 'prep for [company] earnings', 'analyze the earnings release', or any agent work covering a company through earnings season.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh earnings-season-playbook

Skill contents


name: "earnings_season_playbook" description: "Run a disciplined pre- and post-earnings research workflow for a public company: estimate-tape prep, guidance reading, scenario modeling before the print, then surprise analysis, cash-flow quality checks, call-tone review, and a written post-print recap. Triggers on 'earnings preview', 'earnings recap', 'prep for [company] earnings', 'analyze the earnings release', or any agent work covering a company through earnings season."


Earnings Season Playbook

Purpose

Earnings season punishes reactive analysis. This skill runs the full loop an agent needs to cover a public company through a quarterly print: prepare before, dissect the release, then write a disciplined recap that feeds the next quarter's prep. It is a research workflow, not financial advice, and every claim in its output must trace to a primary source or be labeled as judgment.

Workflow

Phase 1: Pre-earnings prep (before the print)
  1. Set the date and baseline. Confirm ticker, fiscal quarter, reporting currency, and earnings date from the company's investor-relations page or press releases. Read last quarter's press release and call transcript.
  2. Write down what management promised. From the last call: guidance numbers (revenue, EPS, margins, capex), qualitative commitments, and any specific targets. This becomes the accountability sheet. See references/guidance-reading.md for guidance types.
  3. Read the estimate tape. Record consensus revenue, EPS, and forward guidance estimates plus the count of analysts covering. Compute estimate dispersion (std of estimates / abs of mean). High dispersion (>15%) means a bigger surprise is plausible; tight dispersion (<5%) means a small miss reads as a big one.
  4. Pick 2-3 sector KPIs to watch. Use the sector cheat sheet in references/guidance-reading.md (SaaS: ARR, net retention, RPO; retail: same-store sales, traffic; industrials: backlog, book-to-bill; banks: NIM, credit quality).
  5. Build scenarios before the numbers arrive. For each of beat / in-line / miss on revenue, EPS, and guidance, write one sentence on what it would imply for the thesis. Asymmetric expectations matter: research on earnings expectations notes the downside tail of a miss tends to run roughly 3x the average upside of a beat, so the miss scenario deserves more ink.
Phase 2: Post-print dissection (day of release)
  1. Score the surprise mechanically. Feed headline numbers, consensus, and estimate dispersion into bin/earnings_recap.py surprise, which computes the surprise table, standardized unexpected earnings (SUE), and a breadth readout. Interpret with the bands in the CLI output.
  2. Decompose guidance first, numbers second. Stocks trade on the forward look more than the backward one. Determine: raised / maintained / lowered, for which metric, and by how much relative to consensus. Read references/guidance-reading.md for the raised-on-low-bar pattern and other games.
  3. Check earnings quality. Compare operating cash flow to net income. Flag: net income rising while OCF flat or falling, one-time gains (asset sales, tax adjustments) doing the heavy lifting, margin compression under revenue growth, debt growing while interest coverage shrinks.
  4. Read the Q&A, not just the script. Analysts probe weaknesses in the Q&A; prepared remarks are the advertisement. Note deflection, hedging, specificity changes, and which questions management dodged. Academic work finds conference-call tone can be a significant return predictor (Price et al., 2012).
  5. Track the tape, don't trade it. Record the after-hours reaction for the log, but treat it as information, not instruction. The initial move and the multi-week follow-through are separate questions; see references/earnings-literature.md for what the drift literature actually shows.
Phase 3: Between quarters (the loop that makes it compound)
  1. Write the recap the same day. Use assets/earnings_recap_template.md. It locks in: surprise table, guidance verdict, quality flags, Q&A notes, thesis update, and the watch-list for next quarter. This is the output that matters most.
  2. Track estimate revisions as they arrive. Between prints, log consensus revision direction and breadth. Persistent one-sided revisions are the steadiest estimate-related signal in the literature; compute breadth with bin/earnings_recap.py breadth.
  3. Close the loop. Before the next quarter, open the prior recap first. The promises sheet tells you exactly where to hold management accountable.

Output Contract

Every recap ships:

Operating Rules

  1. Never invent numbers, dates, quotes, or guidance figures. Unverifiable gets cut or framed as opinion. This is the accuracy rule, and it is non-negotiable.
  2. Mark all worked examples as synthetic. Never present a hypothetical company's numbers as real.
  3. State thesis changes explicitly; never let a recap quietly contradict the prior quarter's.
  4. Price moves are data, not verdicts. Report the market reaction, then do the analysis.
  5. Keep SKILL.md workflow above the only entry point. Literature summaries live in references/; the recap template in assets/.
  6. This is research support, not financial advice. Say so when asked to act on it.

Versions

v1.0.02026-10-10 · 0 installs · Ed25519-signed./install.sh earnings-season-playbook 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.