Official portrait of Rep. Ro Khanna (D-CA)
Official portrait: unitedstates/images (public domain; source GPO Member Guide)

Rep. Ro Khanna (D-CA)

House · Democrat (most recent term) · CA-17 · in Congress 2017–present · Bioguide ID K000389

Party history: D 2017–present. Source: term data in unitedstates/congress-legislators (CC0); party shown is as recorded per term there.

Estimated net worth (from public disclosures)

Not available. no report year could be computed (validated X-mark decoding of a scanned filing: Schedule A is usable, but Schedule D (liabilities) is not parsed from scanned filings, so net worth is not computed).

No figure is shown rather than guessing. Net worth is computed only from electronic filings (text-readable Schedule A and Schedule D); scanned filings are used only where explicitly validated, and their liabilities are not parsed.

Read this first. Members report asset values only as ranges (e.g. “$15,001 – $50,000”), never exact dollars. Every figure below is an estimate computed from range midpoints, not a measured return. Figures cannot be interpreted as investment performance, and they do not show wrongdoing or skill. Methodology and limitations are at the end and in the project README. Sources: public financial disclosure reports filed with the Clerk of the U.S. House of Representatives and/or the Secretary of the Senate (Senate eFD), linked below.
Insufficient data to rank. Only 1 comparable year-pair(s) could be computed (minimum 3 to rank). 6 annual filing(s) were usable (text-readable, validated OCR, or validated X-mark decoding) and 11 scanned/image-only filing(s) could not be used (older layouts failing validation, small amendments not integrated). See the method-per-year section below.

Estimated year-over-year change

-51%0%10%2025

Bars: midpoint estimate; whisker: same-position floor/ceiling band. Axis clipped to −100%…+150%. Years with insufficient traceable holdings are omitted.

Year (t−1 → t)Opening value (mid)Closing value (mid)Income (mid)Buys (mid)Sales (mid)Est. gainSame-position bandStrict envelopeTraced coverageStatus / flags
2020→2021$20,433,194$62,237,608$4,025,250$46,083,132$19,771,058 +95.5%+94.2% … +98.8%-282% … +473%43%excluded; not eligible: traced coverage 43% < 60%; OCR-derived (scanned filing; validated, see method) - years 2020, 2021; high turnover (buys+sells > 100% of opening value); many new/exited positions
2021→2022$62,948,624$34,769,846$3,767,608$58,270,252$57,483,106 -40.0%-41.7% … -39.4%-226% … +146%68%excluded; not eligible: OCR continuity check failed (10/13 held positions within +-1 bracket; need >= 5 and >= 88%); OCR-derived (scanned filing; validated, see method) - years 2021, 2022; high turnover (buys+sells > 100% of opening value); many new/exited positions
2022→2023$42,091,871$132,949,614$9,455,742$47,541,700$39,219,934 +218.5%+164.8% … +239.1%-136% … +573%60%excluded; not eligible: OCR continuity check failed (20/25 held positions within +-1 bracket; need >= 5 and >= 88%); OCR-derived (scanned filing; validated, see method) - years 2022, 2023; high turnover (buys+sells > 100% of opening value); many new/exited positions
2023→2024$118,636,078$115,643,642$4,454,680$0$0 +1.2%-2.4% … +2.3%-108% … +110%61%excluded; not eligible: Schedule B (transactions) of the later year not decodable reliably, so purchases / sales are unknown; OCR-derived (scanned filing; validated, see method) - years 2023, 2024
2024→2025$180,078,841$88,685,870$2,240,798$38,275,690$35,225,072 -51.2%-54.6% … -38.8%-157% … +54%90%counted; OCR-derived (scanned filing; validated, see method) - years 2024, 2025

How Rep. Khanna's figures were obtained (method per year)

All of Rep. Khanna's annual reports are scanned images with no text layer (116–367 pages each, mostly attached brokerage statements and checkbox-grid schedules). The House Clerk index lists no electronic (text) annual report for him in any year 2016–2025 (all Doc IDs start with 8 or 9, none with 1). His ~119 periodic transaction reports are scanned images too, so there is nothing to parse electronically. For 2020–2025 the Schedule A/B grids use the House ‘X-mark’ checkbox form: the value, income-amount and transaction-amount brackets are read from which column holds the X. Decoding: two independent decoders per cell (ink density, and centroid of the largest ink blob) must find exactly one mark in the same column, otherwise the cell is dropped (never guessed); column bounds come from the ruled grid, with strict geometry checks. Validation gates are in the README (§ Task 2). Hand spot-checks of rendered crops against the decoder (8–12 rows each) were run on 2020 p38, 2021 p40/p76, 2022 p80/p141, 2023 p100/p151, 2024 p60 and 2025 p70 (value, income, type, Schedule B amounts); no value/income disagreement was found, but these are small samples and were read via an image-description tool, which was not always consistent between views — they are not a full manual transcription, so no year is labelled ‘manually verified from filing images’.

