DNS propagation is the period of time between when you change a DNS record on your authoritative DNS provider and when that change is visible to users around the world. During this window, some resolvers and users will still see the old record, while others already see the new one.
When you edit a record (for example an A, AAAA, CNAME, or TXT record), the authoritative DNS servers are updated almost immediately. However, recursive resolvers operated by ISPs, hosting companies, and enterprise networks cache earlier answers for the duration of the record’s Time To Live (TTL). Until each cache expires and is refreshed, clients behind that resolver will continue to receive the old response.
Because every resolver has its own cache and refresh behavior, DNS propagation is not a single fixed delay. Instead, it is a distribution of times: a few resolvers update quickly, most update somewhere in the middle of the window, and a minority may hold on to old data for longer than expected.
This calculator provides an estimate of when different portions of the Internet are likely to pick up your new DNS records. It focuses on three points in time:
The core inputs are:
In a purely deterministic model, every resolver would keep a response exactly for TTL hours and then refresh. In practice, many implementations add a small random offset (jitter) so that not all clients re-query the authoritative servers at the same moment. That behavior is why propagation is a range instead of a single clean cutoff.
The calculator treats the effective cache time as varying around the configured TTL using a simple, symmetric range defined by the jitter percentage. Let:
TTL be the time to live in hours.j be the jitter as a fraction (for example, 10% jitter means j = 0.10).t_elapsed be the number of hours since the record update time.Then the theoretical earliest and latest cache expiry times are:
The calculator then defines an approximate median around the nominal TTL:
For each of these times, the tool compares them to the actual time that has already elapsed since your change. If more time has already passed than a particular threshold, that threshold is treated as effectively reached — in other words, propagation for that part of the distribution is considered to be complete.
The calculator surfaces three human-friendly data points:
For change windows and cutovers, you can think of these outputs as three stages: early adopters, majority, and long tail. The larger your TTL and jitter, the more spread out these stages become.
If you manage a critical cutover (for example, moving a production site or mail server), consider running the calculator before you make the change. Use the output to plan a maintenance window and communication with stakeholders.
Assume you update an A record at exactly 12:00 (noon) local time. The TTL is 4 hours, and you use the default jitter of 10%.
First, convert the inputs into the variables from the formulas:
TTL = 4 hoursj = 0.10Compute the earliest and latest expected cache expiration times:
t_min = 4 × (1 - 0.10) = 4 × 0.9 = 3.6 hours after 12:00, which is approximately 3 hours 36 minutes. So the earliest resolvers may start returning the new IP around 15:36.t_max = 4 × (1 + 0.10) = 4 × 1.1 = 4.4 hours after 12:00, which is approximately 4 hours 24 minutes. So the slowest resolvers in this model may not update until around 16:24.For the median in this simplified model, we use approximately TTL / 2:
t_median ≈ 4 / 2 = 2 hours after 12:00, so around 14:00 we expect roughly half of resolvers to have refreshed.When you run these numbers through the calculator, you would see an output similar to:
The exact wording and formatting will depend on the implementation, but this gives you an idea of the shape of the propagation curve: some users update after roughly 2 hours, most by around 3.5 to 4 hours, and a conservative tail may lag by a little over 4 hours.
The table below compares rough propagation characteristics for several typical TTL values, assuming a 10% jitter and a change made at 12:00 local time. These numbers are rounded for readability and are illustrative only.
| TTL (hours) | Earliest propagation (approx.) | Median propagation (approx.) | Latest propagation (approx.) | When to use this TTL |
|---|---|---|---|---|
| 1 | ~54 minutes after change | ~30 minutes after change | ~66 minutes after change | Frequent changes, testing, blue/green deployments. |
| 4 | ~3 h 36 min after change | ~2 h after change | ~4 h 24 min after change | Moderately dynamic services, planned cutovers. |
| 12 | ~10 h 48 min after change | ~6 h after change | ~13 h 12 min after change | Stable applications where query load reduction matters. |
| 24 | ~21 h 36 min after change | ~12 h after change | ~26 h 24 min after change | Very stable records such as long-lived MX or NS entries. |
Short TTLs accelerate propagation but increase query volume against your resolvers and authoritative servers. Longer TTLs reduce load and improve cache hit ratios but make urgent changes slower to roll out. Many operators temporarily lower TTL before a planned migration to balance these trade-offs.
This tool is intentionally conservative and simplified. When using the estimates for planning, keep the following points in mind:
You should treat the numbers from this calculator as planning guidance, not as guaranteed deadlines.
If your DNS change does not seem to have propagated within the expected window, consider the following checks:
Premium or managed DNS providers can sometimes help reduce real-world propagation issues through globally distributed anycast networks, smart caching defaults, and better observability into query patterns. The benefit is not that they “break the laws” of TTL, but that they apply sensible defaults and resilient infrastructure so that when resolvers do refresh, they receive consistent, up-to-date answers.