Quick overview
Compares Item 1A (Risk Factors) between the two most recent 10-K filings for each ticker using a SEC EDGAR MCP server, summarizes the material changes with OpenAI, records what was already reported in a Data Table, and writes a weekly report to Google Docs.
How it works
- Runs every Monday morning (or manually) and loads the MCP server URL, ticker list, SEC User-Agent string, and reporting limits from workflow settings.
- Calls the SEC EDGAR MCP server to verify it exposes the required tools, then reads the existing
risk_factor_watch Data Table to avoid re-reporting the same accession number per ticker.
- For each ticker, requests the three most recent 10-K filings from the MCP server and selects the newest and prior filing, skipping companies with no new filing since the last run.
- Fetches both filings’ HTML from SEC EDGAR using the configured User-Agent and extracts Item 1A Risk Factors into cleaned, comparable paragraph lists.
- Compares this year vs last year paragraphs using token-overlap matching to classify additions, removals, and material rewrites, then keeps only the changed excerpts up to the configured cap.
- Saves the counts for tickers with changes back to the
risk_factor_watch Data Table and sends the changed paragraphs to OpenAI to produce a short, themed explanation.
- Creates a new Google Doc and appends a single combined report covering all tickers with meaningful risk-factor changes, including links to the filings.
Setup
- Start the SEC EDGAR MCP server (for example:
npx -y [email protected] --http --host 0.0.0.0 --port 8932) and set mcp_url in Settings to the reachable /mcp endpoint.
- Update
sec_user_agent in Settings to include your own contact email to avoid SEC 403 responses when fetching filing HTML.
- Create an n8n Data Table named
risk_factor_watch with columns ticker, accession, filed_on, added, removed, and rewritten.
- Add an OpenAI API credential (Chat model) and a Google Docs credential, then set your target
docs_folder and the comma-separated tickers list in Settings.