Rep. Mark DeSaulnier (D-CA)
House · Democrat (most recent term) · CA-10 · in Congress 2015–present · Bioguide ID D000623
Party history: D 2015–present. Source: term data in unitedstates/congress-legislators (CC0); party shown is as recorded per term there.
Estimated net worth (from public disclosures)
| Estimate | Report year | Low | Mid | High |
|---|---|---|---|---|
| (a) Estimated net worth before entering office (report year 2014) | 2014 | $133,007 | $264,504 | $396,000 |
| (b) Latest net worth estimate | 2025 | −$198,997 | $83,001 | $364,999 |
| (c) Estimated gain / loss, nominal dollars, 2014 → 2025 (11 years spanned) | 2014–2025 | −$594,997 | −$181,502 | +$231,992 |
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 year | Assets (mid) | Liabilities (mid) | Net worth mid | Low … High | Status / flags |
|---|---|---|---|---|---|
| 2014 | $264,504 | $0 | $264,504 | $133,007 … $396,000 | computed |
| 2015 | $199,002 | $375,000 | −$175,998 | −$396,996 … $44,999 | computed |
| 2016 | $199,002 | $925,002 | −$726,000 | −$1,146,996 … −$305,003 | computed |
| 2017 | $191,002 | $550,001 | −$359,000 | −$647,997 … −$70,002 | computed |
| 2018 | $199,002 | $550,001 | −$350,999 | −$646,996 … −$55,002 | computed |
| 2019 | $191,502 | $550,001 | −$358,499 | −$647,996 … −$69,002 | computed |
| 2020 | $215,502 | $550,001 | −$334,500 | −$633,997 … −$35,002 | computed |
| 2021 | $208,002 | $1,300,002 | −$1,092,000 | −$1,634,997 … −$549,003 | computed |
| 2022 | $215,502 | $750,000 | −$534,499 | −$883,997 … −$185,001 | computed |
| 2023 | $258,002 | $375,000 | −$116,999 | −$348,997 … $114,999 | computed |
| 2024 | $258,002 | $375,000 | −$116,999 | −$348,997 … $114,999 | computed |
| 2025 | $458,002 | $375,000 | $83,001 | −$198,997 … $364,999 | computed |
- What this is: Net worth = Schedule A assets (each value range at its midpoint; low–high range shown) minus Schedule D liabilities (midpoints / ranges). Low = assets at range floors minus liabilities at range ceilings; Mid = midpoints; High = assets at ceilings minus liabilities at floors. Low and High are outer bounds of the reported ranges, not likely outcomes.
- What it excludes / understates: exact values (only ranges are reported); a personal residence is not reported as an asset (although a mortgage on it may be listed as a liability, which then lowers the estimate); retirement and federal accounts (e.g. Thrift Savings Plan, defined-benefit pensions) are only partly or not reported; assets of excepted/blind trusts, cash held below reporting thresholds, vehicles, household goods and most spouse/dependent items exempt from reporting are not included; liabilities on a personal residence, revolving credit under thresholds and loans to family may be omitted by filers.
- Open-ended top ranges (e.g. “Over $50,000,000”) are counted at their lower bound and flagged, so such values are understated.
- The change is a change in estimated net worth in nominal dollars (no inflation adjustment). It includes salary, gifts, inheritances, business income and re-valuation as well as investment results, and it is subject to range-bracket noise; it is not an investment return and implies nothing about conduct.
2015 -14%
Reliability flags: 1 year(s) driven by income/one position/range artefact.
Sensitivity band for the average (all ranges at floor vs. all at ceiling, same holdings both years): +8.9% to +5.6%. This band is narrow because it moves both years together; the true uncertainty is larger — see the per-year “strict envelope” column and the limitations.
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. gain | Same-position band | Strict envelope | Traced coverage | Status / flags |
|---|---|---|---|---|---|---|---|---|---|---|
| 2014→2015 | $232,003 | $199,002 | $201 | $0 | $0 | -14.1% | -14.6% … -12.7% | -105% … +76% | 88% | counted |
| 2015→2016 | $199,002 | $199,002 | $201 | $0 | $0 | +0.1% | +0.0% … +0.1% | -96% … +97% | 100% | counted |
| 2016→2017 | $191,002 | $191,002 | $201 | $0 | $0 | +0.1% | +0.0% … +0.1% | -93% … +93% | 96% | counted |
| 2017→2018 | $191,002 | $191,002 | $201 | $0 | $0 | +0.1% | +0.0% … +0.1% | -93% … +93% | 100% | counted |
| 2018→2019 | $199,002 | $191,502 | $302 | $0 | $0 | -3.6% | -4.5% … -1.0% | -97% … +90% | 100% | counted |
| 2019→2020 | $191,002 | $215,502 | $201 | $0 | $0 | +12.9% | +12.6% … +13.7% | -86% … +112% | 100% | counted |
| 2020→2021 | $215,502 | $208,002 | $201 | $0 | $0 | -3.4% | -4.3% … -0.9% | -93% … +86% | 100% | counted |
| 2021→2022 | $208,002 | $215,502 | $201 | $0 | $0 | +3.7% | +0.9% … +4.8% | -89% … +96% | 100% | counted |
| 2022→2023 | $215,502 | $258,002 | $701 | $0 | $0 | +20.0% | +16.3% … +30.3% | -76% … +116% | 100% | counted |
| 2023→2024 | $258,002 | $258,002 | $701 | $0 | $0 | +0.3% | +0.1% … +0.3% | -83% … +83% | 100% | counted |
| 2024→2025 | $258,002 | $458,002 | $701 | $0 | $0 | +77.8% | +68.8% … +99.5% | -25% … +180% | 100% | counted; single position drives the result (range jump) |
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 year | Doc ID | Type | Filed | Schedule A rows | Rows with unparsed value | Source (official filing) / SHA-256 |
|---|---|---|---|---|---|---|
| 2014 | 10005763 | House amendment | 7/14/2015 | 7 | 0 | 10005763.pdf5ff7b04353009dff4757d2d009045ee6a3c95c023f2376249859d33bb4cd8b04 |
| 2015 | 10011267 | House annual | 5/16/2016 | 6 | 0 | 10011267.pdf3532fca7f1a58cdffa7075be0e823d1f2788a75f1d2d86b093ddf445d62d755a |
| 2016 | 10015893 | House annual | 5/11/2017 | 4 | 0 | 10015893.pdfd1ad23f24fb4c2a431de54eee6875506cff095d1aa38768d346c6e9e63f0c853 |
| 2017 | 10021863 | House annual | 5/15/2018 | 3 | 0 | 10021863.pdf77e15a654783713c971e188aace6b8a35b7358237802de0968459076a9e2b2dc |
| 2018 | 10026293 | House annual | 5/10/2019 | 4 | 0 | 10026293.pdf8176ad5464c3db49e354e2c43d43e1b039e32abd9ad2ba8a0571e8ca882759a1 |
| 2019 | 10037166 | House annual | 7/30/2020 | 4 | 0 | 10037166.pdfe7292e591be81f34fe63bc8a2001b75125a6ddff8f1a0b12b70cbd00f572f396 |
| 2020 | 10041145 | House annual | 7/21/2021 | 3 | 0 | 10041145.pdf0ea898f59208aea24c4e86e935947a6dd72ca701f5048de371dfa2cd619cced3 |
| 2021 | 10047044 | House annual | 5/16/2022 | 3 | 0 | 10047044.pdf26307c30d06f9b2829604c4d8e45ba621bb342767a7b56281f51ca95adae440f |
| 2022 | 10052443 | House annual | 5/12/2023 | 3 | 0 | 10052443.pdf07ccd1b5bfff581c0be16cd005344183287055e5514043a3aa484c432fcb8235 |
| 2023 | 10059653 | House annual | 5/6/2024 | 3 | 0 | 10059653.pdf6d7aab364edb522b2ef5cb541dd64d58129c0faba31f6700a1e107f1a8dad6e2 |
| 2024 | 10067325 | House annual | 5/6/2025 | 3 | 0 | 10067325.pdf8af9a60561ecc787ccf8df3d1c0ed676d1ca00ac45c94b11f170234e4d771c0b |
| 2025 | 10078110 | House annual | 5/14/2026 | 3 | 0 | 10078110.pdf180362343f215df525137e3153df6b7bf7a9fa76c8e24a062454000c5139818c |
Largest movers 2022→2023
| Position (as written in filing) | Owner | Kind | Opening range(s) | Closing range(s) | Buys (mid) | Sales (mid) |
|---|---|---|---|---|---|---|
| US Bank [BA] | — | held | $15,001 - $50,000 | $50,001 - $100,000 | $0 | $0 |
| Travis Credit Union [BA] | — | held | $1,001 - $15,000 | $1,001 - $15,000 | $0 | $0 |
| Contra Costa County Employee Retirement Association [PE] | — | held | $100,001 - $250,000 | $100,001 - $250,000 | $0 | $0 |
Largest movers 2023→2024
| Position (as written in filing) | Owner | Kind | Opening range(s) | Closing range(s) | Buys (mid) | Sales (mid) |
|---|---|---|---|---|---|---|
| Travis Credit Union [BA] | — | held | $1,001 - $15,000 | $1,001 - $15,000 | $0 | $0 |
| US Bank [BA] | — | held | $50,001 - $100,000 | $50,001 - $100,000 | $0 | $0 |
| Contra Costa County Employee Retirement Association [PE] | — | held | $100,001 - $250,000 | $100,001 - $250,000 | $0 | $0 |
Largest movers 2024→2025
| Position (as written in filing) | Owner | Kind | Opening range(s) | Closing range(s) | Buys (mid) | Sales (mid) |
|---|---|---|---|---|---|---|
| Contra Costa County Employee Retirement Association [PE] | — | held | $100,001 - $250,000 | $250,001 - $500,000 | $0 | $0 |
| Travis Credit Union [BA] | — | held | $1,001 - $15,000 | $1,001 - $15,000 | $0 | $0 |
| US Bank [BA] | — | held | $50,001 - $100,000 | $50,001 - $100,000 | $0 | $0 |
Method (summary)
- 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.
- 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.
- 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).
- 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
- Ranges are wide (up to a factor of 5 or more, and up to $50M+ open-ended); a holding can move between ranges without any real change in value, and stay in a range while moving materially. Yearly estimates are therefore noisy; the “strict envelope” shows the mathematical worst/best case and is typically wider than ±100%.
- Purchases and sales are only disclosed as ranges and only for transactions over $1,000; partial sales, dividend reinvestment, spousal/dependent accounts and retirement-plan funds are reported inconsistently. Excepted/blind trusts, personal residences and certain pensions are not reported at all.
- Filers sometimes change how they list assets (e.g. listing a brokerage account vs. its individual holdings), which can make positions untraceable across years; these are excluded rather than guessed.
- Asset values in an annual report are as of Dec 31 of the reporting year; the report year t−1→t covers that calendar year. Late or amended filings are used when filed; extensions can delay them.
- The text of these reports is machine-parsed from PDFs; parse errors are possible. Every number links back to the cited filing. This is not investment advice.
- Use of these filings is restricted by 5 U.S.C. § 105(c) (no unlawful, commercial or credit-rating purpose, and none for solicitation of money).
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).