Skip to content

The President

How the data was built and checked

The Office of Government Ethics posts each report as a scanned PDF. Every transaction on this site was read off those scans. Here is how, what the audits found, and what has not been checked.

Where it comes from

The U.S. Office of Government Ethics (OGE) posts President Trump’s periodic transaction reports (Form 278-T) at extapps2.oge.gov, one PDF per report. 19 reports are loaded here, holding 10,093 printed transaction lines. There is no spreadsheet: each report is a stack of scanned table pages, up to 3,642 lines in one report. Every transaction on this site links to its report and page.

The same table also holds a few lines from the Vice President’s annual report. They are in none of the President’s figures.

How the pages were read

Each page was turned into an image at 200 dots per inch and cut along the table’s own printed rules into strips of eight rows. A vision model running on our own computer read each strip: the line number, the asset text, the type, the date, whether the notification was received over 30 days earlier, and the amount band. Lines the first reading doubted were read again on a closer crop. Where a page had a usable scan text layer, the reading was compared with it.

The scans are skewed and uneven, and the model is not perfect. That is why the lines were then checked, and why the audits below matter.

How each of the 10,093 lines was settled

8,145 first read kept
Read once by the vision model; no reason to read it again.
1,543 strip kept
Read again on a closer crop; the first reading was confirmed.
33 row taken
Read again on a closer crop; the second reading was used.
56 hand ok
Checked against the page image during review; no change needed.
307 hand fixed
Checked against the page image during review and corrected.
9 hand inserted
A line the vision model missed, added from the page image during review.

Compared with the PDF’s own scan text

348 agree
The line matches a line in the PDF’s own scan text (description, date and band).
928 differs
A line in the scan text matches the description but the date or band differs, or the description differs slightly. The scan text is often garbled, so this is a flag to look, not a finding of an error.
8,808 no textlayer line
No line in the scan text matched. Most pages have no usable scan text.
9 not checked
No comparison with the scan text was recorded for the line.

What the audits found and what changed

Two audits, both by a separate unit that did not build the data. Fixes to individual lines were made from the page image.

  1. Bond lines in a broker’s format. 39 lines were corrected (37 broker-format lines and 2 municipal lines). In 28 of them the reading had dropped the leading digit of the coupon (a page that prints 05.375% had been read as a coupon under 1%). Maturity dates and issuer names were also repaired on some of these lines. All were re-read on 400 dots per inch crops.
  2. One band that was wrong by a wide margin. The Meta Platforms line (#42) on page 3 of the 278-T signed Jun 25, 2026 report was first stored at $50,001 - $100,000. The page prints $5,000,001 - $25,000,000. It was fixed, and it is one of the lines on the largest-transactions page.
  3. Rows shifted by one. On the same page, printed lines #52 to #59 (8 lines) had the band and type of the neighboring row. They were corrected from the page. A check of 225 lines on 42 pages for the same kind of slip found no other, and the auditor’s 4 further pages (132 lines) found none either.
  4. Asset classes. 1,379 lines changed class when the rules for stock, bond and fund were tightened, for example lines first labeled “other” that are stock or bonds. The table now has 8,024 stock, 1,905 bond and 164 fund lines and none unclassified. A page never calls a bond line “stock”.
  5. The 278-T exemption. The form says U.S. Treasury securities and fund holdings need not be reported on a 278-T, so no gap is computed for them: 174 lines now carry a blank gap instead of a count. See disclosure timing.
  6. Perpetual securities. 168 bond lines are perpetual fixed-income securities, mostly capital securities issued by banks and insurers. A perpetual has no maturity. Brokers print a placeholder date for these lines; it is not a real maturity, so this site shows the word “perpetual” and no maturity for them.
  7. Amended lines. 4 lines are the replacement lines of an amended report. The original lines they replace are not counted twice.
  8. The covers. Each report’s cover page was read by eye, including the Comments of Reviewing Officials box and the dates on it. The notes in that box are quoted only as printed, and only beside the agency ethics official’s signed opinion. On 5 of the 19 reports, the reviewing official wrote in the comments box: ‘Filer paid late fee(s).’ Every report also carries the agency ethics official’s signed opinion that the filer is in compliance with applicable laws and regulations.

The counts in items 1 to 4, the 225 lines on 42 pages, the auditor’s 4 further pages and 132 lines, the 46 of about 330 pages and the 60-line sample are not computed from the database: it holds the corrected lines, not a log of what each fix changed. They are taken from the fix record (r10f-fixes.md, Oct 19, 2026) and the two audit files named below. The other counts are computed from the database when the page loads.

The audit files

  • A11, Oct 19, 2026: audit-2026-10-19-slushfund-a11.md

    First audit of the President’s 278-T data. 60 randomly chosen rows were compared with the page images; every row matched on date, asset, type, band and owner. It found five problems outside that sample, listed under “What the audits found and what changed”. Result: Five must-fix items.

  • A11b, Oct 19, 2026: audit-2026-10-19-slushfund-a11b.md

    Re-check of those five items after the fixes: all five hold. It read 4 more pages row by row (132 of 132 rows matched) and checked all 19 report covers in full. Result: GO.

What has not been checked

  • 46 of about 330 table pages in the large reports have been compared with the page image row by row. The one-row shift described above has not reappeared on any of them, but it is not ruled out on the pages not read that way. The rest were checked by a random sample of 60 lines, by arithmetic checks on every line, and by the line-number sequence of every report.
  • Every line on the largest-transactions page was compared with its page image before this section was published.
  • Asset names can carry small spelling slips from the reading. The linked report is the record. If a line does not match its page, report the error.
  • Whether the filer was granted a filing extension is not on the posted report, so it is not in these records.