Free · No sign-up Client-side

DATABASES & SQL · FREE DEVELOPER TOOL

Replication Lag Calculator

DATABASES & SQL · FREE DEVELOPER TOOL October 2026 11 min read

Estimates how replication lag changes when write volume exceeds the replica’s apply rate, and how long catch-up takes. Free, instant and entirely client-side.

Replication lag is a rate mismatch, not a fixed delay.

Estimates how replication lag changes when write volume exceeds the replica’s apply rate, and how long catch-up takes.

DATABASES & SQLClient-sideWorked examples2026
Typical page size
8 KB
Source: PostgreSQL / SQL Server
Healthy index hit ratio
70–90%
Source: Workload-dependent
Connections per CPU core
10–20
Source: Pooling guidance
Replica lag target
≤ 1 s
Source: Async replication

Quick answer

Estimates how replication lag changes when write volume exceeds the replica’s apply rate, and how long catch-up takes. The calculator applies lag_growth = (write_rate − apply_rate) ÷ apply_rate; catch_up = lag × apply_rate ÷ (write_rate − apply_rate) and shows every intermediate value.

On this page
  1. 1Quick Answer
  2. 2Interactive Calculator
  3. 3Replication Lag Calculator: Calculation Breakdown
  4. 4Key Takeaways
  5. 5Databases & SQL Reference Numbers
  6. 6Implementation Approaches
  7. 7Reference Tables
  8. 8Formulas & How to Use
  9. 9Worked Examples
  10. 10Advanced Guide: Replication Lag Calculator
  11. 11Language Playbooks
  12. 12Glossary
  13. 13Mistakes & Pro Tips
  14. 14Use Cases
  15. 15Related Calculators
  16. 16Long-Tail Answers
  17. 17FAQs (25)
  18. 18References

Interactive Calculator

Enter a value — every result updates instantly, in your browser. Free forever, no sign-up.

Private Exact math

Replication Lag Calculator

Every input is evaluated locally in your browser with deterministic arithmetic.

Runs in your browser
Primary write rate (rows/s) Rows or transactions written per second.Replica apply rate (rows/s) Rows the replica can apply per second.Current lag (seconds) Current replication delay.Average row / WAL bytes Used to express lag as a data volume.

Live result

Lag is growing

The replica cannot keep up at the current write rate.

Lag will continue to increase until write pressure drops or replica capacity increases.
Diverging120 s lag

Lag growth per hour

40,000%

Catch-up time

never at current rates

Lag expressed as data

286.1 MB

Primary surplus

500 rows/s

Replication Lag Calculator: Calculation Breakdown

Every input, intermediate value and result row behind the estimate.

Calculated values and supporting details
Lag growth per hour
40,000%
Catch-up time
never at current rates
Lag expressed as data
286.1 MB
Primary surplus
500 rows/s
Replica utilization
111.1%
Recommended action
Add apply capacity or throttle writes

If writes keep exceeding apply capacity, lag will grow without bound.

Step-by-step calculation

  1. 1Primary surplus = 5,000 − 4,500 = 500 rows/s.
  2. 2Because writes exceed apply capacity, lag grows continuously.
  3. 3Lag volume ≈ 120 s × 5,000 rows/s × 500 B = 286.1 MB.

Key Takeaways

The 30-second version — the exact answers Google loves to feature.

  • 1Replication lag is a rate mismatch, not a fixed delay.
  • 2A replica that applies 90% of the write rate falls further behind every hour.
  • 3Formula: lag_growth = (write_rate − apply_rate) ÷ apply_rate; catch_up = lag × apply_rate ÷ (write_rate − apply_rate)
  • 4Default scenario: Lag is growing

Databases & SQL Reference Numbers

Useful benchmarks to sanity-check the output before you commit to a decision.

Typical page size
8 KB
Source: PostgreSQL / SQL Server
Healthy index hit ratio
70–90%
Source: Workload-dependent
Connections per CPU core
10–20
Source: Pooling guidance
Replica lag target
≤ 1 s
Source: Async replication
Headroom for storage growth
3×
Source: Capacity planning
Client-side calculation
100%
Source: No data uploaded

Implementation Approaches

Three practical ways teams use replication lag calculator, with the precision and safeguards each one needs.

