Official portrait of Rep. Bob Good (R-VA)
Official portrait: unitedstates/images (public domain; source GPO Member Guide)

Rep. Bob Good (R-VA)

House · Republican (most recent term) · VA-5 · in Congress 2021–2025 · Bioguide ID G000595

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

Estimated net worth (from public disclosures)

EstimateReport yearLowMidHigh
(a) Estimated net worth before entering office (report year 2019)2019$158,123$987,060$1,815,998
(b) Latest net worth estimate2023$225,047$805,023$1,384,999
(c) Estimated gain / loss, nominal dollars, 2019 → 2023 (4 years spanned)2019–2023−$1,590,951−$182,038+$1,226,876

Gain Low = latest Low − earliest High; Gain High = latest High − earliest Low (widest possible spread); Mid = latest Mid − earliest Mid.

Reliability flags (net worth): none for these two endpoints. Included in the recommended dollar-gain ranking.

Net worth by report year (mid; Low–High)
Report yearAssets (mid)Liabilities (mid)Net worth midLow … HighStatus / flags
2019$1,052,062$65,001$987,060$158,123 … $1,815,998computed
2020$942,062$65,001$877,060$114,123 … $1,639,998computed
2021$855,502$250,001$605,502$196,005 … $1,014,998computed
2022$647,502$250,001$397,502$45,005 … $749,998computed
2023$980,024$175,000$805,023$225,047 … $1,384,999computed
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). 5 annual filing(s) were usable (text-readable, validated OCR, or validated X-mark decoding) and 0 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

-12%0%10%2020

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
2019→2020$944,051$827,052$0$0$0 -12.4%-18.4% … -11.5%-153% … +128%90%counted
2020→2021$0$0$0$0$0 n/an/a … n/an/a … n/a0%excluded; not eligible: traced prior-year value below $50,000
2021→2022$8,000$175,000$100$0$0 +2088.6%+1568.0% … +9890.2%+1062% … +3115%1%excluded; not eligible: traced prior-year value below $50,000
2022→2023$175,000$8,000$100$0$0 -95.4%-99.0% … -93.9%-142% … -48%27%excluded; not eligible: traced coverage 27% < 60%

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
201910039161House amendment10/5/2020123010039161.pdf
e2c0b6a717dbd55d32acd75c3d95bf714983a4c15e3f16077cc812cdc5659d5f
202010039553House amendment2/23/2021123010039553.pdf
91803e50b9408910ff4875eb93dd66619cecbb0a77d33cd3441d4f6fdb143897
202110048381House annual8/11/20225010048381.pdf
578eedea9ea686ca17d6391c3a5b331c4bc6f3537bf82c4cc48fe88f24302c1f
202210054323House annual8/3/20235010054323.pdf
036160192f57b2d3e6044c1c61eebef4a503199bcac825dc379cef2ff4d8b3c0
202310060656House annual8/12/202447010060656.pdf
eba22d2a173438674109e703051a95aa7e92156adaab74c371030db25881cb76

Largest movers 2019→2020

Position (as written in filing)OwnerKindOpening range(s)Closing range(s)Buys (mid)Sales (mid)
Merrill Lynch IRA ⇒ Glenmede Small Cap [MF]JTheld$50,001 - $100,000$15,001 - $50,000$0$0
Merrill Lynch IRA ⇒JTheld$1,001 - $15,000$1,001 - $15,000; $1,001 - $15,000$0$0
Merrill Lynch IRA ⇒ ConocoPhillips (COP) [ST]JTheld$1,001 - $15,000$1 - $1,000$0$0
Merrill Lynch ROTH IRA ⇒JTheld$1 - $1,000$1,001 - $15,000$0$0
Merrill Lynch IRA ⇒ LyondellBasell Industries NV Ordinary Shares Class A (LYB) [ST]JTheld$1,001 - $15,000$1 - $1,000$0$0
Merrill Lynch IRA ⇒ Realty Income Corporation (O) [ST]JTheld$1,001 - $15,000$1 - $1,000$0$0
Merrill Lynch IRA ⇒ Honda Motor Company, Ltd. (HMC) [ST]JTheld$1,001 - $15,000$1 - $1,000$0$0
Merrill Lynch IRA ⇒ Mohawk Industries, Inc. (MHK) [ST]JTheld$1,001 - $15,000$1 - $1,000$0$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).