What we score, what we leave alone, and why MD&A is a biased but useful place to look for tone that should line up with the statements.
For each recent 10-K or 10-Q we extract Management's Discussion and Analysis only:
Sentences are scored with FinBERT (ProsusAI/finbert), a finance-tuned model. Long MD&As are subsampled (evenly spaced, up to ~220 sentences) so an 80-page Item 7 is not fully scored. The filing score is the mean of sentence scores (positive − negative).
Numbers come from SEC companyfacts XBRL for the same accession: year-over-year change in revenue and net income. Agreement means tone and the metric moved in the same direction. This is same-filing comparison, not a forecast or trading signal.
| Section | Bias tendency | In this project? |
|---|---|---|
| MD&A (Item 7 / 2) | Most management-controlled narrative. Forward-looking language often sounds more optimistic than the historical results discussion. | Yes — primary corpus |
| Item 1A Risk Factors | Legally conservative, systematically negative, heavy boilerplate. Scoring at scale looks “bearish” even in good years. | Bias demo only (few filings) |
| Item 1 Business | Descriptive, low discretion | No |
| Financial statements / notes / auditor | Constrained or templated; the “numbers” side | Numbers via XBRL only |
| Earnings releases / shareholder letters | Often more promotional than MD&A | No |
Generic positive/negative word lists fail in finance (e.g. “liability”, “risk”). That is why we use FinBERT rather than a general lexicon.
A handful of 10-Ks also get Item 1A scored so you can see the section bias without storing a second full S&P 500 corpus.
No bias demos synced yet. After scoring filings locally, run push_all() with the service role key.
The live site reads industry and company aggregates from Supabase Free (500 MB database). Full MD&A text and FinBERT runs stay on a local worker. Cloud storage holds:
sector_stats — pooled correlations by GICS sectorcompany_stats — one slim row per ticker (compact scatter points, no sentence blobs)example_filings — a few case studies with sentence highlightsCompany Pearson r with n≈8 is weak. Prefer industry pooled r as the headline, and treat company rankings as illustrations with the sample-size caveat.