Earnings Preview logo

Earnings Preview

OrganizationPopular
ginlix-ai
earnings-preview

Pre-print setup for a company about to report: the expectation bar, EPS-quality watch, call questions, scenarios and the reaction framework. Triggers on earnings preview, what to watch for [company] earnings, pre-earnings setup, preview Q[N].

Overview

Publisherginlix-ai
RepositoryLangAlpha
Skill nameearnings-preview
Stars
1.8K
Forks
288
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by ginlix-ai on GitHub. Read the source before you install it.

Installation

Install the Earnings Preview AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git /tmp/LangAlpha
mkdir -p .claude/skills
cp -r /tmp/LangAlpha/plugins/langalpha_research/skills/earnings-preview .claude/skills/earnings-preview
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Earnings Preview in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Earnings Preview on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Earnings Preview is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Earnings Preview

Everything in this note locates the stock against one object: the bar, the level of results the market is already positioned for. Consensus is one input to the bar, not the bar itself. The preview says where the bar sits, what could clear or miss it, what to listen for on the call, and what the reaction is likely to be if the print lands each way.

After the print, route to .agents/skills/earnings-analysis/SKILL.md.

Evidence labels, source tiers, staleness, the readiness posture and the intake limits: .agents/skills/research-conventions/SKILL.md, read before the first deliverable.

Route

The full preview is the default. A short version is produced only when the user asks for one, and it is rebuilt at the lower depth rather than truncated (.agents/skills/research-conventions/references/depth.md): the freeze time, the source posture, the bar numbers, the top two debates, the must-watch call questions and the missing-evidence block all survive the rebuild.

Missing inputs never shorten the note. A section whose input is unavailable keeps its heading and carries a labelled gap saying what is missing and what would supply it. A short note reads as a thin setup; a full note with three labelled gaps reads as the truth.

Correctness rules

Every number follows the shared market-data rules: .agents/skills/research-conventions/references/market-data-rules.md covers fiscal periods, per-company LTM, NTM as four quarterly estimates, one base date for comparative returns, shown arithmetic, rate against level changes, margin selection and date-stamping. Read it before the first pull.

Preview-specific, on top of those:

  • Freeze the clock. Record one as-of moment for the whole set of time-sensitive inputs: consensus, whisper, options, price, positioning. State it at the top of the note. An input with no as-of is a gap, not an estimate.
  • Suppress a percent change when the denominator is zero, negative or definitionally unstable, and show the absolute delta instead.
  • Mark a year-over-year comparison non-comparable when the company changed the metric's definition and published no restated bridge.

Step 1: Freeze the clock and map the period

Pull the setup: get_company_overview for consensus, earnings history and price targets; get_daily_prices for the price history and the event window; get_sec_filing for the prior quarter, with its transcript attached, to recover the guidance in force; get_shares_float and get_short_data for the positioning picture; WebSearch and WebFetch for news since that filing.

Pin the period map once and reuse it everywhere, taking each fiscal label from the earnings event name get_company_overview returns: the preview quarter, the prior quarter, the year-ago quarter and the two-years-ago quarter. Every table, chart, scenario and options reference uses those same four labels. Ask the user only when the preview quarter is genuinely ambiguous, for example when the company reports two quarters inside one month.

Complete when the four period labels are written down, the freeze-time as-of is recorded, and the earnings date is confirmed from the company or get_earnings_calendar rather than inferred.

Step 2: Build the expectation bar

Five expectation sources, kept separate because they say different things. Collapsing them is how a preview ends up measuring the print against the wrong number.

SourceWhat it isWhere it comes from
Company guidethe range management put in force, with its date and venueprior release, prior transcript, any 8-K since
Published consensusthe mean estimate and the analyst count, with its vintageyf_analysis MCP get_earnings_estimates and get_revenue_estimates, the 0q record's avg and numberofanalysts; the feed carries no observation date, so the vintage is the retrieval time, labelled as such
Whisperthe buy-side number, when it is genuinely sourcedsee the whisper rules below
Our basewhat we expect, built from the driversour own model or the driver work in this note
Last-reported baselinethe operating run-rate the company actually printed last quarterprior release

Close the table with one sentence stating where the bar sits and why: which of the five the stock is trading against, and how far the others sit from it.

