One engine, different plumbing
A retention policy's intent is uniform (retain/delete for N years), but each workload implements preservation in its own store. The retained copy has to live somewhere the user can't reach — and where it lives differs:
| Workload | Where the retained copy lives | Notes |
|---|---|---|
| Exchange (mail) | Recoverable Items folder (the hidden "dumpster") | Its own quota; a preserved mailbox that fills the dumpster needs attention |
| SharePoint / OneDrive | Preservation Hold library (hidden library per site) | A copy is written here on edit/delete; consumes site storage |
| Teams chat & channel messages | A hidden folder in the mailbox (chats → user mailboxes; channel messages → the group mailbox) via a substrate copy | Governed by Teams-specific retention policies, separate from Exchange |
| Teams files | Live in SharePoint/OneDrive | Governed by SharePoint/OneDrive retention, not Teams policy |
| Yammer/Viva Engage | Substrate mailbox copies | Its own policy location |
The Teams split (the big gotcha)
Teams is the classic trap: messages and files are governed separately. A "Teams" retention policy covers chat and channel messages; the files shared in Teams live in SharePoint/OneDrive and follow those policies. Set a Teams retention policy and assume the shared documents are covered, and you have a hole. Cover both, or you've retained the conversation and lost the attachment (or vice versa).
Copies you don't expect
Because preservation writes copies into these stores, two things follow that surprise admins:
- Storage consumption — the Preservation Hold library and the dumpster grow; aggressive retention on a busy estate has a real storage cost.
- "I deleted it, it's gone" is false — the substrate/dumpster/hold copy survives until retention expires and is fully discoverable by eDiscovery, regardless of what the user sees. This is the same "retention wins" principle, made concrete per workload.
Coverage-map discipline
Because scope is per location, the useful artefact is a matrix: each workload × which policy/label covers it × trigger × period. Gaps hide in the workloads nobody named — a new Teams estate, OneDrive accounts of leavers, a Viva Engage network.
What to watch (proofs)
- The coverage matrix:
Get-RetentionCompliancePolicyenumerated by location (Exchange, SharePoint, OneDrive, Teams chats, Teams channels) — the per-workload map, gaps included. - Teams completeness: confirm both a Teams-message policy and SharePoint/OneDrive coverage exist for Teams-shared files — the split, checked.
- Preservation footprint: Recoverable Items and Preservation Hold library growth (per-mailbox/site storage reports) — the cost of retention, and a filling dumpster before it bites.
- Discoverability proof: an item "deleted" by a user still returned by a content search / eDiscovery scoped to that workload — per-workload "retention wins", demonstrated.