Back to Use Cases
🤖AgentIntermediate

Stock Earnings Report Agent

Deploy an AI-powered earnings analyst that monitors quarterly releases, extracts EPS/revenue metrics against consensus estimates, detects guidance revisions, runs peer comparisons across sectors, and delivers institutional-grade analysis reports to Slack and Notion on a cron schedule — turning earnings season information overload into structured, actionable intelligence.

Connected Apps & Services

Chrome

Chrome

Google Sheets

Google Sheets

Slack

Slack

Overview

Every quarter, over 4,000 publicly traded companies release earnings reports within a compressed six-week window. For investors, analysts, and portfolio managers, this creates an overwhelming flood of financial data that is nearly impossible to process manually. A single earnings release contains dozens of key metrics — revenue, earnings per share, operating margins, segment breakdowns, forward guidance — and the market moves within minutes of each release. Miss a critical guidance revision or an earnings surprise buried in an after-hours press release, and you are already behind.

The Stock Earnings Report Agent solves this problem by deploying an always-on AI analyst inside your OpenClaw instance. It monitors earnings calendars, detects new releases as they drop, extracts structured financial data from press releases and SEC filings, compares results against consensus estimates, tracks guidance revisions, and generates professional-grade analysis reports — all without human intervention. When configured with cron-based scheduling and financial data API integrations, it becomes a tireless earnings desk that watches the market around the clock and delivers actionable insights to Slack, Notion, or any connected channel.

This is not a simple alert bot. The agent understands financial context. It knows that a company beating EPS estimates by two cents while simultaneously lowering full-year guidance is a bearish signal despite the headline "beat." It can compare a company's revenue growth trajectory against sector peers, flag margin compression trends across consecutive quarters, and produce structured reports suitable for investment committee review. By combining OpenClaw's web search and fetch tools with external financial data APIs, the agent has access to the same raw data that professional analysts use — and it can process it in seconds rather than hours.

Architecture

The Stock Earnings Report Agent operates on a multi-layer architecture that separates scheduling, data acquisition, analysis, and delivery into distinct phases.

Scheduling Layer

The agent uses OpenClaw's built-in cron scheduler to trigger earnings monitoring at defined intervals. During active earnings season (typically January-February, April-May, July-August, and October-November), the agent runs on a tight schedule — checking for new releases every 30 minutes during market hours and every two hours during after-hours and pre-market windows when many companies report. Outside of earnings season, it drops to a daily calendar check to watch for upcoming reporting dates.

The cron configuration supports both recurring schedules and one-shot triggers. You can schedule a dedicated analysis run for a specific company's known reporting date, or let the agent continuously scan for new filings. Each cron job runs in an isolated session to keep earnings analysis separate from your main agent conversation, with results delivered via the announce mechanism to your preferred channel.

JSON
{
  "schedule": { "kind": "cron", "cron": "/30 8-18  * 1-5", "tz": "America/New_York" },
  "sessionTarget": "isolated",
  "payload": {
    "kind": "agentTurn",
    "message": "Check for new earnings releases in the watchlist. For any new reports found, extract key metrics, compare to consensus estimates, and generate a structured analysis. Deliver the report."
  },
  "delivery": { "mode": "announce", "channel": "slack", "to": "channel:C-EARNINGS-ALERTS" }
}

Data Acquisition Layer

The agent sources financial data through two complementary channels: Financial Data APIs — The primary structured data source. The agent calls REST APIs from providers like Alpha Vantage or Financial Modeling Prep to retrieve earnings calendars, historical EPS data, analyst consensus estimates, income statements, balance sheets, and sector comparison data. These APIs return clean JSON that the agent can immediately reason over without parsing HTML or PDF documents. Web Search and Fetch — The supplementary unstructured data source. Using OpenClaw's built-in web_search and web_fetch tools, the agent retrieves earnings press releases directly from company investor relations pages, pulls SEC 8-K filings from EDGAR, and gathers analyst commentary from financial news sources. The web_fetch tool converts HTML to readable markdown, letting the agent extract management commentary, forward guidance language, and qualitative context that structured APIs often lack.

This dual-source approach gives the agent both the numerical precision of API data and the qualitative depth of human-written disclosures. When an API reports that a company beat EPS estimates by $0.03, the agent can simultaneously fetch the press release to determine whether that beat came from operational improvement or a one-time tax benefit — context that changes the interpretation entirely.

