Every proxy comparison you will read is a table of dollars per gigabyte. It is the wrong number, and the reason is simple arithmetic: you pay for bandwidth whether or not the request worked.
The arithmetic
Take two pools. One at $1.75/GB, one at $2.75/GB. The cheaper one looks 36% better and every comparison table will say so.
Now put them against a protected target. Say the cheap pool succeeds 55% of the time and the premium pool succeeds 92%. Assume a 50 KB page either way - a block still costs you the request and the response.
| $1.75/GB pool | $2.75/GB pool | |
|---|---|---|
| Requests per GB | ~20,000 | ~20,000 |
| Success rate | 55% | 92% |
| Successful requests per GB | 11,000 | 18,400 |
| Cost per 1,000 successes | $0.159 | $0.149 |
The expensive pool is cheaper. Not by much in this example - about 6% - but the direction reverses entirely, and the ranking that every price-per-GB table gives you is backwards.
Push the success rate apart a little further and it stops being close. At 40% versus 92%, the cheap pool costs $0.219 per thousand successes against $0.149 - it is 47% more expensive while advertising a 36% lower price.
Where the hidden cost actually goes
Three places, and none of them show up on a pricing page.
Bandwidth on failures. A 403 is not free. The request went out, a response came back, you were billed for both. On a 45% failure rate, nearly half your bill buys you error pages.
Retries multiply it. Most scrapers retry. A three-retry policy against a 55% pool means a meaningful share of your requests are being paid for three times before they succeed - and your logs will still report a healthy final success rate, because retry logic is very good at hiding the thing it is compensating for.
Engineering time. The one nobody costs. A pool that fails half the time generates work: monitoring, alerting, someone investigating whether the scraper broke or the site changed. An hour a week of an engineer's time is worth more than most people's entire proxy bill.
When cheap really is cheaper
This argument has a limit, and it is worth being straight about it, because the opposite advice - always buy the premium pool - is just as wrong.
If your targets do not filter traffic, the success rates converge and the cheaper pool wins on price exactly as advertised. Public APIs. Open datasets. Government and academic sources. Your own infrastructure. Sites with no anti-bot layer at all. In those cases you are buying bandwidth and nothing else, and paying a premium for a pool quality you will never exercise is money thrown away.
That is the whole reason we sell Budget Residential at $1.75/GB alongside the premium pool at $2.75. They are not good and bad. They are two different jobs, and picking by headline price picks at random.
What to measure instead
Run both against your actual targets for a day. Not a benchmark, not someone else's test - yours, because success rates are entirely target-dependent and a pool that is excellent against one site can be useless against another.
Log four numbers: requests attempted, requests succeeded on first attempt, total bytes, total spend. Then divide spend by first-attempt successes. That single figure ranks pools correctly, and it is usually the first time people discover their cheap proxies are not cheap.
A day of testing costs a few dollars. Getting this wrong costs it every month.
Frequently asked questions
What is cost per successful request?
Total spend divided by the number of requests that actually returned the data you wanted. It counts the bandwidth burned on blocks, retries and challenge pages, which price per GB does not.
Is a cheaper proxy always worse?
No. On unprotected targets - public APIs, open datasets, your own infrastructure - the cheap pool succeeds essentially as often as the expensive one, so the lower price per GB is a real saving. The gap only opens up on targets that actively filter traffic.
How do I measure my own success rate?
Log first-attempt outcomes separately from post-retry outcomes. Most scrapers only record the final result, which hides the failures you paid for. The difference between those two numbers is what you are actually buying.