Question
Closed · Answered

How should I record the scope of a service entitlement?

Wenke Li

A service package might include ten support sessions shared across several people in one customer organization. How should I model the package, eligible users, and usage records in Busabase? I need to distinguish who may use the service from how much of the shared allowance remains.

Report
Kelly
Team
· edited

Model three layers separately: the package (shared quota), who may use it, and usage that burns the quota. Do not store “remaining sessions” only as a sticky number on a person—that mixes eligibility with consumption.

*Diagram · package quota vs eligible people vs usage*

Suggested tables / fields

LayerWhat to store
Service packageCustomer org, product name, total allowance (e.g. 10), valid from/to, status
Eligible usersRelation to package + person (or seat); optional role; “active” flag
UsageRelation to package (+ optional person), date, session type, units consumed (usually 1)

Remaining = package total − sum(usage units). Prefer a Formula / rollup-style total, or recalculate in a view, instead of hand-editing “left” on every use.

Distinctions that matter

  • Eligible answers “may this person book?”
  • Usage answers “how much of the shared pool was used?”
  • Someone can be eligible and still have zero personal allotment—the pool is shared at package level.

How to verify

  1. Create a package with allowance 10 and two eligible people.
  2. Log three usages (any mix of people) → remaining should read 7.
  3. Deactivate one eligible user → they should disappear from booking views, but past usage stays on the package.
  4. Formal reports filter packages by status/dates so expired packs do not look open.

Boundaries

  • If each person has a private cap inside a shared pack, add personalCap on eligibility and still sum usage by person—do not replace the shared total.
  • Do not create ten duplicate “one-session” package rows to simulate a pool; one package + usage rows is clearer.
  • Cancellations: either delete/void the usage row or mark it void so remaining math ignores it.

Happy to sketch field types for your exact Base if you share whether booking is done by Agent or by form.

Report

Your reply

Sign in to join the discussion. Reading is always open; you only need an account to post.

Sign in