{{ result.summaryTitle }}
{{ result.primaryDisplay }}
{{ result.secondaryText }}
{{ badge.label }}
{{ layerStageUtilizationLabel }}
Database storage growth inputs
Pick a starting point for OLTP, analytics, managed cloud, or compliance storage growth.
Choose the closest engine family so overhead and maintenance guardrails match the workload.
Use the current table/data-file footprint for one primary database or shard.
{{ formatPercent(params.monthly_growth_pct, 1) }}
Use measured storage growth over the last 30-90 days when available.
%
Select the horizon that matches procurement or reserved-capacity review cycles.
{{ formatPercent(params.index_overhead_pct, 0) }}
Use observed index/data ratio, or start with 30-60% for B-tree heavy transactional schemas.
%
{{ formatPercent(params.wal_daily_pct, 1) }}
Use archive-log or WAL metrics; write-heavy systems can exceed the data growth rate many times over.
%
Model the retained recovery window, including log backups needed to replay to any point in that window.
days
Count independent storage copies for read replicas, HA standbys, or cross-region replicas.
copies
Enter current primary allocation, not backup repository size. Use 0 to skip runway warnings.
{{ formatPercent(params.fill_threshold_pct, 0) }}
Use 70-80% for production databases unless your platform enforces a separate reserve.
%
Optional handoff label; it does not change the math.
Use observed bloat or leave the profile default for a conservative planning pass.
%
Keep this outside steady table/index bytes so maintenance jobs do not collide with growth.
%
A value of 1.5 means the modeled data/index layer is divided by 1.5.
x:1
Managed snapshot billing can differ from export backups; use your observed backup storage metric when possible.
x:1
Raise this for slow archiving, replication lag, migration slots, or delayed standby windows.
hours
Use 0 for one retained backup set, 1 for a second geo/immutable copy, and so on.
extra
Set 0 to skip the max-allocation guardrail.
Leave 0 to omit cost pressure from recommendations.
$ /GiB-mo
{{ header }} Copy
{{ cell }}
{{ header }} Copy
{{ cell }}
{{ header }} Copy
{{ cell }}
Customize
Advanced
:

Introduction:

Database storage planning is not just a question of how large the tables are today. Table data is the visible starting point, but production capacity also carries indexes, engine page overhead, retained change logs, temporary work space, backup windows, standby copies, and the spare room needed to survive bursts. A database can still accept ordinary queries while the storage plan is already too tight for safe maintenance, restore testing, or a large write-heavy deploy.

Runway is the time between the current footprint and a chosen operating threshold. The threshold is usually lower than the physical end of a volume because databases need spare room to checkpoint, recover, rebuild indexes, hold transaction logs, and absorb growth while humans schedule a change. Running close to full can turn a routine capacity order into an emergency write outage or a failed backup.

  • Index-heavy schemas can add as much pressure as the table data that business teams see in reports.
  • Write-heavy systems can fill log or archive areas faster than their table growth rate suggests.
  • Long recovery windows keep older backups and log records alive, so the recovery footprint may dominate the storage bill.
  • Replica and regional copies multiply the operational footprint even when the primary database looks modest.

The vocabulary helps separate decisions that are often mixed together in a single storage number.

Primary storage
The active database allocation that must hold data files, indexes, engine overhead, local logs, temporary work, and planned headroom.
Recovery storage
Backups, snapshots, and retained log records that make point-in-time recovery possible over the chosen retention window.
Estate footprint
The wider storage total after primary space, recovery copies, and replica copies are considered together.
Database storage band showing data files, indexes, logs, backups, replicas, headroom, and a fill-threshold marker.

Engine vocabulary changes the details but not the planning problem. PostgreSQL records changes in write-ahead log (WAL) files, MySQL and InnoDB rely on redo logging and often binary logs for recovery flows, and SQL Server uses a transaction log with recovery-model behavior. In each case, sustained writes can make log storage grow faster than table data, and recovery settings decide how long those records must be kept.

