---
id: ADR-PFM-LLM-006
title: Create Local Monthly Allowance Accounts When Needed
product_area: platform
module: llm
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Create one allowance period per organization’s local month from configured limits or defaults, retaining
  charges, holds and running counts without a scheduled reset or departmental allocation.
constrains:
  - DOM-PFM-LLM-003
  - STATE-PFM-LLM-005
  - WF-PFM-LLM-001
  - WF-PFM-LLM-007
origin: >-
  The PLAT-M1 plan lists the default allowance and the local month as unapproved assumptions
  (services-platform:docs/milestones/plans/PLAT-M1-plan.md#4. Assumptions; FND-PFM-LLM-021); ceilings by D-3.
alternatives:
  - option: Use a common UTC month
    why_not: It resets at a boundary that can differ from the customer’s local calendar.
  - option: Run a monthly reset schedule
    why_not: It adds a job whose absence can block the next period.
  - option: Split allowance by department
    why_not: There is no implemented cost-centre allocation model in this module.
consequences:
  - AI provisioning performs no allowance creation.
  - Workspace purge removes scoped periods.
  - UTC reporting and local periods have a recorded unresolved boundary assumption.
  - Historical periods remain inspectable and correctable.
supersedes: []
evidence:
  - >-
    services-platform at ad3f6a6: modules/llm/services/persistence/allowance-periods.ts (derivePeriodKey,
    getOrCreateAllowancePeriod); llm.settings.ts; docs/debt/llm-cost-centre-allowances.md.
---

# Create Local Monthly Allowance Accounts When Needed

## Context

Customers need a reset calendar, while provisioning should not pre-create unused accounting rows.

## Decision

Create one allowance period per organization’s local month from configured limits or defaults, retaining charges, holds and running counts without a scheduled reset or departmental allocation.

## Alternatives Considered

Use a common UTC month: It resets at a boundary that can differ from the customer’s local calendar.

Run a monthly reset schedule: It adds a job whose absence can block the next period.

Split allowance by department: There is no implemented cost-centre allocation model in this module.

## Consequences

AI provisioning performs no allowance creation. Workspace purge removes scoped periods. UTC reporting and local periods have a recorded unresolved boundary assumption. Historical periods remain inspectable and correctable.
