Sexual Assaults on Campus No Longer Scrutinized as Closely Under Trump’s Education Department
Shoshana Gordon/ProPublica
The civil rights arm of the U.S. Department of Education has dramatically scaled back investigations involving schools and colleges since the second Trump administration began, even as complaints continue to pour in, a ProPublica analysis of newly obtained records found.
The analysis shows how severely the department’s Office for Civil Rights has retracted from its mission, launching an average of about 100 new investigations a month — 1,839 total from Inauguration Day in 2025 through July 2026. The OCR launched an average of 310 new investigations each month in 2024 during the Biden administration, according to data previously obtained by ProPublica.
See where the U.S. Department of Education’s Office for Civil Rights under the Trump administration has launched investigations into alleged discrimination in schools and colleges or dismissed complaints without investigating. The table also includes complaints filed with the OCR during the Trump administration that the office has not yet decided to investigate.
The OCR uses “case opened” to record when complaints were received by the agency. “Investigation start date” indicates the date the agency initiated an investigation.
/*
* WARNING: WordPress entity-encodes ampersand characters inside this
* inline script when the embed is rendered in an article, which breaks
* the JavaScript. NOTHING in this script may contain a literal
* ampersand: no AND operators (rewrite “a AND b” as nested ifs, early
* returns, or with not/or per De Morgan), no HTML entities in strings
* (use literal Unicode characters), no bitwise AND, none in comments.
* See README.md.
*/
(function () {
var PER_PAGE = 15;
var IS_LOCAL_DEV =
[“localhost”, “127.0.0.1”].indexOf(window.location.hostname) > -1;
/* Production data lives on static.propublica.org (flat, no data/
subdir), per graphics-pipeline convention; local dev is served by
the repo’s vite dev server from the repo root. */
var DATA_URL = IS_LOCAL_DEV
? “/graphics/2026/trump-ocr-activity/table/data/trump_ocr_activity.csv.gz”
: “https://static.propublica.org/projects/graphics/2026-trump-ocr-activity/trump_ocr_activity.csv.gz”;
function stateName(code) {
return STATE_NAMES[code] || code;
}
var INST_TYPES = { 1: “K-12”, 2: “Postsecondary” };
// The source CSV writes missing values as the literal string “NA”.
function missing(value) {
return value === “NA” ? “” : value;
}
// Recipient names are mostly ALL CAPS (“MCHENRY COMM H S DIST
// 156”); title-case those for display. Names that already have
// lowercase letters are someone’s deliberate casing — left alone.
var KEEP_UPPER = {
AISD: 1, BOCES: 1, CISD: 1, CUNY: 1, CUSD: 1, ESC: 1, ESD: 1,
II: 1, III: 1, ISD: 1, IU: 1, IV: 1, KIPP: 1, MSAD: 1, RSU: 1,
SAU: 1, STEM: 1, SUNY: 1, UFSD: 1, USD: 1,
};
// Vowel-less abbreviations that read as words, not initialisms.
var TITLE_ABBR = {
BD: 1, BLVD: 1, CTR: 1, JNT: 1, MT: 1, SCH: 1, SR: 1, ST: 1,
TWP: 1,
};
var SMALL_WORDS = {
a: 1, an: 1, and: 1, at: 1, for: 1, in: 1, of: 1, on: 1,
the: 1, to: 1,
};
function capitalize(word) {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}
function titleCaseWord(word, isFirst) {
var bare = word.replace(/.$/, “”);
if (KEEP_UPPER[bare]) return word;
// Initialisms with periods (“U.S.D.”) and anything with a
// digit (“1J”, “R-1”) stay as they are.
if (/^([A-Z].)+[A-Z]?.?$/.test(word)) return word;
if (/d/.test(word)) return word;
if (!TITLE_ABBR[bare]) {
if (/^[^AEIOUY]{2,5}$/.test(bare)) return word;
}
var lower = word.toLowerCase();
if (!isFirst) {
if (SMALL_WORDS[lower]) return lower;
}
if (/^MC[A-Z]{2,}/.test(word)) {
return “Mc” + capitalize(word.slice(2));
}
if (/^[OD]'[A-Z]/.test(word)) {
return word.charAt(0) + “‘” + capitalize(word.slice(2));
}
return capitalize(word);
}
function titleCaseName(name) {
if (name !== name.toUpperCase()) return name;
return name.replace(/[A-Za-z0-9.’]+/g, function (word, offset) {
// Start of the name, or of a segment after ” – ” / “(“.
var isFirst = /(^|[-:(]s*)$/.test(name.slice(0, offset));
return titleCaseWord(word, isFirst);
});
}
function normalizeResolution(value) {
return value || “Pending”;
}
function formatDate(value) {
if (!value) return “—”;
if (value === “NA”) return “—”;
var parts = value.split(“-“);
if (parts.length !== 3) return value;
return (
Number(parts[1]) + “/” + Number(parts[2]) + “/” + parts[0]
);
}
/* Sorting. Dates default to newest-first on first click; everything
else defaults to ascending. Missing dates always sort last. */
var SORT_TYPES = {
docket: “number”,
recipient: “string”,
state: “string”,
inst: “string”,
issue: “string”,
opened: “date”,
resolved: “date”,
resolution: “string”,
};
var sortKey = “opened”;
var sortDir = -1;
function isMissingDate(value) {
if (!value) return true;
return value === “NA”;
}
function tiebreak(a, b) {
return Number(a.docket) – Number(b.docket);
}
function compareRows(a, b) {
var va = a[sortKey];
var vb = b[sortKey];
var type = SORT_TYPES[sortKey];
var result;
if (type === “date”) {
var aMissing = isMissingDate(va);
var bMissing = isMissingDate(vb);
if (aMissing) {
if (bMissing) return tiebreak(a, b);
return 1;
}
if (bMissing) return -1;
result = va.localeCompare(vb);
} else if (type === “number”) {
result = Number(va) – Number(vb);
if (isNaN(result)) {
result = String(va).localeCompare(String(vb));
}
} else {
result = String(va).localeCompare(String(vb));
}
if (result === 0) return tiebreak(a, b);
return result * sortDir;
}
function sortRows() {
rows.sort(compareRows);
}
function updateSortIndicators() {
var buttons = document.querySelectorAll(
“#g-ocr-thead [data-sort]”,
);
Array.prototype.forEach.call(buttons, function (btn) {
var th = btn.parentNode;
var ind = btn.querySelector(“.ocr-sort-ind”);
if (btn.getAttribute(“data-sort”) === sortKey) {
/* No-break space keeps the arrow glued to the label’s
last word so it never wraps to its own line. */
ind.textContent =
sortDir === 1 ? “u00a0↑” : “u00a0↓”;
th.setAttribute(
“aria-sort”,
sortDir === 1 ? “ascending” : “descending”,
);
} else {
ind.textContent = “”;
th.removeAttribute(“aria-sort”);
}
});
}
function getFiltered() {
var state = els.state.value;
var inst = els.inst.value;
var issue = els.issue.value;
var resolution = els.resolution.value;
return rows.filter(function (r) {
if (state !== “”) {
if (r.state !== state) return false;
}
if (inst !== “”) {
if (r.inst !== inst) return false;
}
if (issue !== “”) {
if (r.issue !== issue) return false;
}
if (resolution !== “”) {
if (r.resolution !== resolution) return false;
}
if (query !== “”) {
if (r.haystack.indexOf(query) === -1) return false;
}
return true;
});
}
/* Windowed page list: first, last, current plus/minus 2, nulls as
ellipses. */
function pageList(current, total) {
var all = [];
var i;
if (total <= 7) {
for (i = 1; i <= total; i++) all.push(i);
return all;
}
var pages = [1, total];
for (var p = current – 2; p <= current + 2; p++) {
if (p total) continue;
if (pages.indexOf(p) !== -1) continue;
pages.push(p);
}
pages.sort(function (a, b) {
return a – b;
});
var out = [];
for (var j = 0; j 0) {
if (pages[j] – pages[j – 1] > 1) out.push(null);
}
out.push(pages[j]);
}
return out;
}
fetch(DATA_URL)
.then(function (res) {
if (!res.ok) throw new Error("HTTP " + res.status);
return res.arrayBuffer();
})
.then(function (buf) {
var bytes = new Uint8Array(buf);
/* If the CDN already decoded the gzip (Content-Encoding),
the magic bytes will not match and the body is plain
text. */
var isGzip = false;
if (bytes[0] === 0x1f) {
if (bytes[1] === 0x8b) isGzip = true;
}
if (isGzip) {
return new Response(
new Blob([buf])
.stream()
.pipeThrough(new DecompressionStream("gzip")),
).text();
}
return new TextDecoder().decode(buf);
})
.then(function (text) {
rows = d3
.csvParse(text)
.map(function (d) {
var row = {
docket: d["docket_no"],
recipient: titleCaseName(d["recipient"]),
state: missing(d["recipient_state"]) || "XX",
inst: INST_TYPES[d["institution_type"]] || "Unknown",
issue:
missing(d["issue_description"]) ||
"Not specified",
issueCode: missing(d["issue_code"]),
opened: missing(d["case_open"]),
investigationStartDate: missing(d["investigation_start_date"]),
resolved: missing(d["resolved"]),
resolution: normalizeResolution(
missing(d["resolution_type"]),
),
};
row.haystack = [
row.docket,
row.recipient,
row.state,
stateName(row.state),
row.issue,
row.issueCode,
row.investigationStartDate,
row.resolution,
row.inst,
]
.join(" ")
.toLowerCase();
return row;
});
sortRows();
init();
})
.catch(function (err) {
els.status.textContent =
"Sorry, the data could not be loaded. (" +
err.message +
")";
});
})();Source: U.S. Department of Education Office for Civil Rights, as of July 2026. Note: The data includes complaints closed and investigations opened from Jan. 20, 2025, through July 2026, as well as open complaints received from Jan. 20, 2025, through May 26, 2026. This data was derived from two files covering complaints received by the OCR and investigation notices it sent to institutions. If a case was present in both, the table displays the case information from the complaint file. Some cases do not stem from a complaint but are initiated by the agency. In those cases, “case open” indicates when the case was launched internally. For more on our methodology, see here.
ken schwencke/propublica
The decline in investigations is especially dramatic for cases involving sex discrimination. More than 200 new complaints were filed with the office related to schools’ handling of sexual violence — rape, assault and abuse. But the Trump administration launched investigations in only 29 of them, finding fault with a school district only once, according to the newly obtained data. It’s typical for there to be at least 60 sexual violence investigations opened each year.
The department addressed fewer of these cases despite continued concerns about the persistence of the problem — as demonstrated by the intense public scrutiny over how Cornell University addressed a student’s report of a 2024 gang rape.
Beyond that, the OCR launched only two investigations into discrimination based on sexual orientation.
“They’re barely doing anything to protect women and girls, including survivors of sexual violence,” said Shiwali Patel, an attorney who previously worked at the OCR and is now with the National Women’s Law Center. “They just don’t care about women and girls.”
The organization and more than 120 other advocacy, civil rights and education groups sent a letter on Tuesday to Congress’ ranking education committee leaders urging them to hold the OCR accountable for “its failure to enforce civil rights law and protect students from sexual violence.”
With OCR’s online database idle since Trump took office, the only way to know where the agency has launched investigations has been through selective department press releases, when OCR employees provided internal data to reporters or from schools and colleges that acknowledged that their institutions had become targets of the investigations.
The data ProPublica received as a result of our lawsuit can now fill that gap on the more than 1,800 civil rights investigations that the department initiated from Jan. 20, 2025, to July 29 of this year. The database also reflects the 24,000 new complaints logged through May and the nearly 17,000 new and old cases the department closed — almost always by dismissing them.
The agency is dismissing complaints more frequently than in prior years, the records show. And fewer than 700 cases opened by the administration were resolved with a finding of wrongdoing.
The data does not include investigations that had been opened before Trump retook power but that are pending decisions by OCR — a backlog of more than 10,000 cases.
In response to questions from ProPublica, an Education Department spokesperson blamed the Biden administration for leaving office with 19,000 unresolved cases, which the Trump administration has worked to address.
“Spare us the crocodile tears as the Trump Administration is working to restore OCR to its original purpose: enforcing the law to ensure all students can receive an education free from discrimination,” spokesperson Sabin Sidney wrote.
He added that the administration “treats any form of discrimination on the basis of race or sex as illegal.” And he criticized the prior administration for endorsing policies that allowed transgender girls and women to compete in women’s athletics and use women’s restrooms.
The data disclosure comes as the administration is moving forward with efforts to shut down the department and move the OCR under the Department of Justice. Disability rights advocates and others have been critical of the move, while the administration says it will lead to more efficiency and do a better job protecting students’ rights. The majority of cases before the OCR involve students with disabilities, as has been the case historically.
In the early months of Trump’s second term, Education Secretary Linda McMahon fired hundreds of employees and closed seven regional OCR offices, leaving the department severely diminished. Its remaining civil rights workers have described untenable case loads and pressure to dismiss complaints.
The remaining attorneys “are navigating pure chaos,” said Rachel Gittleman, president of the American Federation of Government Employees Local 252, the union that represents OCR staff. “They are being asked to use the tools they have used for their entire careers not for good, not to protect students, but to harm students. You see it in the case dismissals, the cases that target trans students or people of color.”
In examining the new records, ProPublica found the extent to which the agency has shifted its focus, as the OCR places a new emphasis on complaints that men faced discrimination. The agency launched 172 investigations into alleged “discrimination against males,” compared with 104 cases of alleged “discrimination against females” in the period examined.
It also has investigated allegations that campus programs or scholarships excluded men. For example, it investigated a complaint against Skyline College in California that had been filed in 2023 but that President Joe Biden’s administration had not acted on, according to records from the university. The complaint alleged that Skyline discriminated against men by listing scholarships on its website that are exclusively for women and for promoting a program for women.
The civil rights office opened the investigation in mid-April, and two weeks later the community college agreed that it would remove the scholarships from its website and add language that the program was open to all students. A Skyline College spokesperson did not respond to questions from ProPublica.
At the same time, the agency chose to open fewer than 370 new investigations involving racial discrimination, even though about 5,000 complaints were filed.
Of those new investigations, about 11% involved allegations of discrimination against white students. Over the summer, the department announced investigations into five medical schools’ admissions policies.
“They are not allocating their resources to racial discrimination complaints, to sexual assault complaints, to the types of complaints that really often speak to systematic discrimination and problems,” said Johnathan Smith, managing director of education at the nonprofit National Center for Youth Law.
That organization also has sued the Education Department for similar information obtained by ProPublica; the lawsuit is pending.
Have you recently filed a civil rights complaint or do you have a pending case? We need your help to get a full picture of how the dismantling of the Office for Civil Rights is affecting students, parents, school employees and their communities.