Bid ceilings from parcel data, not sale bills.
Most acquisition tools read CSR2 and tillable acres off the seller's auction listing. LMM computes them from the parcel — soils, crop acres, and PLSS. LandHero is a qualified Iowa comps API: swap it in for what you scrape today, or sit it next to the private comps database you already trust.
Why this is hard
The sale bill is not a data source. CSR2, tillable acres, and crop acres published in an auction listing were produced by someone with an incentive. Every number downstream — $/CSR2, comp match, bid ceiling — inherits that. And when a listing carries no CSR2 at all, the parcel silently never enters your pipeline.
Tillable acres is where the money is, and nobody hands it to you. On a 146-acre farm, tillable land is ~95% of total value. "FSA/eff. crop acres" from a listing isn't auditable and isn't consistent seller to seller. Deriving it honestly means polygonizing the same CDL crop history you can see, inside the parcel.
Parcels aren't a dataset — they're 99 county assessors. In Iowa alone: 99 schemas, 99 refresh cadences, 99 definitions of "owner," no common key. Normalizing that once is a project. Keeping it current is a standing team. Multiply by 3,000+ counties the moment you buy outside your home state.
A scraped comp price tells you almost nothing. Arm's-length or family transfer? Buildings included? Contract sale? Partial interest? Gross or net of commission? Two farms at the same CSR2 can trade 50% apart for reasons the scrape never captures.
Scrapers rot. Parcels drift. SSURGO reissues. Maintenance cost scales with the number of sources and never goes down. A data layer with no owning team degrades silently — which is worse than failing loudly, because you keep bidding off it.
What LMM + LandHero change
You keep your UI, your pipeline, your reports — and your private comps, if you have them. LMM replaces listing-derived soils and acres. LandHero replaces scrapes, or runs as another comps source beside the sales you already store.
Interactive demo
Select an upcoming land sale
Selected property enrichment
Poweshiek County, IA
Total acres
146.27
Crop acres
128.7
CSR2
87.6
S-T-R
20-80N-16W
Township
Washington Township
County / state
Poweshiek County, IA
Bid ceiling
Walk away — comps indicate $15,000/ac against an ROI-supported ceiling of $11,820/ac.
$11,820/ac
3.0% ROI
Comp indication
$15,000/ac
$2,194,071
$/CSR2
$176/CSR2
Weighted comps
ROI spread
$143,384
you don't overpay
Computed before auction day. Not a post-mortem.
Why these two comps are 50% apart — and why that's the point
Look at the comp set above. Two Poweshiek County sales, effectively identical soil:
| Comp 1 | Comp 2 | |
|---|---|---|
| CSR2 | 87.2 | 86.1 |
| Price | $19,250/ac | $12,800/ac |
| $/CSR2 | $228 | $162 |
| Tillable | 92% | 89% |
| Distance | 9.4 mi | 14.1 mi |
A scraped price file gives you two numbers 50% apart and no way to choose. Average them and your bid ceiling is wrong by six figures.
LandHero comps carry the qualifiers — tillable percentage, distance, recency, match score — so the spread is explainable instead of alarming. Use them as the comps layer, or merge them with the private sales you already store. That's the difference between a number you can average and a set you can defend to a lender, a partner, or an investment committee.
Value what isn't for sale yet
An auction-driven pipeline can only react. You find out a farm exists when someone else decides to sell it and publishes a sale bill.
Because LMM works from parcel geometry rather than listing text, the same enrichment runs on any parcel, any time:
- Underwrite ground you already own — full portfolio, current soils, current comps
- Screen every parcel adjacent to your existing farms before a neighbor lists
- Build county-level target lists ranked by CSR2, tillable %, and $/CSR2 gap
- Price a private-treaty or estate approach with the same rigor as an auction
Same API. The listing was never the input.
Built to sit under your stack
We are not trying to replace the tool you built. If you've got a working map, a valuation pipeline, and reports your team trusts, keep all of it. Same for comps: if you already keep a private sales database, LandHero doesn't have to replace it. It's another qualified Iowa source you can score against, blend, or fall back to.
Your application
your UI · your AI pipeline · your reports · your private comps
LandHero API
qualified Iowa comps + auction data — replace your feed, or add it as another source
LandMapMagic API
parcels · SSURGO/CSR2 · CDL · CLU · PLSS · floodplain
REST, JSON, one schema across every county we cover. Drop it under your existing map layer and your existing valuation model. Most teams are pulling live parcel data the same week.
Run your own parcels
Send us 3–5 farms you've already valued in your own system. We'll run the same parcels through LMM enrichment and LandHero comps and hand back a side-by-side.
If the numbers match, you've validated your build at no cost. If they diverge, the delta is worth knowing before you bid.
One week turnaround. No integration required.