← Back to the dashboard

Methodology

This page exists because the credibility rule in the plan is load-bearing: nobody licenses data from an advocacy site. Every figure the dashboard shows should be traceable from here to a primary source document.

Last reviewed: 2026-08-21.


Scope

All Michigan electric providers, not only DTE.

That distinction turns out to matter more than it looks, because Michigan's providers do not all answer to the same rate-setting body.

Provider type Count Who sets retail rates Docket data available?
Investor-owned 8 Michigan Public Service Commission Yes — MPSC E-Dockets
Cooperative 11 The co-op's own member-elected board No
Municipal 40 City council / board of public works No

59 providers in total: 19 from the MPSC roster, plus 40 municipals discovered in the EIA-861 service territory file (see Address resolution below). The investor-owned count includes DTE Gas, seeded for docket attribution and excluded from electric views.

Why co-op and municipal customers see a different page

Under the Electric Cooperative Member-Regulation Act, 2008 PA 167, Michigan's electric cooperatives are member-regulated. The MPSC does not set their retail rates. It retains jurisdiction only over safety, interconnection, code of conduct, and customer choice. Municipal utilities are likewise outside MPSC rate regulation, apart from renewable energy plan filings under 2008 PA 295.

So for roughly a fifth of Michigan's customers and a much larger share of its land area, there is no rate case to show. A dashboard that implies otherwise would be lying to those users.

For those customers the page shows what is actually true and actionable: their rate trend from federal data, the body that really sets their rates, and when that body meets. A co-op board election is a more direct lever than an MPSC comment docket ever is — it is just a different story.

Source for the provider roster: MPSC, Electric Utility Addresses & Contacts, retrieved 2026-08-15.


Data sources

1. EIA API v2 — state and national benchmarks

Route electricity/retail-sales/data/, drawn from Forms EIA-826, EIA-861 and EIA-861M. Faceted by state and sector. Loaded into geo_rate_history for Michigan, Ohio, Indiana, and the national aggregate.

Known limitation, stated plainly: the v2 API facets are state-level. Utility-level price and customer counts are not available through them. Anyone who tells you they pulled per-utility rates from the v2 facets has pulled something else. Utility-level data comes from source 2.

Unit handling: EIA reports revenue in million dollars and sales in million kWh; both are scaled to thousand dollars and MWh on ingest. The client asserts the units field on every first page of results and refuses to ingest if EIA changes them, rather than quietly rescaling a chart.

2. EIA-861 / 861M bulk files — utility-level

Annual bulk archive (f8612024.zip, current as of this writing) and the monthly sales_revenue.xlsx. These carry per-utility revenue, sales, and customer counts, plus the Service Territory file used for county coverage. Loaded into utility_rate_history and utility_counties.

This is also where municipal utilities enter the system, since the MPSC roster does not enumerate them.

Lag: the annual file trails the current year by roughly a year. Where a figure is more than 12 months old the UI must say so.

The per-utility price on /compare and each provider page

Every price we publish for a named utility is computed, never quoted:

cents/kWh        = residential revenue (thousand $) x 100 / residential sales (MWh)
avg monthly bill = residential revenue (thousand $) x 1000 / (customers x 12)

Three properties of the source file shape what we can honestly say.

Utilities file in Parts. EIA splits one utility's book across bundled, delivery-only and energy-only rows. All Parts for a utility are summed. Reading a single row would understate any utility serving customers under more than one arrangement.

Customers is an annual average, not a monthly sum. Unlike the state series in geo_rate_history, which is monthly and where revenue ÷ customers is already per customer-month, the annual file needs the explicit ÷ 12. Getting this wrong inflates every bill on the site by an order of magnitude.

Half of Michigan's utilities do not report residential separately. From data year 2020, utilities below EIA's reporting threshold moved to the short form, which reports total revenue, sales and customers across all customer classes. That is 27 of Michigan's 57 retail providers — nearly every municipal and three cooperatives. Two options existed and both are bad: exclude them, and a "statewide" comparison silently omits half the state; include them unmarked, and they appear cheaper than they are, because commercial and industrial power costs less per kWh than residential.

We include them and mark them. Short-form rows are stored with source = 'eia_861s' and sector = 'all', render with an all customers label, and show no monthly bill at all — total revenue cannot be divided into households. A change over time is only ever computed between two figures of the same sector, so a utility that moved onto the short form in 2020 never appears to have cut its rates by switching forms.

