# Preview Desk > A pre-earnings desk for equity analysts. Paste the consensus-vs-your-estimates table, last quarter's earnings call, the stock's reaction history, the options-implied move, a peer table and your notes; the browser does the preview's arithmetic for free. A paid setup ranks what to watch with bull, base and bear scenarios and a skew call, and hands off to a paid written earnings preview note whose management quotes are checked word for word against the transcript. URL: https://preview-desk.skillsafe.ai/ API tutorial: https://preview-desk.skillsafe.ai/api.html Derived from the agent skills @anthropics/earnings-preview (primary) and @anthropics/earnings-preview-beta (by Kensho Technologies), from anthropics/financial-services-plugins (Apache-2.0). Model: gpt-terra. Runs are metered in SkillSafe credits and need a signed-in account; the prescan and the draft watch list are free. ## What the free prescan does (in the browser, no AI) - Reads the estimates table (Markdown pipes, tabs, semicolons or CSV; columns found by header: Consensus/Street, yours/House/Our estimate, Year ago, Guidance low/high or one Guidance range, Whisper, FY guide low/high and YTD). A "($M)" header scales bare numbers; parentheses are negatives. - Per row: your number against consensus (basis points for percentage metrics), y/y on consensus and on yours (n.m. when the year-ago base is zero or negative), where consensus and your number sit in the quarter's guidance (below, lower half, midpoint, upper half, above), the quarter implied by annual guidance less year-to-date, the whisper gap, and a mechanical y/y colour by sign. - Recomputes stated gross, operating, EBITDA and net margins from the dollar rows and flags any more than 0.3 points apart. - Reaction history: beat rate, average and median absolute one-day move, average move on beats and on misses, the quarters that beat and fell, the largest move. The options-implied move is read as stated (8.3%) or as a straddle divided by the share price, and compared with the average move. - Peers: LTM and NTM P/E from price and EPS, where EPS may be four quarters joined by + (fewer than four gives n/a; EPS at or below zero gives n.m.). - Transcript: paragraphs numbered T1..Tn with speakers, guidance sentences, and the fiscal quarter the call names; the preview must be the NEXT quarter, and a mismatch is a critical flag. The quarter is never inferred from a calendar date. - Flags what a preview needs and the pack lacks: no consensus column, no revenue or EPS row, no margin row, no transcript, no reaction history, no implied move, and the sector's operating metrics (SaaS: ARR, net retention, RPO, customers; retail: same-store sales, traffic, basket; industrials: backlog, book-to-bill, price vs volume; financials: NIM, credit, loans, fees; healthcare: scripts, volumes, pipeline). - Drafts a ranked watch list: headline rows first, then by the size of your variant view and any guidance tension. ## Lanes (the `task` field) - `setup` - the pre-earnings setup: a skew (upside, balanced, downside), what we expect, 3-6 ranked watch items each with the bar to beat, exactly three scenarios (bull, base, bear) with revenue, EPS, key driver, what has to happen, the management signal, a signed stock reaction and a probability, a 3-5 item catalyst checklist, the trading setup (implied move against the average move), every prescan flag confirmed or dismissed, and a positioning note. - `note` - the concise written earnings preview: a thematic title naming the quarter, headline, what we expect, 4-6 thesis bullets with refs, 2-4 verbatim management quotes tied to thesis bullets, an estimates table (consensus, ours, y/y), 3-5 metrics beyond headline EPS, 3-5 themes, news only from the user's notes, an LTM/NTM valuation paragraph, and a bottom line. The page prints "Analysis is AI-generated - please confirm all outputs" in three places and builds a source appendix from every cited id. The setup hands off to the note with one button: its skew, watch list, scenarios and catalysts travel as the `setup` field. ## Input (every value a string) task, company, quarter, pack (JSON-encoded: estimates rows E1..En with the browser's arithmetic, reactions H1..Hn with stats, implied move, peers V1..Vn with P/E, last call quarter, sector KPIs, guidance sentences, prescan flags P1..Pn), transcript (optional, "[T1] Speaker (Title): text" paragraphs), notes (optional, "[N1] text" lines), question (optional), setup (note lane, optional), retry_note (reformat retry only). ## How the reply is checked Setup: all three cases present and ordered on revenue, EPS and stock reaction; the implied and average moves must be the browser's; every bar on an estimates row must be a value that row carries; every ref must exist; every prescan flag answered once; dollar figures and multiples in the prose must be in the pack or shown arithmetic on it. Note: every quote must be a verbatim span of the transcript (otherwise it is shown as a paraphrase and counted as a disagreement); estimates-table values and y/y must match the browser; P/E must be labelled LTM or NTM, never trailing or forward, and every multiple must be one the browser computed; news must cite the user's notes; the title must name the quarter being previewed; no emoji. ## Limits Reads only what is pasted: no consensus feed, no prices, no news, no web. Research preparation, not investment advice. A long transcript loses its middle paragraphs (ids kept, with a marker); the quote check still searches every paragraph.