Model latency

Latest snapshot: 2026-10-29T03:45:11.074660+00:00
What this measures now: Azure per-region OpenAI latency from the ai-latency modality. Each current row is tied to a real Azure region where the selected model is available as a single-region Standard deployment. Retained GitHub Models latency, when present below, is historical only because that service retired.

Azure Per-Region Latency

Real region-attributable latency · one table per model · fastest region first · vantage = the probe runner
This is real Azure per-region latency. Each row is a single-region Standard deployment of that model in that Azure region, so the timing is attributable to the region. It still includes network distance from the probe runner's vantage, so read it as relative region speed rather than an SLA. The Rank column shows each region's speed position and how it moved since the previous snapshot.
Why only these regions? A region appears here only when Azure offers the model as a single-region Standard SKU. Many large regions (for example westeurope, northeurope, southeastasia, koreacentral, centralindia) currently offer these models only as GlobalStandard/DataZoneStandard, which can run in any datacenter in their geography and so are not region-attributable. See Status meanings for details; new regions surface automatically once a Standard SKU appears.

gpt-4.1 · 8 regions

Rank Region Status p50 (ms) p95 (ms) TTFT p50 (ms) Tokens/sec Samples
#1 ▲ 3 eastus available 803 1,009 750 123.3 5/5
#2 ▲ 4 eastus2 available 825 1,032 793 120.1 5/5
#3 ▼ 2 westus3 available 907 1,009 863 109.1 5/5
#4 ▼ 2 westus available 931 1,329 893 106.4 5/5
#5 — southcentralus available 1,069 1,276 997 92.6 5/5
#6 ▲ 1 switzerlandnorth available 1,127 1,450 1,007 87.9 5/5
#7 ▲ 1 swedencentral available 1,226 17,165 1,100 80.8 5/5
#8 ▼ 5 northcentralus available 1,692 5,095 1,587 58.5 5/5

gpt-4.1-mini · 14 regions

Rank Region Status p50 (ms) p95 (ms) TTFT p50 (ms) Tokens/sec Samples
#1 ▲ 4 canadaeast available 1,148 1,461 1,105 86.3 4/5
#2 ▼ 1 westus3 available 1,179 1,211 1,115 84.0 5/5
#3 ▲ 3 eastus available 1,191 1,214 1,113 83.1 5/5
#4 ▲ 3 uksouth available 1,217 2,733 1,110 81.3 5/5
#5 ▲ 6 eastus2 available 1,260 1,898 1,189 78.6 5/5
#6 ▼ 3 northcentralus available 1,370 3,337 1,277 72.3 5/5
#7 ▼ 3 southcentralus available 1,390 1,635 1,358 71.2 5/5
#8 ▼ 6 westus available 1,413 1,906 1,376 70.0 5/5
#9 ▲ 3 swedencentral available 1,415 1,641 1,281 70.0 5/5
#10 — switzerlandnorth available 1,570 1,781 1,447 63.0 5/5
#11 ▲ 2 francecentral available 1,620 1,923 1,510 61.1 5/5
#12 ▼ 3 japaneast available 1,787 1,906 1,653 55.4 5/5
#13 ▼ 5 australiaeast available 1,807 21,574 1,634 54.8 5/5
#14 — southindia available 2,531 7,941 2,304 39.1 5/5

gpt-4o · 16 regions

Rank Region Status p50 (ms) p95 (ms) TTFT p50 (ms) Tokens/sec Samples
#1 — centralus available 726 858 646 136.4 5/5
#2 ▲ 1 canadaeast available 860 1,077 809 115.2 5/5
#3 ▲ 6 eastus available 864 1,204 787 114.6 5/5
#4 ▲ 1 northcentralus available 919 1,019 827 107.8 5/5
#5 ▼ 3 westus available 924 1,559 880 107.1 5/5
#6 ▲ 1 southcentralus available 996 1,368 959 99.4 5/5
#7 ▲ 4 francecentral available 1,051 1,141 945 94.2 5/5
#8 ▼ 4 westus3 available 1,078 1,142 1,037 91.8 5/5
#9 ▲ 1 uksouth available 1,145 1,368 1,038 86.4 5/5
#10 ▲ 3 norwayeast available 1,159 1,674 1,033 85.4 5/5
#11 ▲ 1 switzerlandnorth available 1,164 1,274 1,049 85.1 5/5
#12 ▼ 6 japaneast available 1,284 1,365 1,150 77.1 5/5
#13 ▼ 5 eastus2 available 1,371 1,524 1,308 72.2 5/5
#14 — australiaeast available 1,435 2,115 1,261 69.0 5/5
#15 — swedencentral available 1,534 18,168 1,410 64.5 5/5
#16 — southindia available 1,824 4,178 1,596 54.3 5/5