Recommended

Plan with measured statistics

Best for: Production changes where the query plan matters

  • Method: Collect row counts, average row width, index hit ratios and buffer-pool size, then run the calculator with the real values.
  • Precision: Use table statistics refreshed within the last day and separate hot from cold data.
  • Safeguards: Confirm the estimate with EXPLAIN (ANALYZE) on a staging copy before changing indexes or pool sizes.

Design-time sizing

Best for: New schemas, migrations and capacity proposals

  • Method: Start from expected rows and column widths, add index and backup overhead, then model 12, 36 and 60 months of growth.
  • Precision: Express assumptions as ranges and keep the growth rate visible.
  • Safeguards: Revisit after the first month of real data; early growth is rarely linear.

Incident triage

Best for: Latency spikes, pool exhaustion and replica lag

  • Method: Compare current latency, active connections and lag against the baseline to identify which component moved first.
  • Precision: Use p95 and p99 rather than averages, with the same measurement window.
  • Safeguards: Correlate with application deploys, traffic changes and maintenance jobs before changing configuration.

Quick Reference Tables

Widths, ranges, boundary values and language types — the lookup tables you will come back to.

Database sizing quick reference

ItemTypical valueWhy it matters
Page size8 KB (PostgreSQL), 8 KB (SQL Server), 16 KB (MySQL InnoDB)Rows per page drives I/O and index fan-out
Row header23–24 bytesAdds up quickly on narrow tables
Index pointer6–8 bytesIncluded in every B-tree entry
Default fill factor90–100%Lower values leave room for updates
Backup compression2:1 to 5:1Depends on data entropy
Replica lag alert> 5 s or > 30 sMatch the business tolerance

Formulas & How to Use This Calculator

Core relationship

lag_growth = (write_rate − apply_rate) ÷ apply_rate; catch_up = lag × apply_rate ÷ (write_rate − apply_rate)

Unit convention

Inputs are primary write rate (rows/s), replica apply rate (rows/s), current lag (seconds), average row / wal bytes. Keep each unit consistent with the result rows; convert before comparing estimates that use different units or time windows.

Validation

1. Reproduce the headline from the displayed rows. 2. Compare the result with a measured, billed or benchmarked value. 3. Re-run with a boundary input and with a scaled input. 4. Record the assumptions, source and date next to the result.

How to use — step by step

  1. Open the Replication Lag Calculator and review the input defaults.
  2. Replace primary write rate (rows/s) with your measured or planned value.
  3. Set replica apply rate (rows/s) (Rows the replica can apply per second.).
  4. Set current lag (seconds) (Current replication delay.).
  5. Set average row / wal bytes (Used to express lag as a data volume.).
  6. Read the headline result and compare it with the supporting rows in the breakdown.
  7. Test one boundary value and one scaled value to understand the sensitivity.
  8. Copy or record the result together with the units and assumptions used.

Worked Examples

Real numbers and raw bits, fully worked — copy the pattern for your own code or protocol.

Default scenario

Inputs

Primary write rate (rows/s) = 5000; Replica apply rate (rows/s) = 4500; Current lag (seconds) = 120; Average row / WAL bytes = 500

Math

lag_growth = (write_rate − apply_rate) ÷ apply_rate; catch_up = lag × apply_rate ÷ (write_rate − apply_rate)

Result

Lag is growing · Lag growth per hour: 40,000% · Catch-up time: never at current rates · Lag expressed as data: 286.1 MB

Scaled scenario

Inputs

Primary write rate (rows/s) = 10000; Replica apply rate (rows/s) = 6750; Current lag (seconds) = 120; Average row / WAL bytes = 500

Math

lag_growth = (write_rate − apply_rate) ÷ apply_rate; catch_up = lag × apply_rate ÷ (write_rate − apply_rate)

Result

Lag is growing · Lag growth per hour: 173,333% · Catch-up time: never at current rates · Lag expressed as data: 572.2 MB

Advanced Guide: Replication Lag Calculator

Beyond the calculator — how to use replication lag calculator in real engineering, capacity and review decisions.

What the Replication Lag Calculator measures

