⌬SCRAPE / STACKCost lab · static · zero dependency · 2026
Anti-bot TCO · LLM corpus · RAG retrieval

The invoice is per page.
The bill is per clean page.

A transparent cost model for AI engineers building training corpora, RAG vector stores and live agent retrieval. It prices the real payload behind every usable Markdown page: Turnstile retries, Chromium asset bloat, residential-proxy GB and the engineer who keeps the fingerprint pool alive. Then it compares that with a managed scraping API that bills only delivered 200 OK pages.

6 live inputs 1/(1−block) retry amplification 2.4× headless payload factor $0 retry credits on managed API
Lower effective cost / 1,000 clean Markdown pages
$0.60Managed API · 6.58× cheaper
1,300,000 credits at the ≤3M tier = $299/month. DIY needs 380.3 GB of residential traffic and 200,000 Chromium renders.
DIY stack / month$1,967$3.93 / 1k
Managed API / month$299$0.60 / 1k
DIY
$1,967
Managed
$299
Retry multiplier1.389×
Bandwidth factor1.136×
Avg KB / clean page797.6 KB
Real proxy traffic380.3 GB
Managed credits1,300,000
!
The 403 tax in one line

You ask for 500,000 clean pages. Retries and challenge traffic turn that into 380.3 GB of billed proxy traffic, up from 214.6 GB of clean HTML — a 1.77× total payload tax: 1.56× from Chromium assets and 1.14× from retries/challenges.

Two operating models, one denominator

Both stacks deliver the same 500,000 clean pages. The difference is where retries, rendering and labour are billed.

DIY Playwright + residential proxy

$3.93

per 1,000 clean pages

Monthly total$1,967
Proxy + compute + labour$1,331 + $36 + $600

Managed scraping API

$0.60

per 1,000 clean pages

Monthly total$299
Credit model1,300,000 credits · ≤3M tier
Monthly cost ledger comparing the DIY residential proxy and Playwright stack with a managed scraping API
Cost lineDIY stackManaged API
Residential bandwidth$1,331.06
Chromium compute$36.00
Engineering @ $75/hr$600.00
Recommended exit

Managed scraping API wins this workload.

At 28% blocking and 40% JavaScript, retries plus Chromium make the DIY stack cost $3.93 per 1,000 clean pages. A managed API at the ≤3M credit tier lands at $0.60 — a $3.33 saving per 1,000 pages.

Affiliate disclosure (FTC 16 CFR Part 255): We may earn a commission if you buy through the Smartproxy / Decodo or ScraperAPI links, at no extra cost to you. It does not change the calculated cost, the tier prices or the recommendation rule. Provider terms, credit definitions and 200-OK billing rules change; verify them on the provider page before paying. This calculator performs no scraping and stores no target data.

The arithmetic, exposed

Every output above is a pure function of the six inputs and the fixed assumptions below. No hidden “contact sales” multiplier.

1 · Retry amplificationM_retry = 1 / (1 − block_rate)
1.3889× at 28%
2 · Challenge bandwidtheffective_bw_factor = 1 + (block_rate / (1 − block_rate)) × 0.35
1.1361× at 28%
3 · Payload per clean pageavg_kb_per_clean_page = html_kb × ((1−js_share) + js_share × 2.4) × effective_bw_factor
797.55 KB
4 · DIY monthly totaldiy_total = proxy_cost + (pages × js_share / 100,000) × $18 + eng_hours × $75
$1,967.06
5 · Managed creditstotal_credits = pages × ((1−js_share) × 1 + js_share × 5)
1,300,000 credits
6 · Effective proxy $/GB(real_gb × proxy_gb_price) ÷ (pages × html_kb / 1,048,576)
$6.20 per GB of clean payload
Managed tier rule≤250k credits = $49; ≤1M = $149; ≤3M = $299; above 3M = credits × $0.000095. Tier cliffs are preserved exactly, so a workload just over a boundary can cost less than one just under it. Current vendor terms control.
Measure, don't guess

Your target's block rate is the biggest unknown.

Probe the hardest URLs with check-proxy-tax. It classifies 200s, 403s, 429s, timeouts and empty shells, then reports effective cost per 1,000 usable responses with no account and no external Python dependencies. Paste the measured block rate back into this calculator.

Open check-proxy-tax on GitHub ↗
npx / git clone audit
# No-install checkout (npx degit)
npx --yes degit 600me/check-proxy-tax check-proxy-tax
cd check-proxy-tax

# Or: git clone https://github.com/600me/check-proxy-tax.git
python3 -m check_proxy_tax.cli \
  --url "https://example.com/product/123" \
  --requests 20 --marker "Add to cart" \
  --price-per-1k 0.49 --json
Keep sizing the stack
Hugging Face Static Space

Zero cold starts. Zero dependencies. Same arithmetic.

Both calculators run as plain static HTML on Hugging Face. Use this page for scraping TCO and the first Space for the GPU and KV-cache sizing that consumes the corpus.