Report yearDoc IDFiledMethodSch. A rows keptDecoder agreementValue coverageIncome coverageSch. B rowsCaveats
202082182007/29/2021X-mark checkbox decoding (scanned image)1,91399.5%93.5%92.2%0 (Sch. B not used)Halftone-speckled scan: 93 value cells and 121 income cells accepted only through a stricter second rule (one dominant mark, other cells ≤ 60% of its ink, independent decoder agrees); 6.5% of rows dropped as unreadable. Schedule B (transactions) NOT used (only 82% of its rows had a readable type/amount).
202182191438/10/2022X-mark checkbox decoding (scanned image)2,803100.0%100.0%99.9%3,904Cleanest scan. Block C income-type vs Block D amount disagree on 34% of rows (filer's own marks: e.g. type 'Dividends' with amount 'None'); amounts were read as marked. Both-box ‘Sale’+‘Partial Sale’ marks on 560 Schedule B rows counted as a sale.
202282198818/9/2023X-mark checkbox decoding (scanned image)2,539100.0%100.0%96.3%7,481286 rows have an income type 'None' with no amount mark (treated as income None per the form). ~20% of owner codes unreadable (owner is not used for matching).
202382205938/12/2024X-mark checkbox decoding (scanned image)2,803100.0%100.0%98.1%4,667Rows are mostly Schedule A for two large pools (spouse trusts, dependent-child trusts).
202491155968/13/2025X-mark checkbox decoding (scanned image)2,951100.0%98.7%100.0%0 (Sch. B not used)Wavy scan (rows drift up to ±10 px across the page); decoded with per-block row rules. 40 value cells dropped. 33 of 164 Schedule B grid pages could not be decoded, so Schedule B is NOT used for this year (purchases/sales unknown) and the 2023→2024 pair is not counted.
202591162728/10/2026X-mark checkbox decoding (scanned image)3,122100.0%95.0%97.0%5,151Thin-stroke ‘x’ marks; Schedule B decoded with a lower ink threshold (both decoders must agree). 164 value cells (5%) dropped. Many asset names are garbled in the cover/continuation pages; positions are matched by name only where the spelling is unambiguous.

Not achievable with the current tools: report years 2016–2019 (Doc IDs 9111561, 9113638, 9115242, 8217503): older typed / letter-coded layouts whose OCR fails the validation gates (2018: 35 of 67 table pages unparsed, income read for 9%; 2019: 12% income coverage; 2016–2017 not usable). Seven small amendments (8217774, 8217775, 8218509, 8219341, 8220123, 8220779, 8221318) and the ~119 PTRs are not integrated. Because more than 95% of the assets are held by a spouse or dependent child, and the form's top bracket for those is open-ended, values are very coarse.

Why no ranking: only the 2024→2025 pair passes all gates (traced coverage 90%, held-position bracket continuity 114/121 = 94%); 2020→2021 fails traced coverage (43%), 2021→2022 and 2022→2023 fail the OCR continuity gate (77% and 80% of held positions within ±1 bracket against ≥ 88% required), and 2023→2024 is excluded because that year's Schedule B could not be decoded. One year-pair is below the 3 needed to rank. Every pair is still listed in the table above with its status; excluded pairs are shown for transparency and must not be read as estimates.

Filings used

Each annual-report year uses one filing (most recently filed version among originals/amendments whose Schedule A row count is ≥ 40% of the largest). Electronic (text) PDFs are parsed. Scanned/image-only filings are OCR-read and used only if they pass the explicit validation gates described in the project README (value/income coverage, two-engine agreement, exact bracket snapping, page completeness, year-to-year position continuity); such years are labelled OCR-derived below. Scanned filings that fail validation are listed as “insufficient data – scanned”.

Report yearDoc IDTypeFiledSchedule A rowsRows with unparsed valueSource (official filing) / SHA-256
20208218200House annual [X-mark decoded]7/29/2021191308218200.pdf
21f51446167c45cbd4cae0e99e0d1628879b05d7a280777291f0c7e1dcfb05e9
20218219143House annual [X-mark decoded]8/10/2022280308219143.pdf
80845c0e81d35bf07e2840e0b94e6ade967e896f4f99dab7c21743972e164145
20228219881House annual [X-mark decoded]8/9/2023253908219881.pdf
36331a50a936df8a1ddbdfde18e1f7a7added9560b509dd8fc69e87c6c233335
20238220593House annual [X-mark decoded]8/12/2024280308220593.pdf
28a888b97d5230abe7e7e6d41261ccd8f1b68f53b50ea367f07aec60fac3b3ae
20249115596House annual [X-mark decoded]8/13/2025295109115596.pdf
207b0a21b62ab875e574861ab49ad9bc87293fb87acf6ff3dd6856daac8500c8
20259116272House annual [X-mark decoded]8/10/2026312209116272.pdf
a5fe8e8dc1ae06d1ee65efbb513f3f1e52523c876fb983c3eb8bf9550c115efc

Scanned filings not used — insufficient data – scanned

Index yearDoc IDTypeFiledOCR statusSource
20169111561O8/10/2017not OCR-processed (outside scope: report year before 2012, or not needed for rankability)9111561.pdf
20179113638O8/10/2018not OCR-processed (outside scope: report year before 2012, or not needed for rankability)9113638.pdf
20188217774A12/16/2020not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8217774.pdf
20189115242O8/8/2019OCR attempted - failed validation: G3 unparsed table pages 35/67; G4 income coverage 9% < 90%9115242.pdf
20198217503O8/12/2020OCR attempted - failed validation: G2 trusted-snap rate 89% < 92%; G3 unparsed table pages 6/318217503.pdf
20198217775A12/16/2020not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8217775.pdf
20208218509A12/22/2021not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8218509.pdf
20218219341A1/24/2023not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8219341.pdf
20228220123A2/1/2024not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8220123.pdf
20238220779A2/27/2025not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8220779.pdf
20248221318A2/4/2026not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8221318.pdf

Largest movers 2024→2025

Position (as written in filing)OwnerKindOpening range(s)Closing range(s)Buys (mid)Sales (mid)
HEDGE FUND SELECT: ELT ASSOCIATES LLC COMMITMENT CLASS A SERIES 1—held$5,000,001 - $25,000,000; $5,000,001 - $25,000,000$1,000,001 - $5,000,000; $1,000,001 - $5,000,000$0$0
VANGUARD SPECIALIZED PORTFOLIO VANGUARD DIVIDEND APPRECIATION MI—held$5,000,001 - $25,000,000$1,000,001 - $5,000,000$0$0
TPG TECH ADJACENCIES ACCESS LLC—held$250,001 - $500,000; $500,001 - $1,000,000; $1,000,001 - $5,000,000; $1,000,001 - $5,000,000$100,001 - $250,000; $250,001 - $500,000; $250,001 - $500,000; $500,001 - $1,000,000$422,504$0
WEST STREET CAPITAL PARTNERS VIIL.P.—held$1,000,001 - $5,000,000; $1,000,001 - $5,000,000None; $250,001 - $500,000; $250,001 - $500,000$0$0
REDBIRD SERIES 2019 ACCESS LLC—held$1,000,001 - $5,000,000; $1,000,001 - $5,000,000$500,001 - $1,000,000; $500,001 - $1,000,000$0$0
SPOTIFY TECHNOLOGY S.A. CMN—held$500,001 - $1,000,000; $1,001 - $15,000; $1,000,001 - $5,000,000$250,001 - $500,000; $1,001 - $15,000$0$0
WEST STREET CAPITAL PARTNERS CO-INVEST A, SLP—held$500,001 - $1,000,000; $1,000,001 - $5,000,000$100,001 - $250,000; $250,001 - $500,000$0$0
GS FS TRSY SOLUTIONS MM FUND MUTUAL FUND—held$100,001 - $250,000; $250,001 - $500,000; $1,000,001 - $5,000,000$100,001 - $250,000; $100,001 - $250,000; $250,001 - $500,000$40,002$0

Method (summary)

  1. Schedule A asset rows are read from each annual report; the dollar range for each row is converted to its midpoint. Open-ended top ranges (“Over $50,000,000”) are excluded from the traced set and counted as a coverage loss.
  2. Positions are matched year to year by owner code (self/SP/DC/JT) + normalised asset name. A position that appears only in year t is included only if Schedule B shows a purchase of it in year t (opening value 0); a position that disappears is included only if Schedule B shows a sale (closing value 0). Otherwise it is excluded as unexplained.
  3. Estimated gain = (closing − opening + reported income − purchases + sale proceeds) ÷ opening, all at midpoints, for the traced positions. “Capital gains” income is not added again (it is already in value change and sale proceeds).
  4. A year counts only if traced opening value ≥ $50,000 and traced coverage ≥ 60% of the opening midpoint. A member is ranked only with ≥ 3 such years (exactly 2 = “limited data”, shown but unranked). Average = geometric mean of (1+yearly estimate).

Limitations

Generated 2026-10-01 by an automated pipeline. Data: Office of the Clerk, U.S. House of Representatives (disclosures-clerk.house.gov); member roster: unitedstates/congress-legislators (CC0).