Estimates how replication lag changes when write volume exceeds the replica’s apply rate, and how long catch-up takes. It turns ordinary project, infrastructure or runtime inputs into a visible number you can defend in a design review. The calculator is deliberately transparent: the result is derived from lag_growth = (write_rate − apply_rate) ÷ apply_rate; catch_up = lag × apply_rate ÷ (write_rate − apply_rate) rather than from an opaque benchmark, so you can change one assumption and immediately see how the answer moves.

The formula and its units

The core relationship is lag_growth = (write_rate − apply_rate) ÷ apply_rate; catch_up = lag × apply_rate ÷ (write_rate − apply_rate). Every field is labelled with its unit and expected range next to the input, and the breakdown repeats the intermediate values so a reviewer can verify the arithmetic. When you compare two results, make sure both were computed with the same units and the same time window; most apparent differences in databases & sql estimates are really unit or scope mismatches.

A worked check with the default inputs

With the default inputs (Primary write rate (rows/s) = 5000; Replica apply rate (rows/s) = 4500; Current lag (seconds) = 120; Average row / WAL bytes = 500), the calculator reports Lag is growing. Change Primary write rate (rows/s) and the headline moves to Lag is growing. That sensitivity is useful: if a small input change produces a large output change, the assumption deserves a source or a range rather than a single guess.

Inputs, assumptions and defaults

The inputs are Primary write rate (rows/s) (Rows or transactions written per second.); Replica apply rate (rows/s) (Rows the replica can apply per second.); Current lag (seconds) (Current replication delay.); Average row / WAL bytes (Used to express lag as a data volume.). Defaults are realistic starting points, not recommendations for your system. Replace them with measured values wherever possible: production metrics, billing exports, compiler sizeof output, provider documentation or historical project data. Keep the assumptions beside the result so the estimate can be reproduced later.

Reading a low or high result

A low result usually means small scale, generous headroom or optimistic assumptions; a high result means the opposite. Neither is automatically good or bad. Ask which input dominates the change, then compare the result with a second method such as a benchmark, a bill, a query plan or a pilot. Agreement between two independent methods is much stronger evidence than a single formula.

Common mistakes in databases & sql

Monitoring only current lag and not lag trend. Assuming a faster network fixes apply-side CPU or disk bottlenecks. Document the units, the measurement window and the scope, and re-run the calculation when the workload or architecture changes.

How to validate the result

Validate with three checks: reproduce the headline from the displayed rows, compare the estimate with a measured production value, and test a boundary case (zero, one, the maximum or a doubled input). If the three checks disagree, the model or the input is wrong. Record the validation date and the data source so the next reviewer can repeat it.

Where this fits in Databases & SQL

This tool supports query cost, table and index size, connection pooling, replication, backups, partitioning and sharding. Use it during design, capacity review, incident follow-up or cost planning. Pair it with the related calculators to cover adjacent assumptions, and keep the output with the design decision so future changes can be compared against a known baseline.

Limitations and precision

No estimate is more accurate than its inputs. The calculator assumes steady-state behavior, consistent units and the defaults described in the field help. Real systems have bursty traffic, fragmentation, retries, background jobs and measurement error. Where the result informs a commitment or a budget, add a range and a contingency rather than treating the headline as a guarantee.

Related calculations to run next

The most useful companion tools are Query Latency Calculator, Query Throughput Calculator, Database Backup Size Calculator, Database Storage Growth Calculator. Together they cover the neighbouring assumptions — for example scale, overhead, failure headroom and cost — so you can present a complete estimate rather than a single isolated number.

Language & Platform Playbooks

The same bit pattern behaves differently in every language. Here is how to adapt the conversion safely.

PostgreSQL

Use EXPLAIN (ANALYZE, BUFFERS) to validate query cost, pg_total_relation_size for table and index size, and pg_stat_activity plus pgBouncer metrics to size pools. For replication lag calculator, use the same units and time window described in the calculator so the result lines up with your platform data.

MySQL / InnoDB

Check EXPLAIN ANALYZE, information_schema.tables and innodb_buffer_pool_size. Keep the pool well below the server’s available RAM and monitor InnoDB row locks. For replication lag calculator, use the same units and time window described in the calculator so the result lines up with your platform data.

SQL Server

