Skip to content

Capacity Model ​

The capacity engine lives in src/engine/capacity.ts.

Formula flow ​

Raw Pool TB
  └─ apply per-drive efficiency   (driveSizeTB × 0.92 by default)
       └─ subtract reserve drives (min(nodeCount, 4) × usablePerDriveTB)
            └─ subtract infra CSV footprint
                 └─ apply resiliency factor
                      └─ effectiveUsableTB

Resiliency factors ​

ModeFactorMin nodes
Two-way mirror0.51 (the only option on a single node)
Three-way mirror0.333...3
Dual parity0.5 to 0.8 all-flash, 0.5 to 0.727 with HDD capacity, by node count4
Nested two-way mirror0.252
Four-way mirror0.254, rack aware clusters only (2+2 to 4+4)

A rack aware 1+1 cluster uses two-way mirror. See single node and rack aware clusters for the rules and worked numbers, and the in-app References page for the Learn source of each.

Key outputs ​

FieldDescription
rawPoolTBTotal physical capacity before any deduction
usablePerDriveTBPer-drive usable capacity after the efficiency factor
reserveTBCapacity held back by reserve drives
infraVolumeTBPool footprint of the cluster infrastructure volume
availableForVolumesTBPool space available for user volumes before resiliency
netPoolTBAfter reserve deduction
resiliencyFactorFraction of available pool that becomes usable storage
effectiveUsableTBFinal usable TB; feed into volume planner

There is no blended efficiency factor: the old 0.92 constant was removed in 2.4.1. Raw drive bytes go through the pipeline above and the TB to TiB conversion happens once, at display.

Calculator TB vs WAC GB ​

effectiveUsableTB is in Calculator TB (1 TB = 1,000,000,000,000 bytes in the Excel model). When you create a volume in Windows Admin Center, you must enter WAC GB — the floor-to-nearest-GB conversion.

$$\text{WAC GB} = \lfloor \text{Calculator TB} \times 1000 \rfloor$$

This distinction is surfaced on every volume row and on the final export.

Released under the MIT License.