Compare internet plan cost per Mbps
A plan of 60 a month at 300 Mbps costs 0.20 per Mbps, while one of 75 at 500 Mbps costs 0.15, so the higher bill is the better value per megabit. Enter two offers and see which one wins. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Plan a monthly cost
- 60
- Plan a speed mbps
- 300
- Plan b monthly cost
- 75
- Plan b speed mbps
- 500
- Better value
- plan_b
- Precision
- 6
Internet plans often advertise different prices and speeds, which makes the cheaper monthly bill look attractive even when it buys much less capacity. This calculator puts two offers on one comparable basis by dividing each monthly cost by its advertised download speed in megabits per second. It returns the cost per Mbps for Plan A and Plan B, then identifies the lower ratio as the better value. Both speeds must be positive, costs must be non-negative, and both costs should use the same currency.
What cost per Mbps reveals about two internet plans
Cost per Mbps is a simple value ratio: divide a plan's recurring monthly cost by its advertised download speed in Mbps. A sixty-unit plan advertised at three hundred Mbps costs 0.20 per Mbps, while a seventy-five-unit plan advertised at five hundred Mbps costs 0.15 per Mbps. Although the second plan has the higher bill, each advertised megabit costs less, so it wins this narrow value comparison.
Lower cost per Mbps means more advertised download capacity for each unit of monthly price; it does not automatically mean a smaller household bill or a better service experience. Enter both costs in the same currency and on the same monthly basis. Taxes, equipment rental, installation, promotional expiration, data caps, upload performance, latency, reliability, and contract terms are outside this calculation.
Those factors can change a buying decision, but excluding them keeps this ratio transparent and reproducible rather than mixing objective arithmetic with assumptions that vary by provider, address, and customer.
How to enter prices and speeds and interpret the result
A cost of zero is valid for a genuinely free plan or a fully credited month, and its cost per Mbps is zero as long as the advertised speed remains positive. A zero or negative speed is rejected because division by zero has no useful price-per-capacity meaning and negative bandwidth cannot describe an advertised consumer connection. Negative monthly costs are also rejected because this comparison models prices rather than rebates or signed accounting entries.
Precision defaults to six decimal places and may be set from zero through twelve. An exact mathematical equality returns tie. For an honest shopping comparison, normalize introductory offers to the same time window before entering them: do not compare one plan's first-month promotional bill against another plan's regular ongoing bill unless that is specifically the decision you intend to study.
The engine does not infer currency, billing periods, or promotional schedules from labels, so preparation remains explicit and under your control.
Using the ratio in real shopping and automated comparisons
A household can use cost per Mbps to shortlist fiber, cable, fixed-wireless, or other offers when providers publish dramatically different speed tiers. A renter comparing a fifty-unit two-hundred-Mbps plan with an eighty-unit eight-hundred-Mbps plan can immediately see that the larger plan has a lower ratio, then decide whether the extra monthly spending is worthwhile for the household's actual devices and usage. Procurement teams can apply the same calculation to two business access quotes after converting both into the same currency and monthly billing basis.
The algorithm performs no network requests and does not inspect provider availability, so identical inputs always produce identical output suitable for tests, classroom exercises, quoting tools, and reproducible articles. Treat the ratio as one screening metric rather than a complete recommendation. Advertised download speed may differ from measured peak or typical speed, and many users value upload speed, low latency, responsive support, included hardware, unlimited data, or freedom from a long contract more than headline capacity.
After identifying the lower cost per Mbps, compare the absolute monthly bill and these service details. This two-stage approach preserves the calculator's strength: it answers one precise question cleanly while leaving location-specific quality and personal affordability decisions to evidence the user can verify.
What you can do with it
Home broadband shopping
Compare two cable, fiber, or fixed-wireless offers on the same monthly cost-per-advertised-Mbps basis before reviewing fees and contract terms.
Business quote screening
Normalize two monthly connectivity quotes into a transparent capacity-price ratio for a procurement shortlist or approval worksheet.
Comparison sites and calculators
Generate deterministic plan ratios and a better-value label for tables, educational examples, automated tests, and consumer decision tools.
FAQ
How do I calculate an internet plan's cost per Mbps?
Divide the plan's monthly cost by its advertised download speed in Mbps. The calculator performs that division for both plans and identifies the lower ratio.
Is a lower cost per Mbps better?
Yes for price-to-advertised-speed value: a lower ratio buys more advertised Mbps per unit of monthly cost. It does not account for reliability, fees, latency, or contracts.
Can the two monthly costs use different currencies?
No meaningful comparison results unless both costs use the same currency. Convert one price first, then submit both on the same monthly basis.
Which costs are left out of the cost per Mbps?
Taxes, equipment rental, installation, the end of a promotion, data caps, upload speed, latency, reliability and contract terms are not included. They can change a buying decision, so weigh them separately after comparing the ratio.
What happens if both plans cost the same per Mbps?
The result is a tie, but only when the two ratios are exactly equal. The comparison uses the unrounded figures, so two plans that merely look the same after rounding are not declared a tie.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/web/internet-plan-cost-per-mbps \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"plan_a_monthly_cost":60,"plan_a_speed_mbps":300,"plan_b_monthly_cost":75,"plan_b_speed_mbps":500}'const res = await fetch("https://api.kit.forhosting.com/web/internet-plan-cost-per-mbps", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"plan_a_monthly_cost": 60,
"plan_a_speed_mbps": 300,
"plan_b_monthly_cost": 75,
"plan_b_speed_mbps": 500
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/internet-plan-cost-per-mbps",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"plan_a_monthly_cost": 60,
"plan_a_speed_mbps": 300,
"plan_b_monthly_cost": 75,
"plan_b_speed_mbps": 500
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/internet-plan-cost-per-mbps", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"plan_a_monthly_cost":60,"plan_a_speed_mbps":300,"plan_b_monthly_cost":75,"plan_b_speed_mbps":500}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"plan_a_monthly_cost":60,"plan_a_speed_mbps":300,"plan_b_monthly_cost":75,"plan_b_speed_mbps":500}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/internet-plan-cost-per-mbps", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"plan_a_monthly_cost": 60,
"plan_a_speed_mbps": 300,
"plan_b_monthly_cost": 75,
"plan_b_speed_mbps": 500
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.internet_plan_cost_per_mbps",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_value | 1000000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Use the free browser calculator while shopping, or call the deterministic API for $0.002 per successful request when a comparison tool, worksheet, or sales workflow needs the same result.
What cost per Mbps reveals about two internet plans
The response keeps Plan A and Plan B separate, echoes each normalized monthly cost and speed, supplies each cost_per_mbps result, and reports better_value as plan_a, plan_b, or tie. It also includes the chosen precision and the formula so downstream software can explain the answer instead of presenting an unexplained verdict.
How to enter prices and speeds and interpret the result
Provide plan_a_monthly_cost and plan_b_monthly_cost as finite, non-negative numbers, then provide plan_a_speed_mbps and plan_b_speed_mbps as finite numbers greater than zero. Decimal values and numeric strings are accepted, making the endpoint convenient for ordinary forms and imported spreadsheet cells. Rounding affects the displayed cost_per_mbps numbers, but the better_value decision uses the unrounded ratios, preventing a close comparison from becoming a false tie merely because both displayed values round to the same number.
Using the ratio in real shopping and automated comparisons
Publishers and comparison applications can call the API for $0.002 per successful request to produce consistent plan_a, plan_b, and better_value fields without recreating validation and rounding in every client.
Technical questions
What happens if a plan speed is zero or negative?
The request fails with invalid_input because cost per Mbps requires both advertised speeds to be positive numbers greater than zero.
What does the calculator cost?
The browser calculator is free. A successful API request costs $0.002; invalid inputs are rejected rather than producing a ratio.