Compare estimated and actual execution plans, inspect sys.dm_db_index_usage_stats, and size the buffer pool and max worker threads from measured workload. For replication lag calculator, use the same units and time window described in the calculator so the result lines up with your platform data.

Cloud managed databases

Use the provider’s storage, IOPS and replica-lag metrics, and remember that backup size, retention and cross-region copies are billed separately. For replication lag calculator, use the same units and time window described in the calculator so the result lines up with your platform data.

Glossary: Key Terms Explained

Page
The fixed-size block a database reads and writes, usually 8–16 KB.
Selectivity
The fraction of rows an index or predicate is expected to match.
Fill factor
The percentage of each page filled with data, leaving room for updates.
Replica lag
How far a read replica trails the primary in time or applied transactions.
Cardinality
The number of distinct values in a column or index.

Common Mistakes & Pro Tips

Mistakes that break conversions

  • Monitoring only current lag and not lag trend.
  • Assuming a faster network fixes apply-side CPU or disk bottlenecks.
  • Mixing units or time windows when comparing two replication lag calculator results.
  • Treating the default values as a recommendation instead of a starting point.
  • Reporting a single number without the assumptions, range or measurement date behind it.

Pro tips for production code

  • Alert on lag trend and on estimated catch-up time, not only on a fixed lag threshold.
  • Measure the dominant input before refining the model; the largest uncertainty deserves the most attention.
  • Keep a short record of the inputs, result and date so future comparisons are meaningful.
  • Validate the estimate with a second method — a benchmark, a bill or production telemetry.
  • Pair this result with the related calculators (Query Latency Calculator, Query Throughput Calculator, Database Backup Size Calculator) for a complete picture.

Who Should Use This Calculator?

  • ▸ Diagnosing read-replica staleness.
  • ▸ Sizing a replica for a write-heavy workload.
  • ▸ Capacity review: turn primary write rate (rows/s) into a defensible planning number.
  • ▸ Design review: compare two architectures or configurations with the same assumptions.
  • ▸ Incident follow-up: quantify the gap between the estimate and observed behaviour.

Related Programming Calculators

Keep going — every tool below links directly into this workflow.

People Also Search For

Tap a long-tail question to jump to the matching FAQ answer.

Frequently Asked Questions (25)

Long-tail answers: each question targets a real Google search about replication lag calculator — click to expand.

Showing 25 of 25 answers.

