Build Artifact Storage Calculator
Estimate retained CI artifact storage and forecast growth against a quota using build cadence plus retention, cache, and reserve assumptions.Storage flow visual unavailable.
| Storage layer | Amount | Canonical MiB | Planning detail | Copy |
|---|---|---|---|---|
| {{ row.label }} | {{ row.display }} | {{ row.canonicalMib }} | {{ row.detail }} |
Capacity status
{{ capacityReview }}
Highest-impact checks
- {{ item.label }}: {{ item.text }}
Calculation path
effective size × builds/day/ref × retention days × active refs gives ordinary retained artifacts.
Protected latest artifacts, cache allowance, and reserve are then added. The 12-month chart compounds artifact size and build cadence independently while retention and ref count stay fixed.
Continuous integration (CI) can create far more stored data than the size of one build suggests. Each artifact is multiplied by build frequency, retention time, and the number of branches or other references producing output. Caches, protected latest builds, and operational reserve add storage outside that basic retained set.
Capacity estimates help when setting retention policies, comparing storage quotas, or deciding which jobs should upload logs, packages, screenshots, and test recordings. The useful input is the average uploaded size from ordinary runs. A one-time release bundle or a single unusually small build can distort the forecast.
- Build cadence controls how many artifacts enter the retention window each day.
- Active refs multiply that cadence when branches, tags, or pull requests each retain their own outputs.
- Compression reduces the stored size once before retention and cache calculations.
- Keep latest protects one additional artifact per active ref after the ordinary retained set is counted.
- Quota headroom compares the modeled total with a capacity limit; it does not predict provider billing.
Retention is only one cleanup rule. Provider-specific expiry exceptions, deduplication, cache eviction, log aggregation, and artifacts uploaded by uncounted jobs can move actual usage. A sound plan compares the estimate with measured storage and revisits the assumptions when the pipeline changes.
How to Use This Tool:
Model one artifact-producing policy or project with a consistent average run rate.
- Enter the average Artifact size, Builds per day per ref, Retention period, and number of Active branches or refs. Count only jobs that upload into the modeled policy.
- Enter Compression savings and a Cache multiplier. Use zero cache multiplier for artifacts alone; 0.25 adds cache storage equal to 25% of retained artifacts.
- Choose whether to Keep latest per ref, then add a Reserve allowance if cleanup lag or release variance needs headroom.
- Enter an optional Storage quota and Monthly growth. Compare the current breakdown with the quota status and inspect the 12-month forecast before changing retention.
Interpreting Results:
Total storage adds retained artifacts, protected latest artifacts, cache, and reserve. A quota of zero deliberately omits comparison. With a positive quota, usage at exactly 80% remains Within quota; usage above 80% becomes Watch, and usage above 100% becomes Over quota.
The policy review also warns when latest artifacts are protected across more than 20 refs or when the retained build count exceeds 10,000. Those thresholds point to policies worth reviewing; they are not provider limits.
Forecast growth is a scenario, not a trend fitted to historical data. The same monthly rate is applied independently to artifact size and build cadence, so retained artifact storage grows faster than either input alone. Verify that assumption before using the later months for procurement.
Technical Details:
The model uses mebibytes (MiB) and converts a quota from gibibytes (GiB) using 1 GiB = 1,024 MiB. Provider reports expressed in decimal gigabytes will not match these binary units exactly.
Formula Core
For one modeled month, compression produces an effective artifact size E, while cadence, retention, and active refs produce retained build count N.
The retained set is EN. Latest protection adds Er when enabled, cache adds mEN, and reserve adds a percentage of the subtotal.
| Symbol | Meaning | Unit |
|---|---|---|
| A | Average uploaded artifact size | MiB per build |
| c | Compression savings | percent |
| b | Builds per day per ref | builds/day/ref |
| d | Retention period | days |
| r | Active refs | count |
| k | Latest-protection switch, 1 when enabled and 0 otherwise | ratio |
| m | Cache multiplier | ratio |
| q | Reserve allowance | percent |
| S | Total modeled storage | MiB |
At forecast month x, growth factor g = 1 + monthly growth percentage divided by 100. Artifact size and builds per day are each multiplied by gx. Retained artifact storage therefore contains g2x, while the protected-latest amount contains gx. The forecast reports months 0 through 12 without rounding intermediate values.
| Input group | Accepted model range |
|---|---|
| Retention and refs | 1 to 3,650 whole days; 1 to 1,000,000 whole refs |
| Compression and cache | 0% to 100% compression; cache multiplier 0 to 100 |
| Forecast allowances | 0% to 300% monthly growth; 0% to 300% reserve |
Rule Core
| Condition | Status |
|---|---|
| Quota is 0 GiB | No quota comparison |
| Total is less than or equal to 80% of quota | Within quota |
| Total is greater than 80% and less than or equal to 100% of quota | Watch |
| Total is greater than 100% of quota | Over quota |
An average 180 MiB artifact with 18% compression becomes 147.6 MiB. At 36 builds per day, 14 days of retention, and 6 active refs, the retained set uses 446,342.4 MiB. Latest protection and a 0.25 cache multiplier bring the total to 558,813.6 MiB, or about 545.7 GiB, before reserve.
Inputs outside supported numeric ranges are bounded to the accepted model range after parsing; blank and non-finite values produce an input error. Retention days and active refs are reduced to whole numbers.