Earnings.
Conestoga Capital · Research Desk · Quick Look Console
ccaresearch.com
v0.1 · Cloudflare Pages
Workflow

/quick · soup to nuts

One trigger. Six phases. Roughly 90 seconds end-to-end for a clean Quick Look, 3-4 minutes for a full writeup. Skills, data sources, and delivery path are inspectable and editable above.

Open skills →
Run /quick
Trigger panel · POST /api/quick
Execution lognot started
// waiting for trigger…
Phase 1
Trigger
  • ·Web: user clicks Run /quick on company page, selects mode
  • ·CLI: user types /earnings quick TICKER in Cowork
  • ·Cron: 12:15pm ET post-close scan flags overnight reports
Phase 2
Data collection
  • ·Pull current stock price + AH move (Bloomberg MCP)
  • ·Fetch consensus: Rev, EPS, EBITDA, segment splits (financial-datasets API)
  • ·Retrieve prior-year actuals for Y/y build
  • ·Load /context/{TICKER}/ files (R2)
  • ·Web search latest earnings release + sellside commentary
  • ·If post-call: retrieve call transcript
Phase 3
Skill execution
  • ·Load conestoga-doc-formatter (root)
  • ·Load conestoga-style-constants (palette + notation)
  • ·Template mode: CE pre-filled, [ACTUAL] placeholders, watchpoint cheat sheet
  • ·Quick mode: Bottom Line + Results + Outlook + Take (~300-500 words)
  • ·Writeup mode: full sections, segments, balance sheet, model snap (~800-1500 words)
Phase 4
Output generation
  • ·Render HTML with conestoga CSS template
  • ·Generate vs-Consensus table with .beat / .miss classes
  • ·Apply conditional formatting (green +, red -, bold deltas)
  • ·Include model snapshot table when data exists
  • ·Apply footer tag: $TICKER.US | #Earnings + signature
Phase 5
Delivery
  • ·Save HTML to R2: earnings-artifacts/quick-looks/{FY}/{TICKER}/...
  • ·Write metadata row to D1 quick_looks table
  • ·Render in browser + push preview link
  • ·Draft Outlook email (subject = {TICKER} {FY} {Qtr} Earnings Quick Look)
  • ·Queue for analyst review OR auto-send to research@conestogacapital.com
Phase 6
Post-processing
  • ·Update earnings_events with actuals + stock move
  • ·Flag read-through implications for peer names
  • ·If post-call: queue follow-up addendum if new info material
  • ·Archive both versions for diff comparison
SLA
Template (pre-earnings)~30s
Quick (post-print)~90s
Writeup (post-call)~3 min
Cron pre-earnings sweep1pm ET
Data contracts
  • bloomberg_get_earnings_calendar → dates, times, sector tags
  • bloomberg_get_reference_data → market cap, sector, FYE
  • getAnalystEstimates → consensus Rev / EPS / EBITDA
  • getIncomeStatement → prior-quarter/year actuals
  • web_search → release text, sellside commentary
  • R2 context/{TICKER}/ → internal + sellside notes
Guardrails
  • No em dashes anywhere.
  • Every metric includes Y/y, absolute, and vs CE.
  • Positive values bold green (#008000). Negative bold red (#C00000).
  • Ticker tag in footer: $TICKER.US | #Earnings.
  • Output HTML validates email-client-safe CSS subset.
  • Queue retries 2x with exponential backoff before alerting.
Edit touch-points