# HAR cascade analysis

Baseline: `review/polynotes.co.har`
Candidate: `review/batch-31-deploy-preview.har`

## Summary

|metric|baseline|candidate|delta|
|---|---|---|---|
|requests|142|126|-16|
|session span|20.88s|72.73s|51.85s|
|body bytes|14.16MB|8.21MB|-6236062B|
|summed request time|161.69s|119.04s|-42651ms|
|summed wait|67.84s|110.21s|42.37s|

## By type

|type|base req|cand req|base bytes|cand bytes|base time|cand time|
|---|---|---|---|---|---|---|
|image|28|35|2.56MB|201.3KB|68.49s|11.91s|
|js|69|45|8.10MB|5.04MB|42.90s|16.93s|
|rsc|24|23|1.31MB|746.7KB|38.04s|48.36s|
|document|4|2|760.4KB|722.1KB|6.34s|5.39s|
|json|7|9|1.11MB|1.1KB|3.49s|29.10s|
|api|2|1|2.0KB|874B|1.11s|237ms|
|css|3|3|248.4KB|166.6KB|617ms|1.37s|
|font|2|4|76.6KB|110.1KB|416ms|3.13s|
|other|1|1|10.1KB|10.1KB|109ms|102ms|
|text/plain|1|0|0B|0B|100ms|0ms|
|x-unknown|1|0|0B|0B|84ms|0ms|
|video/mp4|0|3|0B|1.26MB|0ms|2.52s|

## Candidate peak concurrency windows

|t|active|starts|rsc starts|image starts|js starts|
|---|---|---|---|---|---|
|7.00s|27|2|0|0|2|
|5.00s|21|0|0|0|0|
|6.50s|20|17|0|16|0|
|8.50s|15|0|0|0|0|
|9.00s|14|0|0|0|0|
|6.00s|11|28|5|0|14|
|11.50s|11|1|1|0|0|
|7.50s|10|0|0|0|0|
|8.00s|10|8|0|1|2|
|9.50s|10|0|0|0|0|
|10.00s|9|1|1|0|0|
|12.50s|8|0|0|0|0|
|10.50s|7|3|3|0|0|
|11.00s|7|8|1|7|0|
|13.00s|7|0|0|0|0|

## Candidate queued-looking small/slow requests

|type|time|wait|bytes|status|url|
|---|---|---|---|---|---|
|json|7.73s|7.73s|2B|200|https://deploy-preview-30--polynote.netlify.app/monitoring?o=4508883580944384&p=4511411232505936&r=de|
|json|7.57s|7.57s|198B|429|https://deploy-preview-30--polynote.netlify.app/monitoring?o=4508883580944384&p=4511411232505936&r=de|
|rsc|4.46s|4.41s|595B|200|https://deploy-preview-30--polynote.netlify.app/about?_rsc=5CB68i4pnAekjehf|
|rsc|4.46s|4.46s|5.4KB|200|https://deploy-preview-30--polynote.netlify.app/?_rsc=yIp22O3xgPPxC28X|
|rsc|4.42s|4.37s|599B|200|https://deploy-preview-30--polynote.netlify.app/world-cup?_rsc=5CB68i4pnAekjehf|
|rsc|4.33s|4.33s|996B|200|https://deploy-preview-30--polynote.netlify.app/?_rsc=7h4NYy5eoyMcNlUN|
|json|4.00s|3.99s|2B|200|https://deploy-preview-30--polynote.netlify.app/monitoring?o=4508883580944384&p=4511411232505936&r=de|
|json|3.98s|3.98s|2B|200|https://deploy-preview-30--polynote.netlify.app/monitoring?o=4508883580944384&p=4511411232505936&r=de|
|rsc|3.83s|3.83s|367B|200|https://deploy-preview-30--polynote.netlify.app/about?_rsc=n4tDNspjD4yS_Xnd|
|json|3.81s|3.81s|2B|200|https://deploy-preview-30--polynote.netlify.app/monitoring?o=4508883580944384&p=4511411232505936&r=de|
|rsc|3.70s|3.64s|1.0KB|200|https://deploy-preview-30--polynote.netlify.app/about?_rsc=7h4NYy5eoyMcNlUN|
|rsc|3.52s|3.52s|17.5KB|200|https://deploy-preview-30--polynote.netlify.app/about?_rsc=hzcUC6YqarYE9pKE|
|rsc|1.13s|1.03s|367B|200|https://deploy-preview-30--polynote.netlify.app/world-cup?_rsc=q8tH1d-FuMpoe9n-|
|rsc|1.02s|923ms|3.0KB|200|https://deploy-preview-30--polynote.netlify.app/|

## Candidate duplicate normalized URLs

|type|count|bytes|time|cache-control|url|
|---|---|---|---|---|---|
|json|5|206B|27.09s|no-cache|deploy-preview-30--polynote.netlify.app/monitoring?o=4508883580944384&p=4511411232505936&r=de|
|document|16|1.37MB|26.58s|public,max-age=0,must-revalidate | no-cache,no-store,max-age=0,must-revalidate|deploy-preview-30--polynote.netlify.app/|
|rsc|4|19.5KB|15.50s|public,max-age=0,must-revalidate|deploy-preview-30--polynote.netlify.app/about|
|rsc|4|39.4KB|11.31s|public,max-age=0,must-revalidate|deploy-preview-30--polynote.netlify.app/world-cup|
|json|3|63B|1.80s||sessions.bugsnag.com/|

## Largest regressions by summed time