Whisper rules. A whisper is never blended into consensus without showing the bridge. With strong support, carry it as a value with its provenance and a confidence label. With weak support, convert it to qualitative setup language rather than a number. With no external whisper at all, either derive an implied whisper from the guide midpoint plus this management's beat history and label it analyst-derived, or write "not provided" and leave the row empty.

Complete when all five rows are filled or carry an absence reason, and the bar sentence states the selected bar's value, source, vintage and basis, labelled judgement wherever the five rows leave competing bars in play.

Step 3: Watch the EPS quality before the print

Headline EPS is a bad proxy for recurring earnings more often than a preview assumes, and the items that break it are knowable in advance.

ItemWhy it distortsPre-print riskWhat resolves it after the printModel line it hits

Screen at least these: the effective tax rate against the guided or trailing rate, the diluted share count (buyback timing, issuance, convertible dilution), below-the-line and mark-to-market items, FX translation and remeasurement, disposals, impairments, restructuring and litigation.

Then check the basis: does published consensus measure the same thing the company reports? Where it does not, say so, and say which figure the bar actually rests on. The real bar is often revenue, operating income, segment profit or free cash flow rather than EPS, and a preview that assumes EPS measures the wrong quarter.

Complete when each screened item carries a pre-print risk, and the note states whether consensus and company bases match.

Step 4: Bridge the guide to an implied bar

A guide is a starting point, not an expectation. Convert it using this management's own record.

  • Beat frequency over the last eight quarters, against its own guide, per metric.
  • Typical beat size, in currency for level metrics and basis points for rate metrics.
  • Whether the conservatism is steady, widening or fading, and what changed if it moved.
  • The limits behind those statistics: how many quarters the sample has, whether the management team or the guidance policy changed inside it.

Complete when the implied bar is stated as a number or range with the beat history that produced it, and the sample limits are named.

Step 5: Choose the metrics that decide the quarter

Financial: revenue in total and by segment, EPS, gross and operating margin, free cash flow, and forward guidance against consensus. Rank them by which one moves the stock, not by which one leads the P&L.

Operational, by sector, as the default pack: software and internet (ARR, net revenue retention, remaining performance obligation, customer count), retail (comparable-store sales, traffic, basket, inventory), industrials (backlog, book-to-bill, price against volume), financials (net interest margin, credit quality, loan growth, fee income), healthcare (scripts, patient volumes, pipeline events), energy and materials (volumes, realised price, unit cost).

Selection rule. The issuer's own disclosure model beats the generic pack. Use the metrics this company guides on and gets asked about, and where an important sector metric is not disclosed, list it as a data request rather than dropping it silently.

Flag as material: a gap between guide, consensus and whisper wider than the sector norm; a metric breaking its trailing four-quarter slope; growth decelerating or margin compressing past a stated threshold in basis points. For a seasonally distorted metric or one with a distorted base year, show the two-year stacked growth rate beside the year-over-year rate.

Complete when the metric list is ranked, each entry carries the expectation it will be measured against, and undisclosed metrics appear as data requests.

Step 6: Read through from everyone who already reported

NameRelationshipWhat they reportedWhy it matters hereRead-throughConfidence

Cover competitors, suppliers, customers and sector bellwethers that have printed since the subject's last report, plus the macro releases that bear on the quarter (get_economic_calendar, get_economic_indicator). A read-through with no named transmission channel is a coincidence, not a signal, so state the channel or drop the row.

Complete when every row names the channel and carries a confidence label, and the table says which read-throughs are already in consensus.

Step 7: Scenarios and the reaction framework

Three scenarios against the bar, not against last year:

ScenarioRevenueEPSKey driverManagement tellFalsifierLikely reaction
Bull
Base
Bear

Calibrate the reaction column on history rather than intuition:

QuarterResult against the barNext-day moveWhat drove the moveContinued or reversed

Then state what is already priced, and the two asymmetries that matter: what would make a weak print buyable, and what would make a strong print fadeable.