Analysis Engine

The agent's analysis is driven by its system prompt, which encodes financial analysis frameworks and output templates. The BOOTSTRAP.md file (detailed below) instructs the agent on how to interpret earnings data, what comparisons to make, and how to structure its output. Key analysis functions include:

  • EPS and Revenue Variance Analysis — Calculate the percentage beat or miss versus consensus estimates, classify the magnitude (in-line, slight beat/miss, significant beat/miss, blowout), and contextualize against the company's historical beat rate.
  • Guidance Extraction and Classification — Parse forward-looking statements from press releases to extract revenue guidance ranges, EPS guidance, and qualitative commentary. Classify guidance changes as raised, maintained, lowered, or newly introduced.
  • Margin and Profitability Trending — Track gross margin, operating margin, and net margin across consecutive quarters to identify expansion or compression trends.
  • Segment Decomposition — Break down revenue by business segment or geography when available, identifying which units are driving growth or dragging on performance.
  • Peer Comparison — Compare a company's results against sector peers that have already reported, building a picture of sector-wide trends (e.g., "4 of 6 cloud software companies have beaten revenue estimates this quarter, with a median beat of 3.2%").

Delivery Layer

Analysis reports are delivered through OpenClaw's cron announcement system and connected app integrations. Slack receives real-time alerts with configurable urgency levels — a simple thumbs-up for an in-line quarter, a detailed breakdown for a significant beat or miss, and an urgent flag for guidance revisions. Notion serves as the long-term archive, with each analysis written to a structured database that builds a searchable history of earnings analysis over time. The agent can also output reports directly in the chat session for on-demand queries.

Setup

Prerequisites

  • An active OpenClaw instance on Donely (any plan)
  • A financial data API key (Alpha Vantage free tier provides 25 requests/day; Financial Modeling Prep free tier provides 250 requests/day)
  • Web search configured in OpenClaw (Brave Search, Tavily, or Perplexity — see Web Tools documentation)
  • Optional: Slack workspace and Notion database for delivery integrations

Step 1: Obtain a Financial Data API Key

Alpha Vantage (recommended for getting started):
  • Visit alphavantage.co and register for a free API key
  • The free tier provides 25 API calls per day — sufficient for monitoring a watchlist of 10-15 stocks
  • For heavier usage during peak earnings season, their premium plans start at $49.99/month with 75-1,200 requests per minute
Financial Modeling Prep (recommended for deeper fundamentals):
  • Visit financialmodelingprep.com and register
  • The free tier provides 250 requests per day with access to earnings reports, income statements, and analyst estimates
  • Historical data extends back 30+ years for major stocks

Store your API key as an environment variable in your OpenClaw instance:

Bash
# Add to ~/.openclaw/.env
ALPHA_VANTAGE_API_KEY=your_key_here
# or
FMP_API_KEY=your_key_here

Step 2: Configure Web Search

Ensure your OpenClaw instance has web search enabled. The agent relies on web_search for news context and web_fetch for pulling press releases and SEC filings. Any supported provider works — Brave Search, Tavily, and Perplexity all provide good financial news coverage.

Bash
openclaw configure --section web

See the OpenClaw Web Tools documentation for detailed provider setup.

Step 3: Deploy the BOOTSTRAP.md

Create the agent's bootstrap file, which defines its persona, capabilities, and analysis frameworks. Save the following as BOOTSTRAP.md in your agent's working directory:


BOOTSTRAP.md — Stock Earnings Report Agent

Markdown
# Stock Earnings Analyst Agent

You are a senior equity research analyst specializing in quarterly earnings analysis. Your role is to monitor, analyze, and report on corporate earnings releases with the rigor and structure of a professional sell-side research desk.

Core Identity

  • You produce institutional-quality earnings analysis
  • You distinguish between headline numbers and underlying quality
  • You always note whether a beat/miss is organic or driven by one-time items
  • You maintain objectivity — you report what the numbers show, not what you hope they show
  • You flag risks and concerns alongside positive developments

