Calculating expected Storage Needs - DataSet + Snapshots

From a filesystem perspective, yes.

From a “used size” perspective? No. A snapshot only retains space where it references blocks of data that is unique to the snapshot itself.

If a block exists on the live filesystem, then a reference by the snapshot does not retain any additional space that could be freed.

If a block exists on any other snapshot, the same is true as the above statement.

Only when a block is exclusively referenced by a particular snapshot (i.e, no other snapshots have pointers to it, nor does the live filesystem) will it contribute to the snapshot’s “used space”.

If you’re a visual person, you might find this helpful.

Hint: White stickers are the live filesystem, and can be removed independently. Color stickers are snapshots, and can only be added as a “set” (to existing white stickers) or completely removed as a “set”.