Say this first: Enable at account level so new catalogs inherit it, override downward only where you have a reason, and attribute the serverless maintenance spend per catalog from the operations history.
Remember these
- Enable at account level so new catalogs inherit coverage by default
- Override downward for sandbox catalogs and external-table catalogs
- Roll operations history up to an ownership mapping for chargeback
- Maintenance spend scales with write churn, so set that expectation early
Why: Inheritance is the whole design lever: enabling at the account means every catalog a team creates next quarter is covered without a ticket, which is the opposite of the per-table cron world. You then override at catalog or schema level for the exceptions — a sandbox catalog of throwaway tables where maintenance is wasted spend, or a catalog of external tables where it does nothing anyway. For attribution, the operations history carries the catalog and table, so you can roll maintenance DBUs up to whatever ownership mapping you keep, rather than leaving it as one unattributable platform line. The governance work that actually pays is pushing teams toward managed tables, since that is what decides coverage. And set the expectation early that maintenance spend scales with write churn, so a team that triples its ingest will see its maintenance line triple too.
SELECT catalog_name, SUM(usage_quantity) AS maintenance_dbus
FROM system.storage.predictive_optimization_operations_history
WHERE start_time >= date_trunc('MONTH', current_date())
GROUP BY catalog_name ORDER BY maintenance_dbus DESC
Senior depth: I treat it as a default-on platform policy with documented exceptions, because opt-in governance decays the moment the person who filed the tickets changes teams. The architecture work is less about the toggle and more about making managed tables the default landing place, since external tables are the real coverage hole. Then I make the spend visible per catalog monthly, so a team that sees its maintenance line jump asks the right question — what changed in our write pattern — rather than asking the platform team to turn it off.
Common mistake: Enabling per schema by request, which recreates the coverage-gap problem the feature was meant to remove.
Follow-up they will ask: Which catalog would you deliberately leave disabled, and how would you justify it?