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

Rep. Barbara Comstock (R-VA)

House · Republican (most recent term) · VA-10 · in Congress 2015–2019 · Bioguide ID C001105

Party history: R 2015–2019. 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 2014)2014$852,104$2,249,550$3,646,995
(b) Latest net worth estimate2017−$4,253,961−$1,468,982$1,315,998
(c) Estimated gain / loss, nominal dollars, 2014 → 2017 (3 years spanned)2014–2017−$7,900,956−$3,718,531+$463,894

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

Reliability flags (net worth): 2014: 1 Schedule A row(s) had the upper bound of the range lost in text extraction; completed from the fixed statutory bracket. 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
2014$2,467,052$217,502$2,249,550$852,104 … $3,646,995computed; 1 Schedule A row(s) had the upper bound of the range lost in text extraction; completed from the fixed statutory bracket
2015$1,281,522$175,000$1,106,522$357,045 … $1,855,999computed
2016$1,461,023$175,000$1,286,022$456,046 … $2,115,999computed
2017$1,606,020$3,075,001−$1,468,982−$4,253,961 … $1,315,998computed
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.
Limited data – not ranked. Only 2 comparable year-pair(s) could be computed (minimum 3 to rank). 4 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

-33%0%10%20162017

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
2014→2015$1,092,523$888,014$0$0$0 -18.7%-20.2% … -13.7%-114% … +76%48%excluded; not eligible: traced coverage 48% < 60%
2015→2016$1,273,522$1,380,520$75,000$324,506$177,506 +2.7%+1.3% … +7.4%-130% … +136%99%counted; many new/exited positions
2016→2017$1,316,516$1,269,015$0$391,506$0 -33.3%-35.5% … -27.0%-142% … +75%90%counted; many new/exited positions

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
201410004320House amendment9/11/2014104110004320.pdf
3aebadc2b867efedd03d2abeb7680984ea8426d933188825a5db8873ffae6216
201510010028House annual6/14/201656010010028.pdf
d76ba7c9cfc000f2ee6a2e5397da6a72f440e56737b4658a7d539af09eeeeb17
201610014992House annual5/14/201765010014992.pdf
647af85a63c9e5fcbed95f198faca51054ca6763d397f8ce2ce4d85dfe6c10f8
201710020569House annual7/11/201861010020569.pdf
fcea27f47a639499f6bd9f4edf681a193a59e4b3dcbb372ca9c7a49d467cbab8

Largest movers 2015→2016

Position (as written in filing)OwnerKindOpening range(s)Closing range(s)Buys (mid)Sales (mid)
Vangard Value ETF IndexSPheld$15,001 - $50,000None$0$0
Vanguard FTsE Developd Mkts ESPheld$15,001 - $50,000None$0$0
Fidelity RolloverIRA ⇒ Apple Inc. (AAPL)SPnew—$15,001 - $50,000$8,000$0
Vanguard Mid-Cap ETF IndexSPheld$1,001 - $15,000None$0$32,500
Ishares JP Morgan EM bond ETFSPheld$1,001 - $15,000None$0$0
Invesco Floating Rate Y Confirm NBRSPheld$1,001 - $15,000None$0$0
Bank Deposit Program Morgan stanleySPheld$1,001 - $15,000None$0$0
Mondelez International, Inc. - Class A (MDLZ)—held$1,001 - $15,000$1,001 - $15,000$0$0

Largest movers 2016→2017

Position (as written in filing)OwnerKindOpening range(s)Closing range(s)Buys (mid)Sales (mid)
Vangard Value ETF Index [EF]—held$100,001 - $250,000None$0$0
Vanguard Growth ETF [EF]—held$100,001 - $250,000$50,001 - $100,000$0$0
Microsoft Corporation (MsFT) [sT]—new—$15,001 - $50,000; $50,001 - $100,000$32,500$0
Ishares Interm Credit Bd [EF]—held$50,001 - $100,000None$0$0
Vanguard FTsE Developd Mkts E [EF]—held$50,001 - $100,000None$0$0
Apple Inc. (AAPL) [sT]—new—$100,001 - $250,000; $15,001 - $50,000$148,002$0
Fidelity RolloverIRA ⇒ Vanguard Index FDs Vanguard Value ETF [EF]SPheld$15,001 - $50,000$50,001 - $100,000$0$0
Vanguard FTsE Emerging Markets [EF]—held$15,001 - $50,000$50,001 - $100,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).