Command Palette

Search for a command to run...

Hectal
Back to the lesson: Topic 11.4 — Latency Budgets
RAG and Vector Search · Example 1 of 1

A budget table with p50 and p95

The milliseconds are simulated sample data, and the budgets are example values. Replace both with your own measurements.

A budget gives each stage of the query path a time limit, the way a trip has a time for each leg. With budgets you can see which stage is spending too much, decide what to cut first, and make time to first token feel fast even when the whole answer takes seconds.

Change the code and press Run (Ctrl+Enter). Predict what will happen first, then break it on purpose and read what changes. Your edits are saved and match the lesson page.

Ready for more? This phase has 5 hands-on exercises with automatic checks.

Practice questions

Write the code in the editor, run it, then open the model answer to compare.

01

Write percentile(values, pct) using the nearest-rank rule and print the p50 and p95 of [12, 15, 11, 90, 14, 13, 12, 16, 15, 14].

02

Write over_budget(samples, budgets) returning the sorted names of the stages whose p95 is above their budget. Use the same percentile.

Explain it without notes

01

Why are budgets set at p95 or p99 and not at the average?

02

Why is the p95 of a request not the sum of its stages' p95 values?

03

What is time to first token and how does streaming change what users feel?

04

A RAG service is over its latency budget. How do you decide what to change first?

A budget table with p50 and p95
Sign in to run this example in your browser.

Expected output

stage        budget   p50   p95  status
embed            50    32    45  ok
search           80    49   200  OVER by 120
rerank          150   117   140  ok
first token     400   315   500  OVER by 100
whole request p95: 701 ms (budget 700)
sum of stage p95s: 885 ms
look at first: search