en un clic
research-note
Generate a professional Word document research note
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Generate a professional Word document research note
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Build an industry comp sheet Excel model with deep operational KPIs
Trading comparables analysis with peer multiples and implied valuation
Rapid first-read earnings flash for a given company
Pre-earnings preparation report for the night before a company reports
Full earnings analysis with guidance tracking for a given company
Walk through initial setup and authentication for this Daloopa starter kit
| name | research-note |
| description | Generate a professional Word document research note |
| argument-hint | TICKER |
Generate a professional research note (.docx) for the company specified by the user: $ARGUMENTS
Before starting, read ../data-access.md for data access methods and ../design-system.md for formatting conventions. Follow the data access detection logic and design system throughout this skill.
This is an orchestrator skill that gathers comprehensive data, then renders a Word document. Work through each phase sequentially, building up a context object that gets written to JSON and rendered.
Look up the company by ticker using discover_companies. Capture:
company_idlatest_calendar_quarter — anchor for all period calculations (see ../data-access.md Section 1.5)latest_fiscal_quarter../data-access.md Section 4.5Get current stock price, market cap, shares outstanding, beta, and trading multiples for {TICKER} (see ../data-access.md Section 2 for how to source market data).
Initialize context: context = {company_name, ticker, date, price, market_cap, firm_name, ...}
Calculate 8 quarters backward from latest_calendar_quarter. Pull Income Statement metrics:
Pull Cash Flow & Balance Sheet:
For every value returned by get_company_fundamentals, record its fundamental_id (the id field). Store each data point as {value, fundamental_id} so citations can be rendered in the final document.
Compute margins and YoY growth rates for each quarter. Build context.financials with tables. Every Daloopa-sourced number must include its citation link: [$X.XX million](https://daloopa.com/src/{fundamental_id}).
After the core financial pull, add:
New context keys:
cost_margin_analysis (string) — narrative explaining what's driving margins, with Daloopa citationsopex_breakdown_table (dynamic table) — [{metric, Q1, Q2, ...}] rows for R&D, SG&A, Other OpEx, each with absolute values and % of revenue sub-rowsThink about what KPIs matter most for THIS company's business model. Search for:
Pull the same 8 quarters (from latest_calendar_quarter). Build context.kpis and context.segments.
After the KPI/segment pull, determine the company's sector and apply the relevant analysis template:
Search for relevant series using discover_company_series with sector-appropriate keywords. Pull available data and build the narrative.
New context key:
industry_deep_dive (string) — sector-specific analysis narrative with Daloopa citations, organized by the relevant template aboveSearch for guidance series ("guidance", "outlook", "forecast", "estimate", "target").
Pull guidance and corresponding actuals. Apply +1 quarter offset rule.
Compute beat/miss rates and patterns.
Build context.guidance (set context.has_guidance = true/false).
Using the financial baseline from Phase B:
Build falsifiable bull/bear beliefs instead of probability-weighted scenarios:
Write 4-6 numbered beliefs, each with:
Example format: "1. Revenue growth re-accelerates to 15%+ as AI monetization scales. Cloud segment grew $X.Xbn last quarter, up X% YoY, with management noting..."
Same format — 4-6 numbered falsifiable beliefs with evidence for the downside case.
For each side:
New context keys:
bull_beliefs (string) — numbered falsifiable beliefs with evidencebear_beliefs (string) — numbered falsifiable beliefs with evidencebull_target (string) — price target + valuation mathbear_target (string) — price target + valuation mathrisk_reward_assessment (string) — asymmetry analysisDo NOT set these old keys (they are removed from the template): bull_probability, base_probability, bear_probability, bull_description, base_description, bear_description, scenario_chart, bull_price_target, base_price_target, bear_price_target.
Pull buyback, dividend, share count, FCF data.
Compute shareholder yield, FCF payout ratio, net leverage.
Build context.capital_allocation.
DCF:
context.dcf (set context.has_dcf = true)Comps:
context.comps (set context.has_comps = true)Search SEC filings across multiple queries:
Extract and organize into:
context.risks — ranked list of risks with impact/probabilitycontext.investment_thesis — variant perception, thesis pillars, catalystscontext.company_description — 2-3 sentence business descriptionRun 4 WebSearch queries to gather recent external context:
"{TICKER} {company_name} news {year}" — recent headlines and developments"{TICKER} analyst upgrade downgrade price target" — sell-side sentiment shifts"{TICKER} catalysts risks" — forward-looking events and risk factors"{company_name} industry outlook {sector}" — macro and industry trendsOrganize results into three new context keys:
news_timeline (string) — 6-10 key events from the last 6-12 months in reverse chronological order. Each event: date, headline, 1-sentence impact, sentiment tag (Positive / Negative / Mixed / Upcoming). Format as a numbered list.
forward_catalysts (string) — Organized by timeframe:
policy_backdrop (string) — Macro/regulatory context affecting the company. Tariffs, regulation, interest rates, sector-specific policy. Leave empty string if not material.
If chart generation is available (see ../data-access.md Section 5), generate charts:
time-series --data '{periods, values}' --output reports/.charts/{TICKER}_revenue_trend.pngtime-series --data '{periods, series}' --output reports/.charts/{TICKER}_margin_trend.pngpie --data '{segments}' --output reports/.charts/{TICKER}_segment_pie.pngdcf-sensitivity --data '{wacc_values, growth_values, prices, current_price}' --output reports/.charts/{TICKER}_dcf_sensitivity.pngIf chart generator isn't available or a chart fails, skip that chart and note it. Set chart paths in context (e.g., context.revenue_chart = "reports/.charts/...")
Note: scenario_chart is no longer generated by this skill (research notes use bull/bear beliefs, not scenario analysis). The /ib-deck skill still uses scenario-bar charts.
This is the most judgment-intensive step. Be honest and critical — the reader is a professional investor who needs your real assessment, not a balanced summary.
Write:
context.executive_summary, context.variant_perceptionIdentify the 5 most critical bull/bear debates for this stock. Each tension is a single line that frames both sides. Alternate between bullish-leaning and bearish-leaning tensions. Every tension must reference a specific data point from the analysis.
Format as a numbered list:
Build context.five_key_tensions (string).
Build two monitoring lists for ongoing tracking:
Quantitative Monitors — 5-7 specific metrics with explicit thresholds:
Qualitative Monitors — 5-7 factors to watch:
Build context.monitoring_quantitative and context.monitoring_qualitative (strings, numbered lists).
Also build structured tables for the template:
context.key_metrics_table — [{metric, value, vs_prior}] for the exec summary tablecontext.financials_table — [{metric, q1, q2, ...}] for the financial analysis sectioncontext.segments_table, context.geo_table, context.shares_outstanding_tablecontext.opex_breakdown_table — [{metric, q1, q2, ...}] for R&D, SG&A, % of revenue rowscontext.guidance_table, context.comps_table, etc.reports/.tmp/{TICKER}_context.jsonpython infra/docx_renderer.py --template templates/research_note.docx --context reports/.tmp/{TICKER}_context.json --output reports/{TICKER}_research_note.docxVerify these keys exist before rendering (set empty string if data unavailable):
Cover & Summary:
company_name, ticker, date, price, market_cap, five_key_tensions, executive_summary, key_metrics_table
Thesis & Overview:
investment_thesis, variant_perception, company_description
News:
news_timeline
Financials:
revenue_chart, financials_table, margin_chart, cost_margin_analysis, opex_breakdown_table, segment_chart, segments_table, geo_table, shares_outstanding_table
Industry:
industry_deep_dive
Guidance:
has_guidance, guidance_track_record
What You Need to Believe:
bull_beliefs, bull_target, bear_beliefs, bear_target, risk_reward_assessment
Catalysts:
forward_catalysts, policy_backdrop
Capital Allocation:
capital_allocation_commentary
Valuation:
has_dcf, dcf_summary, dcf_sensitivity_chart, has_comps, comps_commentary
Risks:
risks_summary
Monitoring:
monitoring_quantitative, monitoring_qualitative
Appendix:
appendix_content
Tell the user:
reports/{TICKER}_research_note.docxreports/.tmp/{TICKER}_context.jsonCitation enforcement: Every financial figure from Daloopa in the context JSON AND the rendered document must use citation format: [$X.XX million](https://daloopa.com/src/{fundamental_id}). If a number came from get_company_fundamentals, it must have a citation link. No exceptions. Before rendering, verify that the context JSON contains fundamental_ids for all Daloopa-sourced values.