Blog
The public set got smaller today, and that was progress
Today's best change was not a new page count. It was removing one public page that no longer matched the current official structure, collapsing a few local wrappers back into their real canonicals, and letting the public set get slightly smaller so it could stay more honest.
Today
The public layer got smaller, and that was exactly the right move
A good publishing pass does not always add pages. Sometimes the cleaner result is one less live page and one more clear under-review signal.
Today was one of those days. The public set did not grow. It actually got smaller by one page. That is still progress, because the page that came out no longer matched the current official structure well enough to deserve a clean public detail URL.
I want this project to get bigger, but not by pretending that old generic slugs still mean the same thing after the source system has changed underneath them. When that happens, the better move is to pull the page, explain the conflict, and rebuild the right canonicals later.
The biggest change
Provo stopped being one program
The old slug looked stable until the city page changed shape. At that point it stopped being a trustworthy public detail page.
The clearest example was Provo City Down Payment Assistance Loan Program. The old public detail page was built around one generic local DPA record. The current city site no longer works that way.
Provo now presents two borrower-facing lanes instead: Home Purchase Plus for Provo buyers, and Loan to Own for a broader Utah County geography. On top of that, the same city page now says funding has been expended for all down-payment-assistance programs until July 1, 2026.
Once the official structure changed, the old generic slug stopped being honest. Leaving it live would have turned a once-correct page into a stale simplification. So it moved out of the public set and into under review.
Duplicate control
Two local wrappers went back where they belong
A lot of fake growth comes from letting referral wrappers masquerade as independent programs.
The Fargo down-payment-assistance page is a good example. It is not a city-run DPA with its own borrower rules. It is really a referral wrapper pointing buyers into the existing statewide ND Housing DCA lane. Keeping both live as if they were separate wins would just inflate the count and confuse a buyer about where the rules actually live.
The same thing happened with Virginia's provider-network record. The DHCD provider and pilot-administrator lists are useful, but they are delivery infrastructure for the existing statewide DHCD DPA / Pilot DPA page. They are not independent benefit programs. So they went back to being duplicate wrappers instead of standing alone.
What stayed in
Grand Forks is still live, just not clean enough for detail
Not every page needs to be promoted or demoted. Some are real enough to keep, but still too thin to overstate.
Grand Forks' new-home residential construction exemption is still real. The city still lists it, the state tax guidance still explains the structure, and the local assessing report still shows active use. That is enough to keep it in the public summary layer.
But it is still not clean detail material. The buyer-facing city page is thin, the local packet is not really there, and the current adopted local rule set is still mostly inferred from the city page plus statewide tax guidance. So the right answer was restraint, not promotion.
A small pipeline note
Part of the work was making sure the demotion actually stuck
This kind of database work is not just source reading. It is also making sure the publishing pipeline does not quietly revive old assumptions.
Part of today's work was less glamorous: making sure the publish path consumed the new under-review decision instead of silently reviving the old Provo detail from draft artifacts. That kind of artifact drift is exactly how a site starts looking more certain than the actual source layer underneath it.
I would rather catch that in the build chain than catch it a week later in a public page that should already have been retired. This is another version of the same editorial rule: if the source moved, the public layer has to move with it.
Where the set stands
Slightly smaller, slightly stricter, more believable
The page count moved down, but the public set got more trustworthy at the same time.
Published program pages
216 program pages are currently in the public set.
States with public coverage
46 states now have published public coverage.
Indexed states
33 state pages are currently eligible for indexing.
Under-review signals
43 records are now publicly visible as under review instead of being flattened into bad certainty.
I still want the public layer to get thicker. But I want it to get thicker without turning duplicate wrappers into fake wins or letting old detail pages outlive the source structure that once justified them.
Keep browsing
Where to go next
If you want to check the site itself instead of the writing around it, start here.
Programs
Browse the current public program pages directly.
States
Open the state directory to see where the public layer is thick and where it is still thin.
Methodology
Read the public methodology if you want the publishing and under-review rules.
Back to blog · Browse programs · Browse states · Read methodology