Retention and replicas often change the answer more than another month of table growth. A short-lived development database may care mainly about primary allocation. A production system with point-in-time recovery, cross-region replicas, and immutable backup copies may spend most of its storage budget outside the primary data files.

Good forecasts start from measured growth and consistent units. A logical dump, a database catalog report, a storage-console allocation, and a monthly invoice can each be correct while counting different objects. Match each question with the right number, whether the concern is primary runway, recovery footprint, replica footprint, or total estate cost.

How to Use This Tool:

Use one primary database, tenant group, or shard group per run so the growth rate, retention rule, and replica count describe the same boundary.

  1. Choose Sizing profile for a starting scenario, then confirm Database engine. Engine choice changes the page-overhead allowance, local-log minimum, and maintenance wording used in the forecast.
    Changing the profile can rewrite several defaults at once. Recheck the advanced reserves after switching profiles.
  2. Enter Current data files with the unit that matches your database report. Use logical table or data-file size before indexes, logs, backups, and replicas are added.
  3. Set Monthly data growth and Forecast horizon. The forecast compounds table growth each month, then recalculates indexes, reserves, logs, backups, replicas, and headroom from the grown data size.
  4. Add Index overhead, Daily WAL/log generation, PITR backup retention, Read/HA replicas, Provisioned primary storage, and Planning fill threshold.
    A 70 to 80 percent fill threshold is usually a safer production planning range than running near the physical limit.
  5. Open Advanced when the default reserves do not match the workload. Adjust MVCC/table bloat reserve, Temp/maintenance workspace, compression ratios, Local WAL/log reserve, Extra backup copies, Autoscale maximum, and Blended storage cost.
  6. Review Input review or Forecast target. Fix any named invalid value before using the result; current data must be greater than zero, compression ratios must be at least 1, and the planning fill threshold must stay above zero.
    Do not treat a forecast as ready while Input review is visible. The result tables and charts need valid sizing inputs.
  7. Read Forecast Ledger, Storage Layers, and Runway Actions. Use Primary Runway Curve to time expansion and Layer Footprint Mix to see whether primary data, recovery storage, or replicas dominate the final footprint.

Interpreting Results:

Forecast target is the primary allocation needed at the end of the selected horizon after steady primary storage is divided by the planning fill threshold. The secondary line shows the estate footprint, which adds retained backups, retained logs, and replica copies. When a blended cost is entered, monthly run rate follows the estate footprint rather than the primary target alone.

Database storage result views and interpretation cues
Result view Read first Verification cue
Forecast Ledger Checkpoint, Primary target, Data files, Indexes, WAL/log, Backups, Estate, Cost/mo, and Alloc use. Compare the final checkpoint with the first month that crosses the fill threshold or autoscale cap.
Storage Layers Data files, Indexes, MVCC/table bloat, Temp workspace, Local WAL/log reserve, Primary headroom, PITR backups and logs, and Replica storage copies. Find the storage part that changes the expansion or budget decision.
Runway Actions Primary allocation, WAL/log pressure, Backup retention, Replica copies, Autoscale maximum, and Monthly run rate. Treat Critical, High, Cost driver, and low-buffer messages as follow-up work, not just labels.
Primary Runway Curve Primary target and steady primary use over each forecast month, with provisioned storage and fill-threshold lines when entered. Use the curve to schedule expansion before the crossing month.
Layer Footprint Mix The final estate split across primary data, indexes, operational reserve, headroom, backups, and replicas. Check whether retention or replicas are the budget driver.

A healthy runway label does not prove the database is operationally healthy. It only means the modeled steady primary storage stays below the chosen threshold for the selected horizon. Verify write rate, log archive throughput, replica lag, restore tests, and provider-specific limits separately.

If Provisioned primary storage is zero, runway messages become new-deployment sizing guidance instead of allocation warnings. If Autoscale maximum is lower than the forecast primary target, the cap can become the binding limit before the current allocation reaches its threshold.

Technical Details:

The forecast starts with logical table data because most other storage allowances scale from that base. Month 0 uses the current data size. Each later month applies the compounded monthly growth rate, then engine page overhead, index overhead, bloat reserve, temporary workspace, local log reserve, backups, and replicas are recalculated from the grown data size.

