Derived table · Cross-program enforcement
Pandemic-fraud sentencing outcomes
1,131 pandemic-fraud sentencing records, late 2020 through mid-2026, coded from DOJ releases, inspector-general reports, state attorney-general announcements, and court records: program, charges, conviction path, sentence length, probation, restitution, forfeiture, and loss amount, each with a source excerpt and a quality tier.
Download CSV 3.1 MBData dictionary CSVAt a glancePreviewColumnsHow to useBefore you quote a row
At a glance
Measured on the served file on 2026-09-29; the checksum above is the file these numbers describe. Release v4 (2026-09-29) withdrew 11 rows whose cited source does not name the person in the row. Release v5 (2026-09-29) corrects rows to which an automated research pass had attached the wrong person or figures, counts each sentencing once, and withdraws rows that record a charge, not a sentence. Release v6 (2026-09-29) withdraws 24 rows (from a curated court-file source pack or a case-file summary) that repeated a Justice Department row for the same defendant, case and sentence. Release v7 (2026-09-29) corrects 3 rows whose cells did not match the Justice Department release each one cites; release v8 (2026-09-29) gives one curated row the source, date and charge it lacked and adds one sentencing the Justice Department announced on 2026-09-29; release v9 (2026-09-30) corrects 26 amounts that were a fine, a statutory maximum, a program total, a nationwide seizure total or another person’s figure, relabels 129 rows’ amount basis or sentence text against the release each one cites, gives two married couples sentenced together one row each, and adds one sentencing with a COVID-19 relief element; release v10 (2026-09-30) corrects one court-file row that carried another defendant’s sentence and restitution; release v11 (2026-09-30) restores one row’s restitution, forfeiture and supervised release from the full text of the release it cites; release v12 (2026-10-01) adds 3 rows read from court judgments and corrects 8 rows from court records; release v13 (2026-10-01) adds 16 rows read from DOJ press releases; release v14 (2026-10-02) adds 80 rows read from court records, 9 rows read from DOJ press releases, corrects 147 rows from court records, splits one row that named two defendants, removes 7 duplicate rows; release v15 (2026-10-02) adds 8 rows read from court records, corrects 15 rows from court records; see the release notes.
record_id · uniquepandemic-fraud-sentences.csv by the year of source_date where the date is in ISO form; the 181 rows with a blank, month-only, range, or pending date are left out.The numbers behind this chart
| Year | Rows |
|---|---|
| 2020 | 4 |
| 2021 | 88 |
| 2022 | 194 |
| 2023 | 193 |
| 2024 | 192 |
| 2025 | 185 |
| 2026 | 99 |
pandemic-fraud-sentences.csv by comparison_bucket; 222 rows have no bucket and are not shown.The numbers behind this chart
| Bucket | Rows |
|---|---|
| PPP borrower fraud | 484 |
| identity/UI fraud | 259 |
| EIDL borrower fraud | 80 |
| other pandemic relief fraud | 35 |
| tax preparer or tax-credit fraud | 33 |
| platform or lender-side fraud | 18 |
What it is
One row per sentenced defendant, plus a handful of pending cases carried for tracking. 826 rows come from DOJ press releases, 132 from SBA Office of Inspector General and Pandemic Response Accountability Committee reports, 123 from state attorney-general announcements, and 48 from curated source packs and local case summaries. By program: 365 PPP, 144 PPP and EIDL together, 102 EIDL, and 388 unemployment-insurance cases, federal and state, many of them coded from state workforce-agency entries.
Each row records the program defrauded, the fraud type and charges, whether the conviction came by plea or trial, the sentence in months and years, probation and supervised release, restitution and forfeiture, and the loss or intended-loss amount with a note on what that amount is. A source excerpt and extraction notes sit on every row, and data_quality_tier says how far the row was checked: 925 rows carry a fact-checked tier, 15 are verified against the PACER docket, 59 are marked medium confidence.
Beyond the core fields, the table carries three blocks of enrichment: flags describing the shape of PPP schemes (conspiracy, attempted versus obtained, cross-lender patterns), links to the court filings in this archive, and a Bureau of Prisons inmate-locator lookup with register number and projected release date.
How it was built
Rows were extracted from the DOJ press-release corpus with pattern matching for sentence lengths (including spelled-out numbers), restitution, forfeiture, and loss, then merged with hand-curated records from OIG and PRAC reports, state announcements, and court documents. Duplicates across sources were collapsed on a defendant-plus-case key. Rows were then fact-checked: a second public source was found for each, or the row was marked medium confidence or queued for a PACER follow-up. Sentences that were non-custodial, or stated only as a range, have has_numeric_sentence false.
Preview
| record_id | source_family | source_url | source_date | defendant | case_or_group | district | program_category | fraud_type | charge | conviction_path | sentence_text | sentence_months | probation_years | supervised_release_years | restitution_usd | forfeiture_usd | amount_usd | amount_basis | source_confidence | comparison_bucket | source_excerpt | extraction_notes | sentence_years |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| doj:87310a40-6f5b-48b8-892f-f2fb0748de05 | doj_press_release | https://www.justice.gov/usao-ndny/pr/queens-couple-sentence… | 2024-09-20 | William Taylor | Queens Couple Sentenced for $380,000 COVID Unemployment Fra… | NDNY | UI | aggravated identity theft, wire fraud, conspiracy, false cl… | aggravated identity theft, wire fraud, conspiracy, false cl… | sentenced | William Taylor, age 33, of Jamaica, New York, was sentenced… | 36.0 | 0.0 | 2.0 | 381815.0 | 315723.0 | 381815.0 | obtained | dr-fact-checked | identity/UI fraud | Queens Couple Sentenced for $380,000 COVID Unemployment Fra… | parsed from source sentence phrase; DOJ public source statu… | 3.0 |
| doj:31fe536e-2f1a-4724-93a3-f557b67cbd14 | doj_press_release | https://www.justice.gov/usao-ndoh/pr/toledo-area-man-senten… | 2024-03-20 | Terrence L. Pounds | Toledo Area Man Sentenced to 94 Months in Prison for Covid … | NDOH | PPP/EIDL | conspiracy, wire fraud, money laundering, false statements | conspiracy to commit wire fraud, wire fraud and money laund… | sentenced | Terrence L. Pounds, 47, of Holland, Ohio was sentenced to 9… | 94.0 | 0.0 | 3.0 | 4239940.0 | 4239940.43 | restitution ordered to the SBA (release) | dr-fact-checked | PPP borrower fraud | Toledo Area Man Sentenced to 94 Months in Prison for Covid … | parsed from source sentence phrase; DOJ public source statu… | 7.83 | |
| doj:40e8abfb-8e1b-4c1a-a00d-f2a6c2df69f7 | doj_press_release | https://www.justice.gov/usao-nj/pr/bergen-county-man-senten… | 2025-05-30 | George Leguen | Bergen County Man Sentenced to Twenty Months in Prison for … | D.N.J. | EIDL | wire fraud, money laundering | wire fraud, money laundering | guilty plea | In addition to the prison term, Judge Arleo sentenced Legue… | 20.0 | 3.0 | 174426.37 | 149900.0 | 149900.0 | EIDL loan proceeds received | dr-fact-checked | EIDL borrower fraud | Bergen County Man Sentenced to Twenty Months in Prison for … | parsed from source sentence phrase; DOJ public source statu… | 1.67 | |
| doj:beffef1d-0832-4a66-bf61-cc6d1cab0185 | doj_press_release | https://www.justice.gov/usao-nj/pr/camden-county-woman-sent… | 2023-05-02 | Rhonda Thomas | Camden County Woman Sentenced to Five Years in Prison for F… | DNJ | PPP, EIDL | bank fraud, conspiracy, money laundering | Conspiracy to commit bank fraud (18 U.S.C. 1349); Money la… | plea | sentenced to five years in prison for fraudulently obtainin… | 60.0 | 0.0 | 5.0 | 3180000.0 | 1030000.0 | 3180000.0 | obtained | dr-fact-checked | PPP borrower fraud | Camden County Woman Sentenced to Five Years in Prison for F… | parsed from source sentence phrase; DOJ public source statu… | 5.0 |
| doj:0b404fc1-e392-43fa-98c0-febb8bfaeb82 | doj_press_release | https://www.justice.gov/usao-hi/pr/former-hawaii-ceo-senten… | 2025-02-13 | Martin Kao | Former Hawaii CEO Sentenced to 87 Months Imprisonment on Co… | HI | PPP | wire fraud, money laundering, bank fraud | COVID-relief wire fraud, money laundering, and bank fraud | sentenced | Martin Kao, 51, of Honolulu, was sentenced today in federal… | 87.0 | 0.0 | 5.0 | 12841490.0 | 12841490.0 | 15841490.0 | $12,841,490 in PPP funds obtained (forfeiture order) plus a… | dr-fact-checked | PPP borrower fraud | Former Hawaii CEO Sentenced to 87 Months Imprisonment on Co… | parsed from source sentence phrase; DOJ public source statu… | 7.25 |
| doj:fcc3f20c-9588-4e96-ac97-f5b49372c137 | doj_press_release | https://www.justice.gov/usao-ndny/pr/albany-man-sentenced-p… | 2024-07-25 | Scott Solomon | Albany Man Sentenced to Prison for Pandemic Relief Fraud | NDNY | PPP | bank fraud | two counts of bank fraud | guilty_plea | Scott Solomon, age 38, of Albany, was sentenced today to 13… | 13.0 | 3.0 | 163993.0 | 163993.0 | 163993.0 | obtained | dr-fact-checked | PPP borrower fraud | Albany Man Sentenced to Prison for Pandemic Relief Fraud AL… | parsed from source sentence phrase; DOJ public source statu… | 1.08 | |
| doj:c89aaef4-6597-4685-bd45-d022aee58047 | doj_press_release | https://www.justice.gov/usao-cdil/pr/rossi-sentenced-additi… | 2025-07-17 | Aaron Rossi | Rossi Sentenced to an Additional Three Years in Prison for … | CDIL | Healthcare/COVID-testing | wire fraud, mail fraud, false claims | wire fraud, mail fraud, false claims | guilty plea | Aaron Rossi, 42, of Morton, Illinois, was sentenced on July… | 37.0 | 3000000.0 | 1000000.0 | 525520.61 | total combined loss from false billing for COVID tests | dr-fact-checked | other pandemic relief fraud | Rossi Sentenced to an Additional Three Years in Prison for … | parsed from source sentence phrase; DOJ public source statu… | 3.08 | ||
| doj:8ed16a81-de75-4f69-8658-be79f115eb95 | doj_press_release | https://www.justice.gov/usao-cdca/pr/sunland-man-sentenced-… | 2021-09-24 | Andranik Amiryan | Sunland Man Sentenced to Nearly 3½ Years in Federal Prison … | CDCA | PPP | conspiracy, bank fraud, identity theft | conspiracy, bank fraud, identity theft | guilty plea | A Sunland resident has been sentenced to 41 months in feder… | 41.0 | 650600.0 | 650600.0 | Paycheck Protection Program loan obtained | dr-fact-checked | identity/UI fraud | Sunland Man Sentenced to Nearly 3½ Years in Federal Prison … | parsed from source sentence phrase; DOJ public source statu… | 3.42 | |||
| doj:2343f81b-2595-4504-97f0-f881738fa009 | doj_press_release | https://www.justice.gov/usao-sdga/pr/emanuel-county-woman-s… | 2021-07-15 | Tracy Kirkland | Emanuel County woman sentenced after admitting to defraudin… | SDGA | EIDL | wire fraud | wire fraud | plea | Tracy Kirkland, 41, of Swainsboro, was sentenced to 33 mont… | 33.0 | 0.0 | 3.0 | 66400.0 | 16250.0 | 66400.0 | obtained | dr-fact-checked | EIDL borrower fraud | Emanuel County woman sentenced after admitting to defraudin… | parsed from source sentence phrase; DOJ public source statu… | 2.75 |
| doj:66626551-8577-4e88-9b0c-bdb839256d68 | doj_press_release | https://www.justice.gov/usao-sdga/pr/georgia-man-sentenced-… | 2023-09-27 | Dennis Rodriguez Kinchen | Georgia man sentenced for key role in drug trafficking ring… | Southern District of Georgia | Unclassified pandemic relief | conspiracy, money laundering, bank fraud | Conspiracy to Possess with Intent to Distribute, and to Dis… | plea | Dennis Rodriguez Kinchen of Dublin, Ga., was sentenced to 1… | 150.0 | 4.0 | 500000.0 | 297336.69 | 570236.54 | forfeiture | dr-fact-checked | other pandemic relief fraud | Georgia man sentenced for key role in drug trafficking ring… | parsed from source sentence phrase; DOJ public source statu… | 12.5 |
First 10 of 1,130 rows · first 24 of 97 columns (the download has all of them) · cells longer than 60 characters are cut with an ellipsis · shown as text, unformatted.
Files
| File | Rows | Size | SHA-256 | |
|---|---|---|---|---|
pandemic-fraud-sentences.csvCSV, UTF-8, header row | 1,130 | 3,312,416 B | 9ea8f2f6e3961083116e7418ddb9be6f3ac04285d32727676b2c54f41de640d5 | Download ↓ |
dictionary.csvdata dictionary, 97 rows | 97 | — | built with this page | Download ↓ |
Columns
| Column | Type, measured | Blank | Distinct | Range / values | Meaning |
|---|---|---|---|---|---|
record_id | text | 0 | 1,130 | Stable identifier; prefixed with the source family (for example doj: plus the DOJ UUID). | |
source_family | text | 0 | 5 | doj_press_release (826), curated_source_pack (107), oig_prac_report (98), state_ag (97), local_case_summary (2) | Where the row came from: doj_press_release, oig_prac_report, state_ag, curated_source_pack, local_case_summary. |
source_url | text | 16 | 946 | The announcement or document the row was coded from. | |
source_date | text | 77 | 718 | Date of that source. | |
defendant | text | 0 | 1,128 | Defendant name as the source states it. | |
case_or_group | text | 270 | 841 | Case caption, headline, or the group the source describes. | |
district | text | 8 | 213 | Federal district or state authority. | |
program_category | text | 0 | 99 | Program defrauded: PPP, EIDL, PPP/EIDL, UI, state UI variants, or unclassified pandemic relief. | |
fraud_type | text | 380 | 210 | Fraud pattern in the source's own terms. | |
charge | text | 114 | 592 | Statutes or charge names. | |
conviction_path | text | 96 | 35 | Plea, trial, or a pending status. | |
sentence_text | text | 41 | 1,025 | The sentence as written in the source. | |
sentence_months | number | 78 | 122 | 0 – 10K · median 33 | Custodial sentence in months; blank if non-custodial or unstated. |
probation_years | number | 733 | 11 | 0 – 7 · median 0 | Probation term, years. |
supervised_release_years | number | 695 | 8 | 0 – 5 · median 3 | Supervised release term, years. |
restitution_usd | number | 237 | 811 | 0 – 242.8M · sum $2B · median $422K | Restitution ordered, dollars. |
forfeiture_usd | number | 903 | 201 | 0 – 46.4M · sum $371.8M · median $428K | Forfeiture ordered, dollars. |
amount_usd | number | 75 | 767 | 500 – 369M · sum $3.9B · median $545K | Loss, intended loss, or amount obtained, dollars. |
amount_basis | text | 50 | 384 | What amount_usd represents (obtained, sought, loss found at sentencing, …). | |
source_confidence | text | 0 | 11 | dr-fact-checked (883), court-file/source-summary (94), public-source (67), fact-checked (42), dr-medium-confidence (22), docket/article source pack (8) | |
comparison_bucket | text | 222 | 6 | PPP borrower fraud (484), identity/UI fraud (259), EIDL borrower fraud (80), other pandemic relief fraud (35), tax preparer or tax-credit fraud (33), platform or lender-side fraud (18) | Analytical grouping: PPP borrower fraud, EIDL borrower fraud, identity/UI fraud, tax preparer or tax-credit fraud, platform or lender-side fraud, other. |
source_excerpt | text | 28 | 1,056 | The passage the numbers were taken from. | |
extraction_notes | text | 0 | 615 | How the row changed across builds and what the extractor could not resolve. | |
sentence_years | number | 78 | 120 | 0 – 833.25 · median 2.75 | The same in years. |
has_numeric_sentence | boolean (True/False) | 0 | 2 | True (1,053), False (78) | |
source_fetch_issue | boolean (True/False) | 0 | 1 | False (1,130) | How the row changed across builds and what the extractor could not resolve. |
requires_pacer_followup | boolean (True/False) | 0 | 1 | False (1,130) | True when the sentence or amount could only be confirmed from the docket. |
high_confidence_for_analysis | boolean (True/False) | 0 | 2 | True (1,101), False (29) | True when the row is fit to aggregate; 1,101 rows. |
_change_notes | text | 10 | 1,043 | How the row changed across builds and what the extractor could not resolve. | |
_dedupe_key | text | 0 | 1,130 | How the row changed across builds and what the extractor could not resolve. | |
data_quality_tier | text | 0 | 8 | dr-fact-checked (883), curated (106), doj-press-release (67), fact-checked (42), dr-medium-confidence (22), pacer-verified (7) | dr-fact-checked, fact-checked, pacer-verified, curated, dr-medium-confidence, local-summary, or the bare source type. |
_change_type | text | 0 | 5 | name_fix (455), new_row (337), unchanged (275), factcheck (62), refilled_extract (1) | How the row changed across builds and what the extractor could not resolve. |
ppp_attempt_conspiracy_tracker_included | boolean (True/False) | 120 | 2 | True (550), False (460) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_is_conspiracy | boolean (True/False) | 120 | 2 | False (796), True (214) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_conspiracy_charge_type | text | 916 | 14 | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. | |
ppp_is_attempted_or_sought | boolean (True/False) | 120 | 2 | False (886), True (124) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_attempt_terms | text | 1,021 | 36 | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. | |
ppp_has_exact_attempt_charge | boolean (True/False) | 120 | 1 | False (1,010) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_attempt_charge_type | empty | 1,130 | 0 | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. | |
ppp_has_blocked_rejected_unfunded_language | boolean (True/False) | 120 | 2 | False (1,000), True (10) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_blocked_rejected_unfunded_terms | text | 1,120 | 6 | denied (5), rejected (1), declined (1), stopped (1), rejected;did not receive (1), did not receive (1) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_charged_attempt_vs_conduct | text | 1,021 | 1 | alleged_attempted_or_sought_conduct (109) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_amount_context | text | 580 | 302 | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. | |
ppp_cross_lender_pattern | boolean (True/False) | 120 | 1 | False (1,010) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_cross_platform_pattern | boolean (True/False) | 120 | 1 | False (1,010) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_same_bank_account | boolean (True/False) | 120 | 1 | False (1,010) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_same_ip | boolean (True/False) | 120 | 1 | False (1,010) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_same_ein_ssn | boolean (True/False) | 120 | 1 | False (1,010) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_same_address_phone_email | boolean (True/False) | 120 | 1 | False (1,010) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_eidl_overlap | boolean (True/False) | 120 | 2 | False (793), True (217) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_multiple_lenders_or_platforms | boolean (True/False) | 120 | 1 | False (1,010) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_central_detection_needed | boolean (True/False) | 120 | 1 | False (1,010) | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. |
ppp_source_doc_for_pattern | text | 580 | 27 | Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows. | |
legal_filing_case_slugs | text | 1,119 | 8 | staveley-butziger-rid (3), martinez-sdny-1-22-cr-00251 (2), kao-hawaii-1-21-cr-00061 (1), golden-larimore-seizure-wdmo-4-23-sw-00602 (1), glenn-mdd-1-23-cr-00027;glenn-warrant-mdd-1-23-mj-01059 (1), sanders-wdmo-4-24-cr-00029 (1) | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. |
legal_filing_case_names | text | 1,119 | 8 | United States v. Staveley / United States v. Butziger (3), United States v. Martinez (2), United States v. Kao (1), United States seizure warrant re Golden-Larimore PPP scheme (1), United States v. Glenn;United States v. Glenn (1), United States v. Sanders (1) | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. |
legal_filing_archive_status | text | 580 | 2 | no_legal_filing_archive_match (539), pdf_available (11) | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. |
legal_filing_archive_paths | text | 1,119 | 8 | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. | |
legal_filing_manifest_rows | number | 580 | 9 | 0 – 710 · median 0 | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. |
legal_filing_pdf_rows | number | 580 | 9 | 0 – 335 · median 0 | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. |
legal_filing_public_recap_pdf_rows | number | 580 | 7 | 0 – 55 · median 0 | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. |
legal_filing_existing_project_pdf_rows | number | 580 | 6 | 0 – 53 · median 0 | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. |
legal_filing_official_doj_pdf_rows | number | 580 | 2 | 0 – 1 · median 0 | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. |
legal_filing_gap_rows | number | 580 | 9 | 0 – 172 · median 0 | Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy. |
bop_lookup_status | text | 154 | 4 | matched (613), skipped_not_candidate (237), ambiguous (73), no_bop_result (53) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_match_confidence | text | 444 | 3 | high (434), medium (179), ambiguous (73) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_release_date | text | 517 | 481 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. | |
bop_release_date_type | text | 517 | 2 | actual (334), projected (279) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_register_number | text | 517 | 612 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. | |
bop_name | text | 517 | 612 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. | |
bop_age | integer | 517 | 50 | 24 – 77 · median 44 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_sex | text | 517 | 2 | Male (458), Female (155) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_race | text | 517 | 4 | Black (328), White (241), Asian (43), American Indian (1) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_location | text | 517 | 98 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. | |
bop_facility_code | text | 557 | 111 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. | |
bop_facility_type | text | 557 | 11 | RRM (289), FCI (192), FMC (36), FPC (17), USP (15), FDC (12) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_release_code | text | 796 | 1 | R (334) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_result_count | number | 391 | 38 | 0 – 138 · median 1 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_candidate_count_after_filters | number | 391 | 36 | 0 – 125 · median 1 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_lookup_query | text | 391 | 737 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. | |
bop_lookup_date | date (ISO) | 154 | 1 | 2026-06-24 – 2026-06-24 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_lookup_source_url | text | 154 | 1 | https://www.bop.gov/inmateloc/ (976) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_screenshot_path | text | 517 | 613 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. | |
bop_screenshot_status | text | 517 | 1 | captured_existing (613) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_screenshot_captured_at | empty | 1,130 | 0 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. | |
bop_screenshot_source_url | text | 517 | 1 | https://www.bop.gov/inmateloc/ (613) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_match_notes | text | 155 | 303 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. | |
source_age_at_sentence | number | 633 | 52 | 19 – 75 · median 42 | |
source_age_basis | text | 633 | 6 | name_comma_age_of (236), name_comma_age (178), name_age (66), full_text_name_comma_age_of (12), full_text_name_comma_age (4), full_text_name_age (1) | |
bop_query_variant_count | number | 391 | 6 | 1 – 6 · median 2 | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_match_strategy | text | 444 | 6 | age_confirmed_unique (431), single_exact_name_no_source_age (177), multiple_or_age_unconfirmed_candidates (64), no_temporally_plausible_candidate (9), court_register_unique (3), single_middle_confirmed_temporal (2) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_age_confirmed | boolean (True/False) | 453 | 2 | True (437), False (240) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
bop_temporal_plausible | boolean (True/False) | 453 | 1 | True (677) | Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true. |
court_text_age_at_sentence | empty | 1,130 | 0 | Age and register number found in the sentencing documents themselves, with the evidence path and snippet. | |
court_text_register_number | text | 1,127 | 3 | 91425-054 (1), 59202-509 (1), 56626-511 (1) | Age and register number found in the sentencing documents themselves, with the evidence path and snippet. |
court_text_evidence_path | text | 1,127 | 3 | Age and register number found in the sentencing documents themselves, with the evidence path and snippet. | |
court_text_evidence_basis | text | 1,127 | 1 | court_text_register_near_name;head_first_last (3) | Age and register number found in the sentencing documents themselves, with the evidence path and snippet. |
court_text_evidence_snippet | text | 1,127 | 3 | ) ) ) ) ) ) ) UNITED STATES OF AMERICA v. RAFAEL MARTINEZ THE DEFENDANT: ✔ pleaded guilty to count(s) G JUDGMENT IN A CRIMINAL CASE Case Number: 1:22-cr-00251-LJL-1 USM Number: 91425-054 Michael Schachter / Randall Jackson / Telemachus Defendant’s Attorney.DVXOLV(ONDQ$EUDPRZLW] 1 of the (S2) Superseding Information. G pleaded nolo contendere to count(s) which was accepted by the court. G was found guilty on count(s) after a p (1), § Case Number: 1:21-CR-20415-JLK(1) WILLIE CURRY § USM Number: 59202-509 § § Counsel for Defendant: Reinaldo J. Dorta (1), 007 ) ) USM Number: 56626-511 ) ) Gilbert S. Bayonne, Esq (1) | Age and register number found in the sentencing documents themselves, with the evidence path and snippet. |
PPP scheme flags (ppp_*, 21 columns)
Whether the case was charged as a conspiracy, whether loans were attempted or sought rather than obtained, blocked or unfunded language, cross-lender and cross-platform patterns, shared bank accounts, IP addresses, EIN or SSN, addresses, PPP and EIDL overlap, and whether detecting the scheme would have needed a view across lenders. Blank for non-PPP rows.
Court-filing linkage (legal_filing_*, 10 columns)
Case slugs and names of filings held in this archive's court-filings section, with their archive status and whether the PDF came from RECAP, the DOJ, or an existing project copy.
Bureau of Prisons lookup (bop_* and source_age_*, 29 columns)
Inmate-locator match: register number, name, age, facility, projected release date, how many candidates the query returned, the match strategy, and whether age and timing were confirmed. A match is a likely match, not a confirmed identity, unless bop_age_confirmed is true.
Court-text confirmation (court_text_*, 5 columns)
Age and register number found in the sentencing documents themselves, with the evidence path and snippet.
Bookkeeping (_change_notes, _dedupe_key, _change_type, source_fetch_issue, extraction_notes)
How the row changed across builds and what the extractor could not resolve.
Type, blanks, distinct count, and range are measured on the file. The same table as CSV: dictionary.csv.
How to use it
Specific to this file, measured on it: keys, joins, encodings, units, and the values that will trip a naive count.
record_idis the key (0 duplicates), prefixed by source family:doj:826,curated:107,oig:98,stateag:97,local:2. Thedoj:rows carry the DOJ uuid after the prefix and join to the press-release index. 1 rows repeat a defendant-and-district pair: co-defendants or the same person sentenced in two matters, not duplicates.sentence_months= 9999 is a sentinel for life imprisonment on 2 rows (Lawrence Turner; Ronnell Bowman, two matters). Exclude it before any average; the next-largest value in the column is 500 months.source_dateis not always a date. 949 rows are ISO dates; 104 carry a month (Oct 2024), a range (2024-2025), or pending; 77 are blank. Parse defensively.- Booleans are the strings
TrueandFalse(has_numeric_sentence,high_confidence_for_analysis, theppp_*flags);requires_pacer_followupisFalseon every row in this release. - Money columns are dollars.
amount_usdexceeds $1 billion on 0 rows (nationwide or scheme-wide figures, seeamount_basis);restitution_usdis blank on 237 rows and zero on a few, which are different facts. conviction_pathis free text in the source's own words: plea (372), sentenced (283), guilty plea (175), guilty_plea (77). Normalize before grouping.- 97 columns, CRLF line endings, UTF-8 with non-ASCII characters, no byte-order mark, no cell contains a line break; the longest cell is 1,751 characters (
source_excerpt).
Before you quote a row
- Verify a named defendant against the court record before quoting a row. Press releases and reports paraphrase judgments; the docket is the record.
- Blank sentence months are not zero. A blank means non-custodial, unstated, or pending; filter on
has_numeric_sentencebefore averaging. - State unemployment cases are coded from state entries that often omit probation and restitution; treat those fields as unknown rather than absent.
- The BOP lookup is probabilistic. Common names produce several candidates; the match columns say how the choice was made.
- Verify a named defendant against the underlying court record before quoting a row.
Pandemic-fraud sentencing outcomes, compiled from DOJ, OIG, PRAC, state, and court sources (database promoted 2026-07-10). Pandemic Darlings, https://pandemicdarlings.com/data/pandemic-fraud-sentences/, SHA-256 9ea8f2f6e3961083116e7418ddb9be6f3ac04285d32727676b2c54f41de640d5