ath/DocsBack to lath.com

The resolution ladder

Four steps, one order, and an answer you can read backwards.

Every entitlement question resolves the same way. The order does not vary by feature, by customer or by plan, which is what makes an answer explainable after the fact.

plan      what the subscription includes
grant     what was added on top, often temporarily
override  what an operator set deliberately, and it can only take away

Each step, and what it may do

Plan

The baseline, from the customer’s subscription. It is the only step that is the same for everyone on the same plan, which makes it the step you can reason about without looking anything up.

Grant

An addition with a reason and usually an expiry — a support credit, a trial extension, a migration allowance. Grants are the step that makes the ladder necessary: they are where the answer stops being derivable from the plan, and they are why a boolean on the user row was never going to hold.

Override

A deliberate withdrawal, set by an operator and recorded with who set it. An override can only take away — it denies a feature in an environment, and it beats every grant including an unlimited one. It cannot grant something the plan does not include, which is what keeps the plan answerable on its own.

Overrides are rare by design. A product where overrides are common has a plan model that does not fit its customers.

A step with nothing to say says so

When a step produces no answer it renders an em-dash rather than being skipped. The distinction matters more than it looks: a missing row and a row that ran and found nothing are different facts, and only one of them means something is misconfigured.

plan       150   pro
grant      +50   support credit · expires Sep 1
override    —    none set
                 ─────
effective  200

Reading that backwards tells you why the customer has 200 rather than 150, without opening anything else. That is the property the ladder exists for.

Three sources, one answer

The landing page claims three payment sources resolve to one entitlement. The ladder is how: a card charge, an invoice paid by transfer and an operator’s grant all enter at their own step, and the resolution is indifferent to which of them was involved.

Money is authoritative about what happened. Entitlement is authoritative about what is allowed now. Neither is authoritative about what should be — and that gap is the thing worth watching.

When those two disagree it is visible rather than inferred — see Operations for the mutations that can change either side.