Primary target is intentionally larger than steady primary storage. Steady primary storage is the active working footprint: data files, indexes, bloat reserve, temporary workspace, and locally retained transaction logs. Dividing that working footprint by the fill-threshold fraction converts it into the allocation needed to keep the database at or below the planned utilization limit.

Formula Core:

The core forecast uses compounded data growth, percentage-based overheads, retained log windows, backup compression, replica copies, and the selected fill threshold.

Dm = D0(1+g)m data files = Dm+page overheadprimary compression steady primary = data files + indexes + bloat + temp + local log reserve primary target = steady primaryfill threshold fraction backup set = (backup base + retained log archive)(1+extra backup copies) estate footprint = primary target + backup set + replica copies

With the default PostgreSQL HA profile, 2 TiB of current data growing at 6 percent per month reaches about 8.08 TiB of logical table data after 24 months. After PostgreSQL page overhead, 45 percent index overhead, 18 percent bloat reserve, 10 percent temporary workspace, 8 percent daily WAL generation, 24 hours of local WAL retention, and an 80 percent fill threshold, the forecast primary target is about 19.0 TiB. One replica, 14 days of point-in-time recovery retention, and backup compression lift the estate footprint to about 47.7 TiB.

Database storage model terms
Term How it is modeled Why it matters
Indexes Percentage of grown table data, divided by the primary compression ratio. Covering, multi-column, and reporting indexes can grow close to the data they support.
MVCC/table bloat Percentage reserve from grown table data, outside compressed data and indexes. Dead tuples, purge lag, page splits, and delayed maintenance consume primary space.
Temp workspace Percentage reserve from grown table data for sorts, checks, rebuilds, and similar maintenance work. Large operations need scratch space before they improve the storage situation.
Local WAL/log reserve Daily log generation scaled by retained local hours, with a 1 GiB minimum for most engines and 2 GiB for SQL Server. Archive delays, replication slots, delayed standbys, or transaction-log backup gaps can fill disks quickly.
Backups and retained logs Compressed data, index, and bloat backup base plus retained log archive, multiplied by extra backup copies. Point-in-time recovery windows and copied archives can become a storage and cost driver.
Replica copies Replica count multiplied by data, indexes, bloat, and local log reserve. High availability and regional copies multiply the operational footprint.

Runway checks compare steady primary storage with the provisioned primary allocation. The crossing month is the first month where steady primary utilization is greater than or equal to the fill-threshold fraction. Autoscale checks are separate: the autoscale month is the first month where the primary target is greater than or equal to the entered autoscale maximum.

Database storage validation and boundary rules
Rule Boundary Effect on results
Current data files Must be greater than 0 before the forecast is meaningful. Invalid values trigger Input review instead of a forecast.
Compression ratios Primary and backup compression ratios must be at least 1. Values above 1 divide modeled primary/index or backup bytes.
Fill-threshold crossing Reported when steady primary utilization is greater than or equal to the threshold. The first crossing month becomes the primary runway label.
Autoscale cap crossing Reported when primary target is greater than or equal to the autoscale maximum. The autoscale cap can warn before the provisioned allocation is full.
Monthly cost Only shown when blended storage cost is greater than 0. Estate GiB is multiplied by cost per GiB-month.

Decimal units and binary units are both accepted. GB and TB use powers of 1000, while GiB, TiB, and PiB use powers of 1024. Keep the same unit family when comparing a forecast with cloud storage metrics, database catalog reports, and invoices.

Accuracy Notes:

This is a planning estimate. It does not inspect live database files, storage-provider billing records, backup catalogs, replica lag, or provider-specific maximums.

  • Use measured growth from database metrics or storage history instead of a single recent export size.
  • Keep primary and backup compression settings conservative until storage reports confirm them.
  • Validate WAL, redo, binary-log, or transaction-log generation during write-heavy periods, not only during normal traffic.
  • Check restore tests, recovery objectives, replication behavior, and cloud-provider storage limits separately from this capacity model.