Data Sources

  • Primary API: Use web_fetch to call Alpha Vantage or Financial Modeling Prep endpoints for structured data (EPS, revenue, estimates, income statements)
  • Press Releases: Use web_fetch to retrieve earnings press releases from company investor relations pages
  • SEC Filings: Use web_fetch to pull 8-K filings from EDGAR (https://www.sec.gov/cgi-bin/browse-edgar)
  • News Context: Use web_search to find analyst reactions, management commentary, and market impact

Watchlist

Maintain a watchlist in ~/earnings-watchlist.json with the following structure: { "stocks": [ { "ticker": "AAPL", "name": "Apple Inc.", "sector": "Technology", "next_earnings": "2026-04-30" }, { "ticker": "MSFT", "name": "Microsoft Corp.", "sector": "Technology", "next_earnings": "2026-04-29" }, { "ticker": "GOOGL", "name": "Alphabet Inc.", "sector": "Technology", "next_earnings": "2026-04-29" } ], "sectors": ["Technology", "Healthcare", "Financials"], "alert_threshold": { "eps_surprise_pct": 5, "revenue_surprise_pct": 2, "guidance_change": true } }

Analysis Framework

For Each Earnings Release:

  • Headline Metrics: EPS (GAAP and non-GAAP), Revenue, Operating Income
  • Versus Estimates: Compare to consensus EPS and revenue estimates, calculate surprise percentage
  • Sequential Trends: Compare to prior quarter (QoQ) and year-ago quarter (YoY)
  • Guidance Assessment: Extract forward guidance, compare to prior guidance and Street estimates
  • Quality Check: Identify one-time items, accounting changes, share buyback impact on EPS
  • Segment Analysis: Break down by business unit or geography if available
  • Management Tone: Summarize key themes from earnings commentary (growth drivers, headwinds, strategic shifts)

Report Format:

Use this structure for every earnings analysis: [TICKER] Q[X] FY[YEAR] Earnings Analysis
MetricActualEstimateSurpriseYoY Change
EPS (adj.)$X.XX$X.XX+X.X%+X.X%
Revenue$X.XB$X.XB+X.X%+X.X%
Op. MarginXX.X%+X.Xpp
Verdict: [BEAT/MISS/IN-LINE] — [One-sentence summary] Key Takeaways:
  • [Most important finding]
  • [Second most important]
  • [Third most important]
Guidance: [Raised/Maintained/Lowered] — [Details] Risk Factors: [Any concerns identified]

Cron Schedule

  • During earnings season: Check every 30 minutes during market hours (9:30 AM - 4:00 PM ET) and every 2 hours after-hours
  • Outside earnings season: Daily calendar check at 8:00 AM ET
  • Always check BMO (Before Market Open) releases at 7:00 AM ET and AMC (After Market Close) releases at 4:30 PM ET

Step 4: Set Up Cron Jobs

Configure the agent's automated monitoring schedule using OpenClaw's cron system:

Bash
# Primary earnings monitor — runs every 30 min during market hours in earnings season
openclaw cron add \
  --name "Earnings Monitor" \
  --cron "/30 9-16  * 1-5" \
  --tz "America/New_York" \
  --session isolated \
  --message "Check for new earnings releases for stocks in ~/earnings-watchlist.json. For any new reports, run the full analysis framework and generate a structured report." \
  --announce \
  --channel slack \
  --to "channel:C-EARNINGS"

# Pre-market check for BMO reporters openclaw cron add \ --name "BMO Earnings Check" \ --cron "0 7 1-5" \ --tz "America/New_York" \ --session isolated \ --message "Check for before-market-open earnings releases. Prioritize any watchlist stocks reporting BMO today." \ --announce

# After-hours check for AMC reporters openclaw cron add \ --name "AMC Earnings Check" \ --cron "30 16 1-5" \ --tz "America/New_York" \ --session isolated \ --message "Check for after-market-close earnings releases. Run full analysis on any watchlist stocks that reported AMC." \ --announce

# Weekly sector summary — every Friday afternoon openclaw cron add \ --name "Weekly Sector Summary" \ --cron "0 17 5" \ --tz "America/New_York" \ --session isolated \ --message "Generate a weekly earnings season summary. For each sector in the watchlist, summarize how many companies have reported, the average EPS and revenue surprise, key themes, and notable outliers. Compare sector performance trends." \ --announce

Step 5: Connect Slack and Notion (Optional)

Slack — Configure the Slack integration in your OpenClaw instance to receive earnings alerts in a dedicated channel. The agent uses cron delivery to announce results directly to your specified Slack channel. Set up different channels for different urgency levels — routine reports in #earnings-reports, significant surprises in #earnings-alerts. Notion — Set up a Notion database with columns for Ticker, Quarter, EPS Actual, EPS Estimate, Revenue Actual, Revenue Estimate, Surprise %, Guidance Direction, and Full Analysis (long text). The agent appends each analysis as a new database entry, building a searchable archive of earnings intelligence over time.

Capabilities

Earnings Release Detection

The agent monitors multiple sources for new earnings releases: financial data API earnings calendars, SEC EDGAR 8-K filings (item 2.02 — Results of Operations and Financial Condition), and company investor relations pages via web search. It cross-references detected releases against its watchlist and triggers full analysis only for tracked stocks, while logging a brief note for non-watchlist companies in the same sector.

EPS and Revenue Analysis

For each detected release, the agent retrieves both reported actuals and analyst consensus estimates from its financial data API. It calculates the surprise percentage for both EPS and revenue, classifies the result (significant beat >5%, slight beat 1-5%, in-line <1%, slight miss, significant miss), and compares to the company's historical surprise pattern. A company that consistently beats by 3-5% and suddenly reports in-line is flagged as a potential concern despite the lack of a technical miss.

Guidance Extraction and Classification

The agent uses web_fetch to pull the full text of earnings press releases and earnings call transcripts when available. It identifies forward-looking statements — revenue guidance ranges, EPS guidance, margin targets, capex plans — and classifies each as raised, maintained, lowered, or newly introduced relative to prior quarter guidance. Guidance revisions trigger higher-priority alerts because they signal management's updated view of the business trajectory, which often matters more than the backward-looking quarterly results.

Peer Comparison and Sector Analysis

As earnings season progresses and more companies in a sector report, the agent builds running tallies of sector-wide metrics: median EPS surprise, median revenue growth, common themes in management commentary (e.g., "5 of 7 enterprise software companies cited elongated sales cycles"). This comparative context helps distinguish company-specific developments from broader sector trends.

Trend Visualization

The agent generates markdown-formatted tables and ASCII charts showing multi-quarter trends for key metrics. While not full graphical charts, these structured outputs clearly show revenue trajectory, margin trends, and EPS growth patterns over 4-8 quarters. For richer visualization, the agent can output data in CSV format suitable for import into spreadsheet tools or charting libraries.

Examples

Example 1: Quarterly Earnings Beat Analysis

Scenario: Apple reports Q2 FY2026 earnings after market close. The agent detects the release and produces a full analysis. Agent Output:
AAPL Q2 FY2026 Earnings Analysis
>
| Metric | Actual | Estimate | Surprise | YoY Change |
|--------|--------|----------|----------|------------|
| EPS (adj.) | $1.72 | $1.68 | +2.4% | +8.9% |
| Revenue | $95.4B | $94.1B | +1.4% | +6.7% |
| Gross Margin | 47.2% | 46.8% | +0.4pp | +1.1pp |
| Services Rev. | $26.1B | $25.5B | +2.4% | +14.2% |
>
Verdict: BEAT — Solid quarter driven by Services strength and better-than-expected iPhone demand in emerging markets. Third consecutive quarter of accelerating Services growth.
>
Key Takeaways:
1. Services revenue of $26.1B set a new all-time record, growing 14.2% YoY and accelerating from 12.8% last quarter — the installed base monetization thesis continues to play out
2. iPhone revenue of $48.7B exceeded estimates by $1.1B, with management citing strong demand for the AI-enhanced iPhone 17 lineup in India and Southeast Asia
3. Gross margin expansion of 110bps YoY reflects favorable mix shift toward Services and reduced component costs
>
Guidance: Raised — Management guided Q3 revenue of $87-91B (consensus was $86.5B) and expects gross margin of 46.5-47.5%, implying continued margin expansion. This represents a meaningful raise from the prior quarter's implied trajectory.
>
Risk Factors: China revenue declined 3% YoY (fifth consecutive quarter of declines), and management acknowledged "macroeconomic uncertainty" in the region. Greater China now represents 16% of revenue, down from 19% two years ago. Regulatory scrutiny of App Store commissions in the EU could pressure Services margins in future quarters.

Example 2: Guidance Revision Alert

Scenario: During its Q1 earnings call, a cloud software company lowers full-year guidance. The agent generates an urgent alert. Agent Output:
URGENT — GUIDANCE LOWERED
>
CRM Q1 FY2027 Earnings — Guidance Revision Alert
>
Salesforce reported Q1 results that beat consensus EPS ($2.58 vs $2.46 est.) but lowered full-year revenue guidance, triggering this elevated alert.
>
Guidance Change Detail:
| Metric | New Guidance | Prior Guidance | Street Estimate | Revision |
|--------|-------------|---------------|-----------------|----------|
| FY27 Revenue | $40.5-40.9B | $41.0-41.4B | $41.2B | Lowered by ~$500M at midpoint |
| FY27 Op. Margin | 33.0-33.5% | 33.5-34.0% | 33.8% | Lowered by 50bps |
| Q2 Revenue | $9.8-9.9B | — | $10.1B | Below consensus |
>
Context: Management cited delayed enterprise deal closings and cautious customer spending amid macroeconomic uncertainty. CFO noted that "larger transformational deals are taking one to two additional quarters to close" and that the pipeline remains healthy but conversion timelines have elongated.
>
Significance: This is the first guidance reduction from Salesforce in 7 quarters. The pattern of beating the current quarter while lowering forward estimates often indicates that near-term demand is being pulled forward at the expense of future quarters. Two other enterprise software peers (ServiceNow, Workday) also cited elongated sales cycles this earnings season, suggesting this may be a sector-wide trend rather than Salesforce-specific.
>
Sector Context: 3 of 8 large-cap SaaS companies that have reported so far this quarter have lowered guidance. Median revenue surprise across the group is +1.1%, but median forward guidance revision is -1.3%.

Example 3: Sector Comparison Report

Scenario: It is the end of the third week of earnings season. The agent generates its weekly sector summary. Agent Output:
Weekly Earnings Season Summary — Week 3
Week ending March 20, 2026
>
Technology Sector (12 of 18 watchlist companies reported)
>
| Metric | Median | Best | Worst |
|--------|--------|------|-------|
| EPS Surprise | +4.2% | +12.1% (NVDA) | -2.8% (INTC) |
| Revenue Surprise | +1.8% | +5.4% (NVDA) | -1.1% (INTC) |
| YoY Rev Growth | +11.3% | +38.7% (NVDA) | -4.2% (INTC) |
| Guidance Raised | 7 of 12 | — | — |
| Guidance Lowered | 2 of 12 | — | — |
>
Key Sector Theme: AI infrastructure spending remains the dominant growth driver. Companies with direct AI exposure (NVDA, AVGO, MSFT Azure) are reporting significantly above estimates, while legacy enterprise IT names are seeing mixed results. The "AI haves vs. have-nots" bifurcation has widened this quarter.
>
Healthcare Sector (5 of 9 watchlist companies reported)
>
| Metric | Median | Best | Worst |
|--------|--------|------|-------|
| EPS Surprise | +2.8% | +7.3% (LLY) | -1.4% (PFE) |
| Revenue Surprise | +1.2% | +4.1% (LLY) | -2.1% (PFE) |
| YoY Rev Growth | +7.1% | +24.5% (LLY) | -8.3% (PFE) |
>
Key Sector Theme: GLP-1 drug momentum continues to dominate healthcare earnings. Eli Lilly's Mounjaro/Zepbound franchise drove the sector's strongest results, while legacy pharma facing patent cliffs are underperforming. Biotech remains mixed with pipeline catalysts driving individual stock moves rather than sector trends.
>
Cross-Sector Observations:
- Overall earnings season beat rate: 72% (above 5-year average of 68%)
- Revenue beat rate: 64% (in line with historical average)
- Forward guidance tone is more cautious than results suggest — 28% of reporting companies have lowered guidance despite beating the current quarter, the highest rate since Q3 2024
- The guidance-down-despite-beat pattern has been most pronounced in consumer discretionary and enterprise software

Best Practices

Start with a focused watchlist. Resist the urge to monitor hundreds of stocks from day one. Begin with 10-15 companies you actively follow, grouped into 2-3 sectors. This keeps API usage within free tier limits and produces more thoughtful analysis. Expand the watchlist as you validate the agent's output quality. Calibrate alert thresholds to avoid noise. An EPS surprise of 1% for a mega-cap stock is within normal variance and does not warrant an urgent alert. Set your alert_threshold to trigger elevated notifications only for surprises above 5% for EPS and 2% for revenue, or for any guidance revision. Adjust based on your experience — if you are getting too many routine alerts, raise the thresholds. Schedule defensively around API rate limits. Alpha Vantage's free tier allows 25 requests per day. A single comprehensive earnings analysis might require 3-5 API calls (earnings data, income statement, estimates, historical data, sector comparison). During peak earnings season with multiple companies reporting on the same day, you can hit limits quickly. Prioritize watchlist stocks and defer sector comparison data to off-peak windows. Consider upgrading to a paid API tier during January and July earnings seasons when reporting volume is highest. Use isolated cron sessions. Always run earnings analysis in isolated sessions (sessionTarget: "isolated") rather than the main session. Earnings analysis generates substantial output, and running it in the main session would bury your regular agent interactions under pages of financial data. Isolated sessions keep the analysis contained and deliver only the summary to your notification channel. Archive everything in Notion. Even if you do not review every analysis immediately, archiving to Notion builds a valuable dataset over time. After several quarters, you can ask the agent to analyze its own historical archive — identifying which companies consistently beat, which sectors are trending up or down, and how guidance revisions correlate with subsequent stock performance. Validate early and often. During your first earnings season with the agent, manually cross-check its analysis against a source like Yahoo Finance or Seeking Alpha for the first 5-10 reports. Verify that EPS figures match, surprise calculations are correct, and guidance extractions are accurate. Financial data errors compound quickly — a wrong consensus estimate leads to an incorrect surprise calculation leads to a misleading conclusion. Layer in qualitative context. The best earnings analysis blends quantitative metrics with qualitative understanding. Encourage the agent (via its BOOTSTRAP.md) to always fetch the actual press release text, not just API numbers. Management tone, strategic commentary, and off-hand remarks during Q&A sessions often contain more signal than the headline numbers.

Troubleshooting

Problem: Agent is not detecting new earnings releases. Check that your financial data API key is valid and has remaining quota. Run a manual test: ask the agent to fetch the earnings calendar for the current week. If the API returns empty results, the key may be expired or rate-limited. Also verify that web_search is configured — the agent uses web search as a fallback detection method when API calendars lag behind real-time releases. Problem: EPS or revenue figures do not match other sources. Financial data APIs sometimes have slight delays in updating consensus estimates, and different providers use different analyst pools to calculate consensus. Alpha Vantage and Financial Modeling Prep may show different consensus estimates for the same stock. This is normal. If discrepancies are large (>5%), check whether the agent is comparing GAAP vs. non-GAAP EPS (a common source of confusion) and ensure the BOOTSTRAP.md specifies which standard to use. Problem: Guidance extraction is inaccurate or missing. Guidance is inherently unstructured — companies express forward-looking estimates in different formats, and not all companies provide quantitative guidance. If the agent misinterprets guidance, refine the BOOTSTRAP.md to include specific parsing instructions (e.g., "Look for lines containing 'expects,' 'anticipates,' 'range of,' or 'outlook' in the press release"). For companies that only provide qualitative guidance, instruct the agent to classify tone rather than extract numbers. Problem: API rate limits hit during peak earnings season. Implement a priority queue in your watchlist: tag stocks as "high priority" (your core positions) and "low priority" (sector context). Configure the agent to analyze high-priority stocks first when multiple companies report simultaneously. Consider staggering cron jobs — instead of checking all stocks every 30 minutes, check high-priority stocks every 30 minutes and low-priority stocks every 2 hours. Upgrading to a paid API tier ($49.99/month for Alpha Vantage) removes the daily cap entirely. Problem: Slack notifications are not arriving. Verify that the Slack integration is properly configured in your OpenClaw instance and that the cron job's delivery.to field references a valid Slack channel ID (not the channel name). Channel IDs start with "C" and can be found in Slack's channel settings. Also confirm that the cron job's delivery.mode is set to "announce" and not "none". Problem: Analysis quality is inconsistent. This usually indicates the BOOTSTRAP.md needs refinement. Review the agent's output for common failure patterns: is it missing segment breakdowns? Failing to note one-time items? Not comparing to prior quarters? Add explicit instructions for each gap you identify. The analysis framework in the BOOTSTRAP.md acts as a checklist — the more specific it is, the more consistent the output quality.