How we rank cell plans
This page describes how the plan finder produces its rankings, where the underlying data comes from, and how often it gets refreshed. We try to be specific so you can decide how much to trust our picks.
The two-layer ranking
Plans are scored against your usage profile in two stages:
- Hard filters remove plans that don't meet a stated requirement. If you said you need hotspot tethering and a plan includes no hotspot allotment, that plan is filtered out, not down-ranked. Hard filters apply to: data tier (1–5 GB / 5–20 GB / 20+ GB / unlimited), hotspot, international data, and billing type (prepaid / postpaid / annual).
- Soft scoring ranks the remaining plans on a composite fit metric. The metric combines (a) per-month price, (b) data adequacy relative to your tier, (c) hotspot adequacy, and — when a ZIP is provided — (d) coverage strength of the underlying network at your address.
The coverage layer
Coverage data comes from the FCC's Broadband Data Collection (BDC) mobile dataset. We process the carrier-reported coverage shapefiles into ZIP × carrier × technology buckets (4G LTE, 5G sub-6 GHz, 5G mmWave) and classify each as strong, fair, poor, or none.
When you enter a ZIP, the ranking multiplies the soft fit score by a coverage multiplier: 1.0 for strong, 0.85 for fair, 0.6 for poor, 0.3 for none, 1.0 (neutral) for unknown. So a cheap plan on a network with poor coverage at your address loses to a slightly more expensive plan on a network with strong coverage there.
The FCC BDC dataset is published twice a year; we re-ingest after each new release. The current dataset is the most recent FCC mobile broadband collection.
Where plan data comes from
Plan details (price, data, hotspot, billing type, network) are extracted from each carrier's own published page. Our weekly pipeline:
- A scraper fetches each carrier's plans page, with browser-like User-Agent and SHA-256 snapshot diffing so we only re-process changed pages.
- An AI (Claude) extracts structured plan data from the page text using a strict JSON schema.
- The extracted data is compared against the database; differences are written to
ingest_logwith status diff. - A human reviews each diff at
/admin/ingestand approves or rejects it. Approved diffs apply to the plan record.
This means no AI-drafted plan data ever lands on a public page without a human approving it. We disclose this because Google's spam policies (and basic honesty) ask us to.
Editorial picks vs algorithmic ranking
The plan finder is algorithmic. Our best-of pages (best overall, best prepaid, best unlimited, best family) are editorial — written by humans with reasoning, with a paragraph per pick. We don't try to algorithmically score "best for kids" or "best for international travelers"; those answers depend on context the algorithm doesn't have.
What we don't do
- Pay-for-placement. No carrier has ever paid for a higher rank, and we don't have a way to accept that even if we wanted to.
- Hidden affiliate links. Outbound links to carriers go to the carrier's public homepage with no affiliate codes attached. If we add affiliate relationships in the future, the disclosure page will be updated and the relationship will be clearly labeled on relevant pages.
- Sponsored content. No "best plan" is a paid placement. Editorial picks change when a plan's value proposition changes, not when a carrier asks.
Limitations and caveats
- FCC BDC accuracy. The dataset is carrier-reported and audited but not perfect — it tends to be optimistic at the cell-edge. For street-level certainty, also check the carrier's own coverage tool.
- Plan data lag. We refresh weekly, but carriers occasionally make mid-week price changes. The plan page shows the date the data was last verified.
- Postpaid plan catalogs. We maintain detailed data for the major MVNOs. The big-three's own postpaid plan catalogs change frequently and aren't fully maintained in our database; for those we link to the carrier page directly.
- 9 carriers without plan data. A handful of carriers in our database have carrier pages but no plan rows yet; ingestion for those is ongoing.
Public data API
The plan, carrier, and network data is also available as JSON for developers, researchers, and AI tools that need machine-readable access:
/api/plans.json— every active plan with pricing, data caps, hotspot, 5G/eSIM/intl flags, and the carrier and network it rides/api/carriers.json— every active brand with type (MNO/MVNO), website, network, and plan count/api/networks.json— the 4 US networks with spectrum tiers, 5G branding, and rider counts
Usage is licensed CC BY 4.0 — attribution to cellt.net is required if you republish. The endpoints respond with a 1-hour Cache-Control window and are safe to scrape on a daily cadence. If you build something interesting with this data, drop us a line.
Corrections
If you spot incorrect plan data, please email admin@cellt.net with the URL and what's wrong. We typically push corrections within 24 hours of being notified.