Advanced Tips:

  • Use database catalog or storage-history measurements for Current data files and Monthly data growth; a logical export can be smaller than the live files it represents.
  • Compare Storage Layers with provider metrics before cutting retention. Backup and retained-log pressure may be cheaper to move to another class than to shorten below recovery objectives.
  • Keep Daily WAL/log generation tied to write-heavy periods such as batch loads, index rebuilds, migrations, or delayed replica catch-up, not only to average traffic.
  • Set Autoscale maximum high enough for the forecast target and the provider's growth rules. A low cap can become the first constraint even when current allocation still has buffer.
  • Use Blended storage cost as a planning signal for the total estate, then compare the result with actual invoices because backup storage, snapshots, replicas, and regional copies may price differently.

Worked Examples:

These cases show how the same table-growth idea can turn into different storage actions once logs, recovery, replicas, and caps are included.

PostgreSQL HA growth review

A 2 TiB primary using the default PostgreSQL profile, 6 percent monthly growth, 45 percent index overhead, 8 percent daily WAL generation, 14 days of PITR retention, one replica, 6 TiB provisioned primary storage, and an 80 percent fill threshold reaches a Forecast target near 19.0 TiB by month 24. Runway Actions can show primary allocation crossing at Month 5 and autoscale pressure at Month 17 when the cap is 12 TiB.

Analytics warehouse with long recovery retention

An 8 TiB analytics workload growing 9 percent monthly over 36 months, with 25 percent index overhead, 30 days of PITR retention, no replicas, 1.4:1 primary compression, 2.2:1 backup compression, and one extra backup copy can reach an Estate footprint near 594.5 TiB. If Layer Footprint Mix shows PITR backups and logs as the largest share, retention policy and archive copies need review before primary storage alone is expanded.

Autoscale ceiling issue

A MySQL workload with 1.2 TiB of data, 4.5 percent monthly growth, 38 percent index overhead, 5 percent daily log generation, one replica, 4 TiB provisioned primary storage, and a 3 TiB Autoscale maximum can show primary allocation runway later than autoscale runway. The Runway Actions autoscale row should drive the first change because the cap can be reached around Month 4 while the fill threshold is crossed later.

FAQ:

Should current data include indexes?

No. Current data files should describe table or data-file footprint before index overhead is added. Put index space in Index overhead so the forecast can separate table growth from index growth.

Why is primary target larger than steady primary storage?

The primary target divides steady primary storage by Planning fill threshold. At an 80 percent threshold, 8 TiB of steady primary storage needs a 10 TiB target so the database still has planned headroom.

What should I do if WAL or transaction logs are high?

Check archive throughput, transaction-log backup cadence, replication slots, delayed standby settings, and write bursts. The Runway Actions row labels WAL/log pressure as High or Watch and gives the trigger value behind that label.

Can this replace cloud-provider storage metrics?

No. Use it to model scenarios from known assumptions, then compare Forecast Ledger and Storage Layers with provider metrics, database catalog queries, backup storage, and billing records.

Why did I get an input review?

Input review appears when a required numeric boundary is not usable, such as current data at zero, a fill threshold at zero, or a compression ratio below 1. Correct the highlighted value and the forecast will return.

Why do GB and GiB results differ?

GB and TB use powers of 1000. GiB, TiB, and PiB use powers of 1024. Match the unit family to the database report, storage console, or invoice before comparing numbers.

Glossary:

WAL
Write-ahead logging, the PostgreSQL log stream used for crash recovery and replication.
Redo logging
An engine log that records changes so committed work can be recovered after a crash.
Transaction log
A database log that records changes needed for recovery, rollback, and point-in-time restore.
Point-in-time recovery
Restoring a database to a chosen time by combining a backup with retained log records.
Replica
A read, high-availability, or regional copy that requires its own storage allowance.
Planning fill threshold
The planned maximum utilization before the primary allocation is considered too full.
Estate footprint
The modeled total of primary target, backups, retained logs, and replicas.

References: