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:

  1. 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).
  2. 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:

  1. 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.
  2. An AI (Claude) extracts structured plan data from the page text using a strict JSON schema.
  3. The extracted data is compared against the database; differences are written to ingest_log with status diff.
  4. A human reviews each diff at /admin/ingest and 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

Limitations and caveats

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:

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.