946 parcels went into Riverside County’s April 2026 tax-deed sale (county sale no. TC-223). Our six filters kept 175. One rule — does the parcel have a street address? — did 89% of the cut. The sale closed on April 28, 2026; nobody can bid on it now, and we have nothing to sell you against it. That is exactly why it makes a good case study: we can show you what our filter pipeline did against a real list, with the real numbers, without any pressure to make the output look better than it was.
This post walks the full reduction — 946 parcels down to 175 — using the actual per-filter counts from the run, not round-number estimates. It also tells you, plainly, which parts of that work are deterministic rules and which parts we lean on a language model for, and where we deliberately keep the model out of the decision.
The honest version of “what the tool does”
There are two separate machines here, and they get conflated constantly in this space, so let me draw the line up front.
The filtering — the part that takes 946 parcels and throws most of them away — is not AI. It is six deterministic rules: string matches, threshold comparisons, and a blocklist lookup. A parcel either has SITUS ADDRESS: NONE or it doesn’t. A minimum bid is either inside the range or outside it. An owner name either appears on eight-plus parcels or it doesn’t. There is no model, no inference, no probability anywhere in the reduction. If you ran the same list through tomorrow you’d get the identical 175 parcels. That determinism is a feature — it’s auditable, and you can read all six rules in plain English on the methodology page.
Where a model earns its place is the work that used to require a human analyst sitting with the list: research and per-parcel reasoning. Confirming which county is even selling, when, and on which platform. Catching that a county quietly moved its auctions from one vendor to another between sales. Cross-referencing a parcel’s situs and owner-type against the structural-risk patterns and writing that up in plain English so you don’t have to hold six filter rules in your head. That is the part that’s tedious and easy to get wrong by hand, and it’s the part where automation genuinely buys back time.
The model does not decide whether to bid. It does not replace a title search. It does not vouch for the accuracy of the underlying county data. Keep those three lines bright and the rest of this post is easy to read honestly.
Where the reduction actually comes from
Here is the real breakdown. Each dropped parcel carries exactly one recorded reason, so these sum cleanly: 771 dropped plus 175 surviving equals the 946 we ingested.
| Filter | Parcels dropped |
|---|---|
| No situs address (paper lots) | 687 |
| Minimum bid out of range | 47 |
| Zip blacklist (low-liquidity areas) | 24 |
| Bulk-owner clusters | 13 |
| AVM-ratio filter (bid vs. automated value estimate) | 0 |
The headline most tools in this space would never print: one dumb filter — does the parcel have a street address? — did 89% of the work: 687 of 771 drops. Everything else is comparatively minor cleanup.
This matters because it’s an honest picture of what a tax sale list actually is. A Riverside list is not 946 houses you have to carefully evaluate. It is overwhelmingly paper lots — parcels platted onto county maps decades ago in failed speculative subdivisions, never given roads or water or power, and in most cases never buildable. They print with SITUS ADDRESS: NONE because there is no there there. Filtering them out is not clever. It is just the single highest-leverage mechanical move you can make, and it collapses the problem before any judgment is required.
The smaller filters clean up the residue:
- Minimum bid out of range (47): 42 parcels priced below our $10,000 floor (paper lots that slipped past the address check, or trivially small openers), and 5 above our $300,000 ceiling (properties that warrant a dedicated research project, not a shortlist row).
- Zip blacklist (24): parcels in zips we treat as structurally low-liquidity for a first-few-deals buyer — remote, thin local markets, or areas dominated by bonded special assessments that survive a tax sale.
- Bulk-owner clusters (13): parcels tied to speculator-style portfolios where a single name shows up repeatedly across the list. Two things catch these: the within-sale clustering rule (the same name on eight-plus parcels) and a curated blocklist of known speculator entities, which also catches recognizable names sitting just under that threshold. In this run we saw the pattern at modest scale — for example, a single entity appearing on six-plus parcels in a recognizable desert-lot cluster. We don’t name owners; the point is the shape, not the person.
And the one that didn’t fire at all:
- AVM-ratio filter (0): this rule drops a parcel when its minimum bid already exceeds half its estimated market value. It recorded zero drops here — not because every survivor is a bargain, but because we hadn’t enriched the surviving set with valuations at the time of the run, so the rule had nothing to compare against. A filter with no data to evaluate is a no-op by design. More on that in a moment, because it’s the most important honesty caveat in this post.
The 175 survivors: minimum bids $10,106–$195,409
175 parcels came through. Their minimum bids look like this:
- Range: $10,106 to $195,409
- Median: $25,082
- Average: $35,985
The gap between the median and the average tells you the distribution is right-skewed — a cluster of modest openers around $25K with a tail of higher-priced parcels pulling the mean up. That’s the normal shape of a residential-leaning survivor set: a lot of ordinary defaults and a handful of bigger ones.
175 is wider than what a seasoned buyer would settle on. They’d likely narrow to 30-60 after a manual second pass — street-view, county GIS, a neighborhood-comp scan. The filtering isn’t trying to replace that pass. It’s trying to make sure the 771 parcels that should never reach your eye don’t, so the judgment you do spend goes on candidates that at least clear the structural bar.
The enrichment layer — and exactly how far we got
This is where I have to be precise, because it’s the easiest place to oversell.
The enrichment layer is the step that attaches property data to a surviving parcel — last sale, square footage, year built, and an automated valuation (a Zestimate-style AVM) pulled from a third-party Zillow reseller. The AVM is a machine-learning model, but it isn’t ours; it belongs to the data provider. Enrichment is what feeds the AVM-ratio filter and what lets the reasoning layer say something useful about value rather than just structure.
We have not run full enrichment on the 175 survivors. We ran it on a sample of roughly ten parcels as a test, and only about five of the 175 currently carry a real AVM. So I cannot, and will not, present “the enriched survivors” as though all 175 have property data behind them. They don’t yet. The five that we did enrich behaved sensibly in aggregate — the valuations came back in a plausible range for their stated characteristics, with no obvious garbage — which is mild evidence the provider works for this geography, not a claim about the whole set. Completing enrichment across all 175 is the concrete next step, and until it’s done the AVM-ratio filter stays a no-op and any value-based reasoning is unavailable for most of the list. That’s the honest state of it.
I’m spelling this out because the failure mode in this niche is exactly the opposite: tools that quietly invent valuations to make a shortlist look finished. We’d rather show you a half-finished pipeline truthfully than a complete-looking one that’s partly fabricated.
What this retrospective does not establish
A worked example on a closed sale is a methodology demonstration, not a track record. It does not tell you:
- Whether any of the 175 were good buys. We never enriched most of them, never pulled title, never looked at a single one in person. Survival means “cleared the structural filters,” nothing more.
- What anything actually sold for. We’re not reporting auction outcomes here.
- That the data is correct. The county PDF is the source of truth for the list; we don’t independently verify owner names, TRA codes, or bid amounts against the assessor’s live records.
And the standing diligence checklist that lives on every parcel page applies to all 175 exactly as it would to any tax-sale candidate. Before bidding on anything, you still have to:
- Pull the parcel on the county GIS and confirm zoning, lot size, and frontage.
- Order a title chain and look for liens that survive a tax sale:
- Federal tax liens — where, if the sale divested a junior federal lien and the IRS got the required 25-day advance notice, the United States holds a post-sale right to redeem for 120 days (26 U.S.C. § 7425(d)(1)); California gives the former owner no post-sale redemption, so that 120-day federal floor is the operative window, and a federal lien recorded well before the sale with no IRS notice can survive the sale outright.
- HOA back-dues liens, by contrast, do not survive — § 3712 extinguishes them along with the mortgage, leaving the association only an excess-proceeds claim under § 4675 — though the recorded CC&Rs carry through (§ 3712(d)), so you owe dues from the sale date forward.
- California’s special-assessment districts can survive: Mello-Roos / Community Facilities District special taxes to the extent they aren’t satisfied out of the sale proceeds (Cal. Rev. & Tax. Code § 3712(h)), along with certain bonded assessments and special-assessment liens not included in the redemption amount (§ 3712(c), (f)).
- Get a current title report from a service that issues policies on tax deeds.
- Physically inspect, or at minimum review recent satellite and street-view imagery.
- Determine occupancy. The deed is yours; the eviction is still your problem.
- Check environmental records (EnviroStor, GeoTracker) for any parcel with even a hint of past commercial use.
- Confirm the minimum bid hasn’t changed at the auction platform on the morning of the sale.
The filtering gets you from “946 parcels, any of which could waste your money” to “175 that clear the structural bar, here’s the reasoning on each.” The deterministic rules do the mechanical reduction. The model does the research and the plain-English write-up. The decision stays with you — that’s the only place it belongs.
If this is the level of disclosure you want before risking five figures on a bid, this is the work we publish — free. For each upcoming California sale we run this same pipeline — with the valuation layer finished across the full surviving set — and publish the ranked shortlist, the per-parcel reasoning, and a CSV in full, before bidding opens. You can do all of this yourself; the rules are published — we just do it for you and show every step. Judge the work first: the free sample brief is this Riverside data, complete, nothing held back. If you want an email when the next county list drops, the newsletter does that and nothing else.
The Riverside TC-223 sale closed in April 2026 and is presented here as a methodology case study, not a recommendation. Nothing here is legal, tax, or investment advice. We surface signals; you make the decision. We are not licensed real estate brokers, attorneys, or financial advisors in any jurisdiction, and the legal points above — while confirmed against primary sources (the U.S. Code and the California Revenue & Taxation Code) — state general rules whose application to any specific parcel is a question for a licensed title professional or attorney.