SEC filings, decoded — without the subscription. A free alternative to paid SEC-research tools like AskEdgar ($44/mo). Everything is built on the SEC's public EDGAR APIs, and the "intelligence" layer is deterministic code, so running this costs $0 in data fees and $0 in AI bills.
- Company search — instant typeahead over every SEC registrant (ticker or name)
- Dilution radar — a rule-based risk score (0–100) per company computed from:
- shelf/registration statements (S-1, S-3, F-1, F-3) and EFFECT notices
- priced offerings (424B prospectuses)
- split-adjusted year-over-year share-count growth from XBRL cover-page data (also detects buybacks)
- cash runway (cash ÷ operating-cash burn)
- reverse-split history (serial-diluter pattern)
- warrant overhang (warrants ÷ shares outstanding)
- S-8 employee-equity registrations
- Split forensics — reverse/forward splits detected two independent ways: the company's reported XBRL split-ratio tag, and discontinuity scanning of the share-count series (cross-confirmed when both agree). Share history is restated to today's basis so a 1-for-10 reverse split never masquerades as a 90% buyback.
- Share supply & float — company-reported public float (
dei:EntityPublicFloat), warrants, option pool, and unvested RSUs → a fully-diluted overhang %, computed not guessed. - Supply event ledger — shares outstanding is an event ledger, not a number: the latest audited cover count plus every 8-K Item 3.02 issuance and 424B offering filed since, cross-confirmed against proxy record-date statements. Detection relies only on structured metadata (item codes, form types) that issuers cannot reword, so a missed extraction degrades to a visible "count understated" warning — never a silently stale number. Each extracted figure shows its source sentence, and an optional BYOK "AI verify" button re-extracts the numbers with your own model as an independent check.
- Insider pulse — recent Form 4s parsed from the SEC's structured ownership XML: exact open-market buys vs sells with prices, per insider.
- Shelf & ATM ledger — registered dollar amounts read from each filing's Exhibit 107 fee table (mandatory since 2022): shelf size, WKSI pay-as-you-go shelves, takedowns attributed to their shelf, estimated remaining capacity, and at-the-market program detection on 424B5s. Includes a baby-shelf (Instruction I.B.6) note when public float is under $75M.
- Reverse split watch — recent 8-K/6-K/proxy filings scanned for reverse-split language: announced, board-authorized, shareholder-approved, or up for vote, with the ratio extracted (e.g. "up to 1-for-5,000") and a quote from the filing.
- Price & market stats — 1-year chart (log-scaled for split-mangled histories), market cap, 60-day high, average volume, via Yahoo's free chart endpoint. No API key.
- AI research brief (BYOK) — one click compiles everything Ledgar computed (dilution signals, shelf ledger, supply, splits, insider flows, filings) into context and has Claude write a structured brief — grounded in our deterministic data, not free-form recall.
- Provenance everywhere — every XBRL-derived figure links (dotted underline) to the SEC filing it was reported in. Accuracy by audit trail, not by model confidence.
- Real financials — revenue, net income, cash, and shares outstanding pulled from each company's audited XBRL facts, with sparkline trends
- Filings browser — every filing with form-type filters, direct links to documents
- Full-text search — search the text of every filing since 2001 (e.g.
"going concern","at-the-market offering") - Live filing tape — the newest submissions hitting EDGAR, with offering-type forms flagged
- Chat with filings (optional, BYOK) — load any filing into an AI panel and ask questions. Uses your Anthropic API key (stored in your browser's localStorage, never persisted server-side). Defaults to Claude Haiku with prompt caching, so a multi-question conversation about a full 10-K costs a few cents at most.
| Layer | Source | Cost |
|---|---|---|
| Company/ticker directory | www.sec.gov/files/company_tickers.json |
$0 |
| Filings index | data.sec.gov/submissions/ |
$0 |
| Financials | data.sec.gov/api/xbrl/companyfacts/ |
$0 |
| Full-text search | efts.sec.gov/LATEST/search-index |
$0 |
| Live feed | EDGAR Atom feed | $0 |
| Dilution scoring | deterministic rules in lib/dilution.js |
$0 |
| AI chat | user's own Anthropic key (BYOK) | $0 to you |
The server proxies SEC requests (the SEC APIs don't send CORS headers and require a
descriptive User-Agent) and caches responses in memory to stay far below the SEC's
10-requests/second guideline.
npm install
npm run dev # http://localhost:3000
# or production:
npm run build && npm startDeploys as-is to any free Node host (Vercel, Render, Fly). No environment variables required.
Before deploying publicly, change
USER_AGENTinapp/api/sec/[...path]/route.jsto your own contact info — the SEC asks for it.
app/
page.js home: search, full-text search, live filing tape
company/[cik]/page.js dilution radar, financials, filings browser, AI panel
api/sec/[...path]/ caching proxy → data.sec.gov / www.sec.gov / efts.sec.gov
api/ai/route.js BYOK streaming endpoint → Anthropic Messages API
components/AiPanel.js chat UI (key + model stored in localStorage)
lib/edgar.js EDGAR client helpers (tickers, submissions, facts, FTS, atom)
lib/dilution.js rule-based dilution risk engine + financial snapshot
Ledgar is research tooling, not investment advice.