Every folder structure embeds a bet: that there is a single order of questions by which people will look for a document. Finance › 2026 › Contracts › Suppliers works for whoever thinks department-first. It fails for anyone who wants every contract expiring this quarter, regardless of area.

The practical limit of a folder tree

Three symptoms tell you the structure has burst:

  • The same document would need to live in two branches - and someone solves it with a copy.
  • Paths get so long that people share direct links, and the hierarchy becomes decoration.
  • Nobody finds anything without asking in chat who saved what where.

Designing the minimum column set

A good metadata set is short and mandatory. Five to seven columns per document type usually suffice: type, owning area, status, reference date, owner and confidentiality classification.

Every column must pass one test: will anyone filter or group by this? If not, the field is documentation rather than metadata - and can probably live inside the file itself.

Term Store: one vocabulary for the whole company

Free-text columns degrade fast: "HR", "H.R.", "Human Resources" and "hr " become four distinct values in any report. Managed metadata columns solve this at the source, with values drawn from a central, versioned vocabulary.

A useful side effect: renaming a term in the Term Store propagates to every document using it - with no bulk editing.

Views replace folder navigation

With metadata in place, each team gets its own entry point into the same archive, with no duplicated files:

  • My pending items: filtered by owner equals current user and status pending.
  • Expiring in 30 days: filtered by reference date, sorted by expiry.
  • By area: grouped by the area column with per-group counts.

JSON column formatting is worth applying to signal status visually - overdue in red, pending in amber. It is a cheap detail that changes how useful the library feels.

The list view threshold in practice

Large libraries hit the 5,000-item query threshold. The answer is not slicing the archive into folders: it is indexing the columns used in filters and making sure every view has an indexed filter that brings the set below the limit.

Done properly, a library with hundreds of thousands of documents behaves well - because no view tries to materialise the whole archive at once.

When folders still make sense

Folders remain useful in two cases: breaking permission inheritance for a specific set of files, and grouping deliverables of a project with a clear start and end. Outside that, a column is almost always the better choice.