Turning an approved percentage into dollars

Orders state percentages; readers experience dollars. Where an order states an approved residential increase, the site shows one multiplication:

$/month = (utility's avg residential monthly bill) x (approved residential % / 100)

The percentage is quoted from the order with its page; the bill is computed from that same utility's EIA-861 filing, not from a statewide average. The result is labelled computed here, not stated in the order wherever it appears, because no order contains that number. It is an average across that utility's residential class — a household using more than average sees more.

Cross-check on U-21860: the order approves $242.4M total with $124.7M from residential schedules. Spread over DTE's 2,067,779 residential customers that is $5.026/month, and 4.1% of DTE's computed $122.74 average bill is $5.032. Two independent routes agreeing to the cent is the reason this calculation is published at all.

3. MPSC E-Dockets via the LARA document service

Documents are served from adms.apps.lara.state.mi.us/Mpsc/ under sequential integer IDs. Verified behaviour as of 2026-08-15:

Order PDFs open with a regular caption block naming the applicant, the case number, and the meeting date. Those fields are parsed with regexes and validated against a confidence score — no language model is involved in extracting them, because a regex that fails is obvious and a model that hallucinates a case number is not.

The language model pass is confined to what regex genuinely cannot do: revenue figures, ROE, residential percentage impact, and the plain-English summary.

The MPSC docket also covers telecommunications and water. Non-energy dockets are filtered out before the extraction pass.

Backfill as loaded (2026-08-15): document IDs 26,700–27,516, covering orders from 2023-12-21 to 2026-08-06. Of 815 documents fetched, 582 were energy dockets and 233 were filtered out as telecom or other non-energy. Those produced 379 cases, 283 of them attributed to a specific provider (75%), and 541 of 582 documents linked to their case (93%).

The unattributed remainder is mostly Commission-own-motion dockets, which have no applicant by design, plus applicants who are not regulated providers — solar developers seeking siting certificates, for instance. That is a category the data-center layer will want later, not a parsing failure.

Case counts by provider in the loaded window: Consumers Energy 84, DTE Electric 70, NSP-Wisconsin 28, I&M 26, UMERC 22, UPPCO 19, DTE Gas 18, Alpena Power 13, Cherryland 2, Presque Isle 1.

A nuance those last two illustrate. Cooperatives do appear in MPSC dockets even though the Commission does not set their rates — PA 167 leaves the MPSC jurisdiction over safety, interconnection, code of conduct, service territory, and customer choice. So "this co-op has MPSC cases" and "this co-op's rates are set by its members" are both true. The interface must not let the presence of a docket imply a rate proceeding.

Orders describe the past; notices describe what is coming

The two document routes cover different things, and the difference is the whole "what's pending" section.

ViewCommissionOrderDocument holds decided matters. A case still awaiting a decision has no order, so an orders-only crawl is structurally blind to it. Two of the most consequential Michigan cases are exactly that shape — DTE's April 2026 filing in U-22046 and the Large Load Provision in U-22061 — and neither appears anywhere in the order corpus.

ViewNoticeDocument is the smaller space (1,509 documents as of 2026-08-15) and carries notices of hearing: prehearing conference dates, comment opportunities, and the case numbers they apply to. That is where a deadline a reader could still act on lives. A single notice frequently covers several cases at once, so the link between notice and case is many-to-many rather than one-to-one.

Sourcing the pending-case view from orders would have produced a page that silently showed only history while presenting itself as current — the failure mode this whole methodology exists to prevent.

Now extracted: hearing dates and comment deadlines are parsed from notices into case_events, each carrying the verbatim sentence that states it. Only dates a member of the public can personally act on — attend a hearing, file a comment — are surfaced; the many procedural deadlines binding the utility or the formal parties are stored but not shown, because listing a proof-of-service deadline beside a hearing buries the one that matters.

Whether a date is upcoming is computed when the page renders, never stored: which side of today it falls on changes daily. As of writing, exactly one of 1,472 extracted dates is still actionable, which is a property of the corpus rather than the parser — notices are issued when cases open, so anything ahead of today comes from the newest and thinnest slice. The nightly crawl is what keeps that section alive.

What "open" means, and how a case stops being open

A notice of hearing proves a case was open on the day it issued. It proves nothing about today. The notice extraction originally wrote status = 'open' on every notice it read, so a 2015 rate case still read as open — and a reader was invited to comment on a docket that closed a decade ago.

Two sources now decide the status, in priority order.

An order outranks a notice. An order is the Commission stating an outcome, so whatever disposition the extraction reads off one is authoritative and a notice can no longer overwrite it. This is also why some cases are correctly open despite having orders in them: the reliability workgroup (U-21400) and the July 2026 storm investigation (U-22156) have issued orders that do not conclude the proceeding, and the extraction records exactly that.

Where no order exists, the statute decides. MCL 460.6a gives the Commission ten months from filing to decide a rate case. A proceeding whose last scheduled date is more than a year behind us has therefore concluded, whether or not its closing order is in our corpus — the order backfill is bounded by document ID, so plenty of older orders are simply not here.

Those cases are recorded as unknown, not decided. The distinction is the point: the statute establishes that the case is no longer open, but nobody here read how it ended, and writing decided would assert a disposition that was never checked against a document. Cases with no extracted dates at all are left alone rather than guessed at in either direction.

Migration 0012_close_stale_open_cases.sql applied this to the 239 rows written under the old rule. 37 cases remain open: 22 with scheduled dates inside the last year, and 15 whose open status was read from an order.

The render layer keeps the same recency rule as a backstop, for a case whose dates age out between extractions.

6. Who sets a municipal utility's rates

A municipal or cooperative customer has no docket to read. Their entire "what you can do" path is one sentence naming a board and when it meets — which makes that sentence the highest-stakes claim on their page. Send someone to the wrong meeting and they do not try again.

So it carries a citation like everything else, and the bar is what a source states rather than what a name implies. "Grand Haven Board of Light & Power" establishes that a board exists. It does not establish that the board sets retail rates rather than recommending them to the city council — Michigan municipals split both ways, depending on the charter.

The roster comes from the American Public Power Association's Michigan directory, the only list that names all 40; the MPSC does not enumerate municipals, because it does not regulate them. Thirteen of APPA's URLs were dead or absent, and most of those cities had simply moved — nine to a new domain, several to .gov. Probing candidate domains recovered them, bringing the count to 38 of 40; only Wakefield and Daggett have no site we can find.

Bay City is the instructive one. baycitymi.org has no A record at its own authoritative nameservers — the apex still carries MX and TXT records, so the city's email works while its website is simply gone — and the city now lives at baycitymi.gov. A dead link in a directory usually means a move, not a shutdown.

Every recovered domain is then confirmed to be the city, which is not the same check as whether it loads: petoskey.org answers 200 and is a parked GoDaddy for-sale page, and croswell.org is an opera house. A status code proves a server answered, not that it is the utility.

Governing bodies are confirmed one at a time against the utility's own site. 20 of 40 are done, covering 246,747 of 285,313 municipal customers (86%) — the largest utilities first, because that is where the readers are.

Eight of the twenty turn out to be the city council, not a utility board, which is the whole reason the name is not trusted. Three cities have a board with an electric name that does not set rates. Niles's Board of Public Utilities is advisory, and the utility's own electric page states "All rate tariffs are approved by our City Council." Portland has a Board of Light & Power, but the city says "The City Council sets utility rate increases, typically with the Budget Resolution each year."

Hart is the subtlest, and turns on a verb rather than a noun. Its Board of Power and Light's "advice and recommendations shall include … the establishment of electrical rates" — the board advises on rate-setting, it does not do it. That entry is worded as advice, not authority, because the source says advice.

Several sources state rate authority outright rather than merely naming a board:

Zeeland: "rates are not set or regulated by the Michigan Public Service Commission … but are established by the governing body, the Board of Commissioners."

Traverse City: the board "shall have exclusive jurisdiction, control, and management of the Traverse City Light & Power Department."

Meeting times are recorded only as stated. Where a source lists individual dates rather than a rule, the rule is not back-derived from them: Coldwater's 2025 dates are mostly first Wednesdays but not all, and publishing "first Wednesday" would be wrong roughly once a year.

Where a body is named on the utility's own pages it is quick to confirm. Where it is not, it is often nowhere: small municipalities publish rates and meeting agendas but rarely state who adopts them. Two of the fifteen were only settled by reading the instrument itself — Marshall's Ordinance 2024-03 ("Monthly service rates for electric account groups shall be established by resolution") and Sturgis's terms and conditions, which name the City Commission on the cover page. Harbor Springs is stated only in a city newsletter. Municode, the obvious fallback for a charter or code, returns 403 to automated requests, so the code route is closed without a human browser.

The other 20 keep the generic copy and say plainly that we have not confirmed their board yet. That is the intended behaviour, not a gap to paper over. They are the smallest utilities on the list — every one serves under 6,000 customers — so each is a manual search rather than something the crawler can pick up.

The limit is not access, it is publication. Of nine cities whose sites were recovered and then searched properly, six — Croswell, Eaton Rapids, L'Anse, Newberry, Sebewaing and St Louis — publish rate sheets, fee schedules, council minutes and meeting calendars while never stating who adopts the electric rates. Their pages load fine. The fact simply is not written down anywhere we can cite, and the remaining honest routes are a city charter or a phone call to the clerk.

4. LegiScan — legislation

Free tier, Michigan bills.

5. Census ZCTA-to-county relationship file

Used to turn a ZIP code into a county, then into a shortlist of providers.


Address resolution

ZIP → counties → providers, joining two federal sources on county:

No geocoding, so the lookup costs nothing per query and depends on no third party at request time.

This is also where the municipal utilities enter the system. The MPSC roster does not list them — the Commission does not regulate their rates, so it has no reason to — but EIA records every retail provider. Loading the territory file added 40 municipals, taking the roster from 19 providers to 59.

It returns a shortlist, and says so

County resolution deliberately over-includes. A county routinely holds several providers: Wayne County has both DTE Electric and Wyandotte's municipal system; Marquette County has five. Only one is on any given bill.

So the interface offers candidates and asks which is yours. It never asserts. A confidently wrong provider would attach every figure on the page — the approved increase, the ROE, the next hearing date — to a utility the reader does not buy power from, and there is no error message for that. It simply reads as authoritative and wrong.

Ordering is by the ZIP's land-area share of each county, then by whether the provider is MPSC-regulated, so the likeliest candidate leads.

Known limits

How figures are recorded

Every numeric field on a rate case carries a provenance entry naming the source document, the page, and the quoted text it came from.

A number without provenance is not rendered as fact. Rate cases also carry verified_by_human, and the interface distinguishes the two states rather than applying one blanket disclaimer: cases a person has checked against the order PDF show a checked marker, and everything else is labelled machine-read and unreviewed.

As of 2026-08-16 the three headline figures are verified — U-21860 ($242,406,000 approved, page 375), U-21534 ($217.4M approved), and U-22046 ($474.3M requested). The remaining 519 extracted cases are unreviewed and say so. Marking everything verified because three were checked would be the exact failure this column exists to prevent.

A worked example of why this matters — resolved

Two figures circulated for what the February 2026 DTE order approved: $242.4M (the working plan for this project) and $242.2M (Michigan Advance).

Rather than pick one, the extraction pass read it off the order. Case U-21860, page 375:

Revenue Deficiency – Total $242,406,000

So the approved figure is $242,406,000 — $242.4M. The same order, page 490, puts the residential share at $124,713,000, a 4.1% residential increase.

Two things about how that answer was reached are worth recording, because both are the machinery working rather than incidental detail.

The model refused to guess. On the first attempt it returned null for the approved amount and said the documents did not contain it — declining to supply the widely-reported figure from its own knowledge. It was right: the crawler stores only the first few pages of each PDF, which is correct for regex caption parsing but meant the approved figure, on page 375 of a 596-page order, was never in the text. A model willing to fill that gap from memory would have produced a plausible number and hidden the bug.

The fix was to find the page, not to loosen the rule. Orders are now scanned for the pages carrying financial terms, and those pages are cached back to the document (see migration 0006). The figure that ships is the one with a page citation behind it.


Rates vs. bills: the number that can be spun either way

This is the most important framing decision on the site, so it is written down rather than left to whoever builds the chart.

Michigan's average residential bill is below the national average. Michigan's average residential rate is above it. Both are true simultaneously.

Calendar year 2024, computed from geo_rate_history as revenue ÷ customers:

Avg monthly bill Avg monthly usage
United States $142.26 863 kWh
Ohio $135.16 846 kWh
Indiana $133.06 901 kWh
Michigan $119.31 618 kWh

And yet, residential price per kWh (May of each year):

2015 2020 2024 2026
Michigan 14.18¢ 16.20¢ 19.56¢ 22.01¢
National 12.93¢ 13.10¢ 16.40¢ 18.44¢

Michigan has been above the national rate in every one of those years, and the gap in May 2026 is 3.57¢/kWh — roughly 19% higher.

The reconciliation is usage. Michigan households consume 618 kWh/month against a national 863 — about 28% less, largely because most Michigan homes heat with natural gas and air-conditioning load is comparatively low. Lower consumption at a higher unit price nets out to a lower monthly bill.

Reporting either figure alone is spin:

Both ship, with the usage explanation attached. This is exactly the kind of place where the neutrality commitment either holds or quietly fails.

Note: the working plan cited a national bill of $142.16 against the $142.26 computed here from the current API. EIA revises these series, which is a reason to compute from ingested data with a retrieval date rather than to hardcode a figure read once from a press release.

Do not sum across case types

Extraction produces a requested_revenue_usd for many kinds of proceeding, and adding them up produces a large, confident, wrong number.

Summing every DTE Electric case carrying a requested figure gives $2.25 billion. That total is meaningless: it mixes general rate cases with power supply cost recovery reconciliations, securitization surcharges, tariff matters, and refunds — two cases in the corpus legitimately carry negative or refund amounts, which is why a naive "approved exceeds requested" check flags them.

The defensible claim uses general rate cases only:

Case Order date Requested Approved
U-21534 2025-04-10 $456.4M $217.4M
U-21860 2026-07-16 $574.1M $242.4M
Total 15 months $1,030.5M $459.8M

So "over $1 billion in rate increase requests" holds — and the same two rows carry its counterweight: the Commission approved about 45% of what was asked. Both belong on the page together.

Any aggregate this site publishes must state the case types it includes. A total that silently spans proceeding types is the single easiest way to hand a critic a fair complaint.

Data centers and large loads

/data-centers tracks the largest new electricity customers Michigan's grid has been asked to serve. It is the only dataset on this site that is not machine ingested, and that difference drives everything below.

Why it is a file in the repository, not a table

Every other dataset here comes from a bulk file or a docket, and the job that reads it can be re-run to prove the number. This one is assembled by hand from township minutes, developer press releases, Commission orders and local reporting. A hand-assembled fact belongs where a human can review the diff, so the projects live in src/lib/large-loads.ts with each citation beside the value it supports and git blame recording who asserted what, and when.

large_loads exists in the schema and is still the right home once there is a machine source to fill it. The file's shape is loadable into that table without a migration.

The inclusion rule

A project is tracked if it meets any of:

  1. Disclosed or contracted electrical demand of 100 MW or more;
  2. Coverage by an MPSC special contract or large-load tariff case, at any size;
  3. A hyperscale-scale application on file with a Michigan municipality — a rezoning, special land use or site plan — with no MW figure disclosed.

The 100 MW threshold is not an editorial choice. It is the eligibility line in both approved Michigan large-load frameworks: Consumers' amended General Service Primary Demand tariff (U-21859) and DTE's proposed Rate D11 terms (U-22061). The list therefore tracks the loads the regulator itself has decided need their own rules.

Excluded: commercial colocation and enterprise facilities below the threshold (Michigan has roughly forty to fifty, and they would swamp the question); sites named only in anonymous posts or in a developer's regional pipeline with no Michigan municipality attached; and third-party water and emissions estimates, which appear only where the developer or the municipality put a figure on the record.

Why the count disagrees with every other tracker

It should. Cleanview's large-project dataset lists two operating Michigan facilities; commercial directories list forty-odd; one advocacy map counts thirty-four projects and another newsroom counts thirty-plus. None of these is wrong — they count campuses versus buildings, hyperscale versus colocation, projects with disclosed capacity versus projects without. The failure is not disagreement, it is disagreeing silently. The rule above is published on the page for exactly that reason.

Status, and why there are eight of them

"Proposed" does far too much work in coverage of this subject. A signed development agreement is not a permit; a conditional rezoning is not a groundbreaking. Each of the eight statuses is tied to something checkable in a public record — see STATUS_MEANING in src/lib/large-loads.ts, which is the same text the page renders.

Withdrawn and rejected projects stay in the table and their megawatts are excluded from every live total. Summing a cancelled 760 MW proposal into a statewide demand figure is the most common error in this subject, and it always runs in the alarming direction.

Megawatts carry their basis

Three kinds of figure, never merged:

Basis Meaning
contracted Contracted demand in an approved MPSC special contract
announced Capacity stated by the developer or the host municipality
reported_estimate A third party's estimate, not confirmed by the developer

A project with no capacity figure on the record is listed with its megawatts absent, not estimated.

Where sources disagree, both numbers are printed

Reported capacity for the Saline Township project appears as 1.4 GW, 1,383 MW and 1,000 MW depending on where you read it; the Southfield building is 100 MW in one tracker and about 30 MW in another. The project page prints the disagreement rather than resolving it by preference. Picking a favourite number and printing it alone is how a tracker becomes an opinion.

The one derived number: share of residential load

Each project page may show the project's demand against the load its utility already serves. It is computed as:

project GWh/yr  =  MW x 8,760 hours x 0.85 assumed capacity factor
denominator     =  that utility's EIA-861 residential sales, latest year

Three things about it, stated on the page every time it appears:

What this section will never say

That a data center raised, or will raise, anybody's bill.

Rates move for generation costs, storm recovery, tree trimming and approved return on equity all at once. Michigan's approved large-load terms — minimum billing demand at 80% of contracted capacity, 15- to 19-year terms, exit fees covering the remaining months including infrastructure, collateral posted up front, and an ex parte cost-shift showing before service begins — are written specifically to keep these costs off other customers. Whether they succeed is being contested before the Commission right now; the Attorney General has moved to reopen the DTE approval.

So the project pages show the residential rate before, the rate now, the terms regulators approved, the fact that they are contested, and the documents. The reader carries the argument. That is the difference between a tracker a newsroom can embed and one it cannot.

Verification state

Projects carry verified, mirroring verified_by_human on rate cases, and lastVerified. As of 2026-08-21 all 16 have been checked by a person against the sources cited on each project page. Stargate Saline Township and Hyperscale Dowagiac were re-checked in full on 2026-09-01, after the nightly watcher flagged their cited sources as changed; the changes turned out to be page furniture — a rotating press-release sidebar on michigan.gov and a weather widget on WWMT — and no published figure moved.

Be precise about what that flag claims. It says every field was confirmed against the citations shown — not that a primary document exists for every field. For several projects none does, and that is disclosed twice over: each source carries a primary marker, and disputed names the figures no authoritative party has stated. Switch's 320 MW buildout, Metrobloks Southfield's capacity, and the serving utility for the Dowagiac, Lowell Township and Howell Township sites are all in that category, and their pages say so. Requiring a primary source before the flag could be set would make it unusable for most of the table, and a flag nobody can ever set tells a reader nothing.


Editorial posture


Freshness and failure

ingest_runs records every job execution, successful or failed, and is publicly readable. The dashboard surfaces last-successful-run per source.

The realistic failure mode for this project is not a dramatic outage; it is scraper rot — a state portal changes and ingest silently stops producing rows while the site keeps serving stale numbers as though they were current. The canary: if no new MPSC documents appear for 10 days, that is an alert, not a quiet Tuesday.

Open questions

Tracked honestly rather than resolved by assumption:

  1. Thumb Electric Cooperative and Bayfield Electric Cooperative are the only co-ops on the MPSC roster without the "rates are member-regulated" annotation carried by every other co-op. They are seeded as member_board with an explicit UNVERIFIED note. Confirm before the UI asserts either way. Bayfield is Wisconsin-headquartered and may be regulated by the Wisconsin PSC for most purposes.
  2. The municipal utility roster still needs to be loaded from EIA-861 and spot-checked against the Michigan Municipal Electric Association membership.
  3. Whether ViewNoticeDocument IDs share a numbering space with orders, and whether other document routes exist on the same host.
  4. Three serving utilities are still unconfirmed — the Dowagiac, Lowell Township and Howell Township sites. Left null rather than inferred from geography: Dowagiac sits inside a municipal electric city, and 340 MW is not a municipal system's to serve. The verification pass closed on 2026-08-21 without resolving them, because no public record names the utility. See docs/large-load-verification.md, which remains the checklist for re-checking the table as projects move.