Why does replication lag keep growing?
When the primary write rate exceeds the replica’s apply rate, the backlog grows linearly. Reducing write volume, adding apply workers, using a faster replica or splitting reads across multiple replicas can restore convergence.
What does the Replication Lag Calculator calculate?
Estimates how replication lag changes when write volume exceeds the replica’s apply rate, and how long catch-up takes. The output includes the headline value, the intermediate rows and the formula, so you can audit the result rather than accepting a black-box number.
What formula does the Replication Lag Calculator use?
It uses lag_growth = (write_rate − apply_rate) ÷ apply_rate; catch_up = lag × apply_rate ÷ (write_rate − apply_rate). The calculator evaluates the formula with the values shown in the input panel and displays each intermediate term in the breakdown.
What should I enter for primary write rate (rows/s)?
Rows or transactions written per second. The default is 5000; replace it with a measured value whenever one is available, and keep the same unit for every comparison.
What should I enter for replica apply rate (rows/s)?
Rows the replica can apply per second. The default is 4500; replace it with a measured value whenever one is available, and keep the same unit for every comparison.
What should I enter for current lag (seconds)?
Current replication delay. The default is 120; replace it with a measured value whenever one is available, and keep the same unit for every comparison.
What should I enter for average row / wal bytes?
Used to express lag as a data volume. The default is 500; replace it with a measured value whenever one is available, and keep the same unit for every comparison.
How do I interpret the Replication Lag Calculator result?
The headline is Lag is growing. The replica cannot keep up at the current write rate. A single number is less useful than the trend and the assumptions behind it.
What units does the Replication Lag Calculator use?
The inputs are Primary write rate (rows/s), Replica apply rate (rows/s), Current lag (seconds), Average row / WAL bytes. Units are shown on every field and repeated in the result rows. Do not mix decimal and binary units or seconds and milliseconds without converting first.
What are common mistakes when calculating replication lag calculator?
Monitoring only current lag and not lag trend. Assuming a faster network fixes apply-side CPU or disk bottlenecks. Re-run the calculation whenever the workload, architecture or pricing changes.
When should I use the Replication Lag Calculator?
Diagnosing read-replica staleness. Sizing a replica for a write-heavy workload. It is a client-side planning tool, not a substitute for production monitoring or a benchmark.
How can I validate the Replication Lag Calculator result?
Reproduce the headline from the displayed rows, compare it with a measured or billed value, and test a boundary input such as zero, one or double the normal value. If the checks disagree, correct the input or the model before using the result.
What is a worked example of the Replication Lag Calculator?
For Primary write rate (rows/s) = 5000; Replica apply rate (rows/s) = 4500; Current lag (seconds) = 120; Average row / WAL bytes = 500, the result is Lag is growing (Lag growth per hour: 40,000%; Catch-up time: never at current rates).
What related calculators should I use with the Replication Lag Calculator?
Use Query Latency Calculator, Query Throughput Calculator, Database Backup Size Calculator, Database Storage Growth Calculator to cover the adjacent assumptions. Running several related estimates is more reliable than over-tuning one number.
Is the Replication Lag Calculator free and private?
Yes. The calculator runs entirely in your browser, requires no sign-up and sends no inputs to a server. That makes it safe for approximate capacity planning, although production secrets and customer data should never be pasted into any web page.
Can I use the Replication Lag Calculator for production planning?
Use it as a first-pass model and confirm the result with production measurements, provider documentation or a staging benchmark. Add headroom for uncertainty, and record the date and data source so the estimate can be reviewed later.
How sensitive is the Replication Lag Calculator to primary write rate (rows/s)?
With the default value the result is Lag is growing; when primary write rate (rows/s) is changed to 10000, the result becomes Lag is growing. Use this comparison to identify which input deserves the most careful measurement.
How accurate is a database size estimate?
A size estimate is accurate to roughly ±20–30% when row width, index count and fill factor are known. Variable-length columns, TOAST/overflow storage, bloat and page fragmentation add uncertainty, so confirm with the database’s own size functions after loading real data.
Should I use decimal or binary units for database storage?
Database engines usually report binary units (KiB, MiB, GiB), while cloud bills often use decimal GB. This calculator shows binary units by default; convert with 1 GiB = 1.074 GB when comparing with provider pricing.
Why does the estimated query cost differ from EXPLAIN?
PostgreSQL cost units are planner-specific and assume sequential page cost 1.0 and random page cost 4.0 by default. Your server may use different settings, statistics, caching and parallelism, so treat the estimate as a relative comparison and confirm with EXPLAIN (ANALYZE, BUFFERS).
What does a typical Replication Lag Calculator output look like?
The default scenario shows Lag is growing with rows for lag growth per hour, catch-up time, lag expressed as data. The exact wording of each row is shown in the technical breakdown above.
How precise is the Replication Lag Calculator?
The arithmetic is exact for the values entered, but the result is only as good as the inputs. Engineering estimates typically carry ±10–30% uncertainty, and capacity models can be further off when traffic is bursty. Report a range and the main assumptions rather than a single deceptively precise number.
Does the Replication Lag Calculator include overhead?
It includes the overhead represented by its input fields: primary write rate (rows/s), replica apply rate (rows/s), current lag (seconds), average row / wal bytes. If your system has additional overhead — retries, replication, fragmentation, taxes or contingency — add it explicitly and document the adjustment.
How often should I re-run the Replication Lag Calculator?
Re-run it when the workload changes materially, when a provider or platform changes its limits or pricing, and at least once per planning cycle. Keep each result with the date and inputs so you can compare the trend instead of only the latest snapshot.
What is the best first step after using the Replication Lag Calculator?
Write down the three assumptions that most affect the result, then verify the largest one with a measurement. For databases & sql, that usually means checking a production metric, a bill or a documented limit before changing configuration.

Resources & Authoritative References

Further reading

Authoritative sources

Was this calculator helpful?

Last updated: October 2026 · Free forever · No sign-up · Part of Programming Calculators at Atlascalcs.com · All math runs in your browser