Options tenor caveat. The implied move is a two-step pull on the options MCP server, in the same session the note is written. First discover the contracts with get_options_chain: expiration_date_gte and expiration_date_lte bracketing the print date, strike_price_gte and strike_price_lte straddling spot, contract_type run once as call and once as put. It returns contract tickers, strikes and expiries and no prices at all. Then price the at-the-money pair with get_options_snapshot, handing those tickers back as a comma-separated options_tickers string: the last_quote midpoint while the market is open, the session close once it has shut. The implied move is the straddle mid over spot, and the expiry is recorded beside it. An options-implied move is an earnings hurdle only when the expiry brackets the event tightly. When the nearest expiry sits well past the print, relabel the figure as expiry-tenor volatility context, keep it out of the headline tiles, and say what it does and does not measure.

Complete when each scenario names its driver and its falsifier, the reaction column is grounded in the historical table, and any implied move carries its expiry and tenor.

Step 8: Write the call questions

Three or four must-watch items, ranked, and nothing else at the top. A list of eight equally weighted questions is not a plan. Everything else goes into an overflow bank below them.

Each must-watch question carries four things:

  1. Why it matters, in one clause tied to the bar or a thesis pillar.
  2. The answer that validates the view.
  3. The answer that breaks it.
  4. The specific phrases to listen for, including the hedges that signal an answer is being avoided.

Any material news since the last report that creates a contradiction or an open diligence item becomes a question here rather than a standalone news bullet. The overflow bank holds the sector add-ons and the second-tier items, and can run to eight or so.

Complete when the must-watch list is three or four items, each ranked with all four parts, and every open news item is either a question or explicitly closed.

Step 9: Assemble and deliver

Save deliverables to $WORK_DIR/work/{task}/. A formatted document, when the user wants one, is built through .agents/skills/docx/SKILL.md. Sections, in order:

  1. Company, quarter, earnings date, freeze-time as-of, readiness posture.
  2. The expectation bar table and the bar sentence.
  3. Metrics to watch, ranked, with the materiality flags.
  4. EPS-quality watch and the guidance-credibility bridge.
  5. Peer and macro read-throughs.
  6. Scenarios, historical reactions, what is priced.
  7. Must-watch call questions, then the overflow bank.
  8. Trading setup: recent performance, positioning, and the implied move with its tenor caveat.
  9. Missing evidence.
  10. Position action.

Salience first. When a growth rate, an acceleration, a surprise percentage or a guide delta is what moves the stock, that is the headline number and the absolute figure is the supporting detail. Trend charts pick the margin the business is actually run on (operating, adjusted operating, EBITDA, contribution or free cash flow) rather than defaulting to net margin, and the note says which one and why.

Missing evidence block. Close with the exact refreshes required before taking event risk: each missing input, the tool or document that supplies it, and the conclusion it currently blocks.

Position action. One verb from the closed vocabulary in .agents/skills/research-conventions/references/judgment.md, gated by the inputs actually in hand. Without a sourced implied move, positioning context and adequate consensus or whisper evidence, the note delivers a setup and a reaction framework rather than a trade-ready instruction, and says which input is missing.

Pre-delivery checks

  • Period map explicit, and the same four labels used in every table and chart.
  • Freeze-time as-of stated, and every time-sensitive figure inside its freshness threshold or marked aging.
  • Every bar number carries source, as-of, unit and definition.
  • Guidance, consensus and whisper appear as separate rows, never blended.
  • EPS-quality section present whenever EPS is the bar, with the consensus-basis check stated.
  • Rate figures in basis points, level figures in percent or currency, no percent on an unstable denominator.
  • Chart axes agree with the units in the adjacent table.
  • Each scenario states its driver and its falsifier.
  • Implied move either brackets the event or is relabelled as tenor context.
  • Must-watch questions capped at four and ranked.
  • Missing-evidence block present, even when empty, and every gap labelled rather than dropped.
  • Readiness posture stated, and it names the input holding it back when it is below decision-grade.

Frequently asked questions

What does the Earnings Preview AI skill do?

Pre-print setup for a company about to report: the expectation bar, EPS-quality watch, call questions, scenarios and the reaction framework. Triggers on earnings preview, what to watch for [company] earnings, pre-earnings setup, preview Q[N].

Why use Earnings Preview on TypingMind?

Because you install it once and use it with any model. Earnings Preview is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Earnings Preview in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/earnings-preview. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Earnings Preview?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Earnings Preview?

As many as you like. As long as a model supports skills, you can use Earnings Preview with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Earnings Preview AI skill free?

Yes. It is published on GitHub by ginlix-ai under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