|type|req Δ|bytes Δ|time Δ|url|
|---|---|---|---|---|
|json|5|206B|27.09s|deploy-preview-30--polynote.netlify.app/monitoring?o=4508883580944384&p=4511411232505936&r=de|
|document|16|1.37MB|26.58s|deploy-preview-30--polynote.netlify.app/|
|rsc|4|19.5KB|15.50s|deploy-preview-30--polynote.netlify.app/about|
|rsc|4|39.4KB|11.31s|deploy-preview-30--polynote.netlify.app/world-cup|
|json|3|63B|1.80s|sessions.bugsnag.com/|
|js|1|537.3KB|1.12s|deploy-preview-30--polynote.netlify.app/_next/static/chunks/01z45l_xmc6mm.js|
|font|1|17.3KB|972ms|app.netlify.com/cdp/_next/static/media/mulishvar-ascii-hint.b85fdd43.woff2|
|font|1|16.2KB|966ms|app.netlify.com/cdp/_next/static/media/pacaembuvar-ascii-hint.e5a6cc15.woff2|
|video/mp4|1|676.1KB|965ms|app.netlify.com/cdp/video/deploy-previews-feedback-v2.mp4|
|js|1|69.8KB|960ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0ns_vw3bg4cvp.js|
|js|1|106.4KB|939ms|cdn.segment.com/analytics.js/v1/PzoD1qlC1wpvDGhNckresPQM3zcX8I1s/analytics.min.js|
|video/mp4|1|332.9KB|912ms|app.netlify.com/cdp/video/deploy-previews-notifications-v2.mp4|
|js|1|30.3KB|775ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0bu.39i90lc48.js|
|js|1|10.7KB|699ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/turbopack-0fx1x6knzm1rl.js|
|css|1|129.0KB|684ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0-1vc74mswsct.css|
|js|1|21.0KB|681ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/01dohcrwomxeb.js|
|js|1|137.8KB|680ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0wa-~~_1b6iov.js|
|video/mp4|1|276.7KB|647ms|app.netlify.com/cdp/video/deploy-previews-workflow-v2.mp4|
|js|1|26.3KB|633ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0jswvx10d07mp.js|
|js|1|9.7KB|632ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/1726-lay514.d.js|
|css|1|4.0KB|632ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/00.b8jbuxi3u4.css|
|js|1|51.4KB|631ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/00gu~3pwew54r.js|
|js|1|33.8KB|629ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/14bl~j6w~vlen.js|
|js|1|59.6KB|628ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/03bab6s3aicyw.js|
|font|1|47.3KB|627ms|deploy-preview-30--polynote.netlify.app/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2|

## Largest regressions by bytes

|type|req Δ|bytes Δ|time Δ|url|
|---|---|---|---|---|
|js|1|1.93MB|492ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0_~ubygys5rl~.js|
|document|16|1.37MB|26.58s|deploy-preview-30--polynote.netlify.app/|
|video/mp4|1|676.1KB|965ms|app.netlify.com/cdp/video/deploy-previews-feedback-v2.mp4|
|js|1|537.3KB|1.12s|deploy-preview-30--polynote.netlify.app/_next/static/chunks/01z45l_xmc6mm.js|
|js|1|453.3KB|270ms|app.netlify.com/cdp/_next/static/chunks/pages/_app.*.js|
|js|1|388.1KB|354ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/1575olz_2hx3j.js|
|video/mp4|1|332.9KB|912ms|app.netlify.com/cdp/video/deploy-previews-notifications-v2.mp4|
|video/mp4|1|276.7KB|647ms|app.netlify.com/cdp/video/deploy-previews-workflow-v2.mp4|
|js|1|142.7KB|273ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/06gzuv93_58du.js|
|js|1|137.8KB|680ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0wa-~~_1b6iov.js|
|css|1|129.0KB|684ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0-1vc74mswsct.css|
|js|1|127.0KB|115ms|app.netlify.com/cdp/_next/static/chunks/framework.*.js|
|js|1|126.8KB|409ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0y0a9u.x.fh3s.js|
|js|1|106.4KB|939ms|cdn.segment.com/analytics.js/v1/PzoD1qlC1wpvDGhNckresPQM3zcX8I1s/analytics.min.js|
|js|1|104.1KB|192ms|app.netlify.com/cdp/_next/static/chunks/643.*.js|
|js|1|103.8KB|304ms|app.netlify.com/cdp/_next/static/chunks/main.*.js|
|js|1|80.6KB|258ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/103.tf5nlz983.js|
|js|1|70.4KB|242ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/17q_jza.eaurs.js|
|js|1|69.8KB|960ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/0ns_vw3bg4cvp.js|
|js|1|67.8KB|150ms|app.netlify.com/cdp/_next/static/chunks/120.*.js|
|js|1|59.6KB|280ms|app.netlify.com/cdp/_next/static/chunks/126.*.js|
|js|1|59.6KB|628ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/03bab6s3aicyw.js|
|js|1|51.4KB|631ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/00gu~3pwew54r.js|
|font|1|47.3KB|627ms|deploy-preview-30--polynote.netlify.app/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2|
|js|1|43.8KB|626ms|deploy-preview-30--polynote.netlify.app/_next/static/chunks/11fofwilhgpgc.js|

## Cache-control changes on matching normalized URLs

|type|before|after|url|
|---|---|---|---|

## RSC details

- baseline: 24 requests, 1.31MB, 38.04s summed time
- candidate: 23 requests, 746.7KB, 48.36s summed time

## Initial verdict hints

- request_delta_pct=-11.3%
- rsc_request_delta=-1
- js_byte_delta=-3207611B
- If bytes down but span/wait up, prioritize cascade: prefetch fan-out, duplicate RSC/image work, and slow telemetry before image byte work.
