Compare Internet Companies With a Publishable Plan Table
Build a sourced internet-provider comparison table with verified availability, typical speeds, comparable estimated costs and clear ranking rules.

To publish a useful “best internet company” comparison, build a table of plans available within a defined area, not a nationwide list of brand names. Readers should be able to filter plans, compare costs over the same period, and trace each figure to its source.
This workflow uses U.S. home-internet data. The result is a spreadsheet ready to publish as an interactive dataset—not a claim that one provider is best for everyone.
Define what each row represents
Use one row per provider × plan × study area × eligibility condition × verification date. Split rows when prices or conditions differ within an area. Keep standalone home-internet plans separate from mobile plans and bundles.
Before collecting prices, write a scope statement. For example:
Standalone residential internet plans checked at selected study locations. Rankings compare 24-month estimated costs among plans meeting the stated speed requirements. Availability is not guaranteed throughout the area.
Add your actual collection date, requirements and location-selection method. Checking one building does not establish citywide availability. Keep location-level evidence in a private worksheet; an area-level row should summarize where a plan was checked, not imply that every address qualifies.
The FCC’s National Broadband Map shows provider-reported availability, technologies and maximum advertised speeds at individual locations. Use it to identify candidates, then confirm orderability through the provider for each study location. Record the map’s data-as-of date separately from your checking date, and keep map-reported availability separate from provider-confirmed availability.
Collect comparable fields
Use the provider’s current Broadband Facts label and offer terms as primary sources. The FCC’s consumer-label guidance explains that labels disclose prices, introductory rates, data allowances and speeds to support comparison shopping.
A practical spreadsheet structure is:
| Field group | Suggested columns | Purpose |
|---|---|---|
| Identity | provider, plan, technology, study_area |
Distinguish comparable offers |
| Availability | map_reported_status, provider_confirmed_status, availability_notes |
Describe the evidence and its geographic limits |
| Price | intro_monthly_usd, intro_months, standard_monthly_usd |
Preserve the price schedule |
| Other costs | additional_required_monthly_fees_usd, one_time_fees_usd, tax_treatment |
Avoid treating the headline price as the full bill |
| Performance | typical_download_mbps, typical_upload_mbps, typical_latency_ms |
Compare the same measurements |
| Conditions | data_allowance, contract_months, discount_conditions |
Make restrictions visible |
| Provenance | label_url, terms_url, map_data_as_of, checked_date, notes |
Let readers audit the figures |
Store numbers without currency symbols or unit suffixes; put units in the headers. Leave missing numeric values blank and explain them in a companion status or notes field rather than entering zero. Represent an unlimited allowance separately from a numeric allowance.
Do not mix advertised maximum speeds with typical speeds in one column. The FCC map reports maximum advertised speeds, while the FCC’s label glossary distinguishes typical download, upload and latency measurements. Upload speed describes sending data, including large files; latency describes delay, with lower values indicating less delay. Label values are not measurements of every reader’s connection.
Calculate costs over one common period
Choose a comparison horizon—24 months, for example—and apply it to every plan. For a plan with one introductory period followed by a standard rate, use this calculation rule:
intro_period = MIN(intro_months, 24)
estimated_24_month_cost =
intro_period × intro_monthly_usd
+ (24 − intro_period) × standard_monthly_usd
+ 24 × additional_required_monthly_fees_usd
+ one_time_fees_usd
For a plan without an introductory offer, calculate 24 times the monthly rate, then add applicable fees. Only add fees not already included in that rate: the FCC glossary notes that some providers use an all-inclusive price.
These estimates assume recurring fees and the stated rates remain applicable. If a plan has multiple price changes, calculate each period separately. If a required price or fee is unknown, mark the estimate incomplete rather than assuming zero. If only an “up to” fee is disclosed, identify the resulting estimate as an upper-bound scenario, not an exact local bill.
State whether taxes, usage charges and conditional discounts are included. Treat early-termination fees as a separate cancellation scenario; include them if your scenario ends service before the contract expires.
Here is a fictional example, not current provider pricing:
| Sample plan | Monthly price, first 12 months | Monthly price, next 12 months | Additional required monthly fees | Setup | Estimated 24-month cost |
|---|---|---|---|---|---|
| Plan A | $40 | $70 | $10 | $50 | $1,610 |
| Plan B | $60 | $60 | $0 | $0 | $1,440 |
Taxes and usage charges are excluded in this example. Plan A has the lower introductory price, but Plan B costs $170 less over 24 months.
Rank only after applying eligibility rules
Define minimum requirements before sorting: confirmed availability at the location being compared, sufficient typical download and upload speeds, and acceptable contract and data-allowance conditions. Then sort eligible plans with complete, comparable cost estimates by estimated cost. Keep incomplete estimates visible but unranked.
Call the result “lowest estimated 24-month cost among eligible plans,” not “best overall.” If you score several dimensions, disclose weights, missing-value treatment and tie rules. Our guide to public ranking table disclosures covers those decisions.
Do not infer reliability from download speed. If you lack comparable outage or support evidence, leave those dimensions unranked.
Publish the reviewed spreadsheet
Create a publication copy that removes household addresses, account details, personalized order links and other sensitive information. Keep the address-level checking worksheet private; publish only appropriate area descriptions and comparison results.
TablePage accepts CSV, TSV, XLSX and XLS files and generates a public dataset page with a shareable link and filterable table. Upload the reviewed file, then check that numbers remain numeric, missing values are understandable, and source links work.
Give the page a specific title naming the study area and collection month. Accompany it with the geographic scope, collection date, cost assumptions and ranking rule. Preserve dated publication copies when updating prices so readers can distinguish an earlier comparison from the current release.