gpt-5.1 · 9 regions

Rank Region Status p50 (ms) p95 (ms) TTFT p50 (ms) Tokens/sec Samples
#1 — westus available 856 4,180 799 126.2 5/5
#2 ▲ 1 eastus available 897 979 849 120.4 5/5
#3 ▲ 1 eastus2 available 939 1,112 903 115.0 5/5
#4 ▲ 1 swedencentral available 1,354 16,924 1,229 79.8 5/5
#5 ▲ 1 switzerlandnorth available 1,482 1,672 1,367 72.9 5/5
#6 ▼ 4 centralus available 1,556 1,740 1,467 69.4 5/5
#7 — westus3 available 1,862 2,020 1,801 58.0 5/5
#8 ▲ 1 southcentralus available 1,915 2,165 1,828 56.4 5/5
#9 ▼ 1 northcentralus available 2,075 2,315 1,979 52.1 5/5

Retired: GitHub Models global endpoint (last measured 2026-10-06)

Historical p50 leaderboard · github-global · not current monitoring
Historical only: GitHub retired the GitHub Models service, so its global endpoint no longer answers. These retained measurements are not current checks and are no longer updated. Source.
Rank Model Status p50 (ms) p95 (ms) TTFT p50 (ms) Tokens/sec Samples Trend (p50)
— deepseek/deepseek-v3-0324 unknown — — — — — collecting…
— meta/llama-3.3-70b-instruct unknown — — — — — collecting…
— microsoft/phi-4 unknown — — — — — collecting…
— openai/gpt-4.1 unknown — — — — — collecting…
— openai/gpt-4.1-mini unknown — — — — — collecting…
— openai/gpt-4.1-nano unknown — — — — — collecting…
— openai/gpt-4o unknown — — — — — collecting…
— openai/gpt-4o-mini unknown — — — — — collecting…
— openai/gpt-5 unknown — — — — — collecting…
— openai/gpt-5-chat unknown — — — — — collecting…
— openai/gpt-5-mini unknown — — — — — collecting…
— openai/gpt-5-nano unknown — — — — — collecting…
— openai/o3 unknown — — — — — collecting…

How to read this

What the latency numbers do and do not mean

Each model is sent a small deterministic prompt several times. We record p50 and p95 round-trip time, TTFT (time to first token), and output tokens per second, then publish the medians. p50 is the headline number used for ranking.

The current Azure rows are region-attributable measurements from the probe runner to a single-region Azure OpenAI deployment. They still mix service timing with network distance, so treat them as relative evidence, not an SLA or a throughput guarantee. Reasoning models spend hidden tokens before their first visible token, so their TTFT is expected to be higher.

available means at least one timed call returned a trustworthy response. unknown means every sample failed, timed out, or returned no tokens.

The Trend column sparkline shows each model’s daily p50 over recent days. A ▼ means the model got faster, a ▲ means it got slower; new models show “collecting” until a few days of history accumulate.

The Rank column shows each row’s speed position (fastest = #1) and how it moved versus the previous snapshot: ▲ 2 means it climbed two places (relatively faster), ▼ 1 means it slipped one, — means unchanged, and new marks a row with no previous ranking.

Help make this page clearer

Two short answers; GitHub will open a draft for your review. No Forms, token, or automatic submission.

This repository is public. Review the text and image for private details. Opening the draft sends text/context to GitHub in its URL. Pasting or attaching an image uploads it to GitHub immediately.

Describe the desired outcome in plain text. This becomes the issue's ### Objective. After reviewing the issue, a maintainer can add azure-backlog to queue it for a scheduled agent; the website does not add that label or start a run.

Page context included in the draft

Nothing is posted by this website. Sign in to GitHub if needed, review, attach your screenshot, and choose Submit. Closing this panel clears the local draft and screenshot.