Official portrait of Rep. Michael T. McCaul (R-TX)
Official portrait: unitedstates/images (public domain; source GPO Member Guide)

Rep. Michael T. McCaul (R-TX)

House · Republican (most recent term) · TX-10 · in Congress 2005–present · Bioguide ID M001157

Party history: R 2005–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 electronic or validated-OCR annual reports available.

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 0 comparable year-pair(s) could be computed (minimum 3 to rank). 0 annual filing(s) were usable (text-readable, validated OCR, or validated X-mark decoding) and 22 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

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

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

Scanned filings not used — insufficient data – scanned

Index yearDoc IDTypeFiledOCR statusSource
20088138896O7/15/2008not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8138896.pdf
20098142999O7/15/2009not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8142999.pdf
20098148954A9/16/2010not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8148954.pdf
20108148603O8/16/2010not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8148603.pdf
20108148956A9/16/2010not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8148956.pdf
20118203647O8/12/2011not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8203647.pdf
20128206984O8/9/2012not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8206984.pdf
20138212876O8/13/2013not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8212876.pdf
20138212967A8/15/2013not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8212967.pdf
20138216253O8/12/2014not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8216253.pdf
20149107603O9/16/2015OCR attempted - failed validation: checkbox-column (X-mark) Schedule A layout: value read from mark position, not supported9107603.pdf
20159109829O8/12/2016OCR attempted - failed validation: G3 unparsed table pages 1/39109829.pdf
20169111631O8/17/2017OCR attempted - failed validation: G2 trusted-snap rate 0% < 92%; G3 unparsed table pages 1/29111631.pdf
20169111869A10/6/2017not OCR-processed (outside scope: report year before 2012, or not needed for rankability)9111869.pdf
20179113659O8/13/2018OCR attempted - failed validation: checkbox-column (X-mark) Schedule A layout: value read from mark position, not supported9113659.pdf
20188216650O8/20/2019not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8216650.pdf
20198217574O8/20/2020not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8217574.pdf
20208218238O8/11/2021not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8218238.pdf
20218219142O8/10/2022OCR attempted - failed validation: checkbox-column (X-mark) Schedule A layout: value read from mark position, not supported8219142.pdf
20228219928O8/16/2023not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8219928.pdf
20238220569O8/7/2024not OCR-processed (outside scope: report year before 2012, or not needed for rankability)8220569.pdf
20249115586O8/12/2025not OCR-processed (outside scope: report year before 2012, or not needed for rankability)9115586.pdf

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).