Skip to content
FEAT-ECON-001: Economic Rebalance Execution

FEAT-ECON-001: Economic Rebalance Execution

Reference Number Version Effective Date Supersedes Authority Level
FEAT-ECON-001 3.0 2026-09-30 2.1 FEAT

Important

3.0 (2026-09-30), operator ruling. Versions 1.x–2.x executed economic changes by creating rows in the class-wide policy_versions / policy_transitions tables and activating them at operational boundaries. Those tables were never authorized as canonical and are retired (DOM-CLASS-003 §V, v2.4). This version replaces transition creation, activation, supersession and cancellation with one rule: each change is a new row in its owning domain’s table, carrying the instant from which it governs. The file keeps its former name so existing references resolve.

Owner decisions 2026-09-30 (incorporated in 3.0 before release). (a) The teacher no longer chooses an activation mode. “Apply Immediately” for rent is removed: a rent period already billed keeps its frozen terms either way, so it did exactly what the next-cycle option did, and offering both was misleading. Each change now takes effect the one way its owner defines (§VI–§VIII). (b) A policy-mode change never revokes a scheduled rebalance (§X).

I. Purpose

This specification defines lawful FEAT-layer execution of a teacher’s economic rebalance:

  • routing each selected change to the command that owns it,
  • recording a change for the owning domain’s next boundary,
  • refusing a change that cannot run in the requested mode.

This specification governs execution behavior only.

Economic governance law remains defined by: DOM-CLASS-003


II. Scope

This specification governs:

  • teacher rebalance workflows,
  • immediate execution,
  • next-boundary execution,
  • idempotent rebalance execution.

This specification does NOT define:

  • economic formulas,
  • policy legality,
  • operational timing legality,
  • solvency rules,
  • constitutional policy ownership.

III. Governing Authority

This specification is subordinate to:

  • FEAT-CORE-000
  • DOM-CLASS-003
  • DOM-CLASS-001
  • DOM-POL-001
  • INV-ARC-015
  • INV-ARC-016

IV. FEAT Execution Principles

FEAT-ECON-001 — FEAT Executes, Does Not Govern

The FEAT layer carries out a rebalance through the owning domains’ commands.

The FEAT layer MUST NOT define:

  • economic law,
  • policy legality,
  • operational timing legality,
  • supersession legality.

FEAT-ECON-002 — FEAT Is Idempotent

All rebalance execution MUST be idempotent.

Execution MUST include:

correlation_id
idempotency_key
feat_id
class_id

Duplicate execution MUST NOT record a change twice.


FEAT-ECON-003 — FEAT Writes Only Through the Owning Command

A rebalance keeps no record of its own. The owning command’s new row is the whole record of each change.

The FEAT MUST NOT:

  • rewrite a row of any policy table,
  • keep a second record of a change beside the owning row (no version, transition, queue or activation row),
  • skip a selected change and still report success.

FEAT-ECON-004 — FEAT Must Respect Sovereignty

Operational domains remain sole authority over their boundaries (DOM-CLASS-003 §VII).

The FEAT MUST NOT independently determine:

  • rent cycle closure,
  • insurance renewal legality,
  • accrual rollover legality.

V. Rebalance Execution Flow

Step 1 — Teacher Opens Rebalance Review

System displays:

  • current economic configuration,
  • recommended values,
  • projected impacts,
  • selectable changes.

Teacher selects the desired changes. There is no activation choice: the review states when each change takes effect (§VI–§VIII), and a submitted activation mode is ignored.

Step 2 — FEAT Routes Each Change to Its Owner

Each selected change is carried out by the command that owns it (FEAT-CLASS-005 §XI):

Change Owning command Record
Rent amount, rent late penalty rent supersession (DOM-POL-001 §VI.1) a new rent_settings row
Store price product-version supersession a new store_products version
Overdraft fee Economic Engine evolution (FEAT-CLASS-005) a new economic_engine version

A change type with no owning command is refused, not skipped. Insurance premiums are advisory in the review and change only through insurance management (FEAT-CLASS-003).

Grouped teacher rebalance actions MUST NOT collapse several domains into shared pending state. Terms of one contract (a rent amount and its late penalty) are recorded as one row of that contract.


VI. When Each Change Takes Effect

Change Takes effect
Rent amount, rent late penalty from the first rent period not yet billed (§VII)
Store price, overdraft fee at once (§VIII)

Rent has no “immediate” option: a rent period already billed keeps the policy_uuid it froze (DOM-OBL-001 §V.7), so a rent change can only ever govern the first period not yet billed. Execution MUST remain append-only and preserve historical replayability. Direct mutation of active policy state is prohibited.


VII. Next-Boundary Execution

A change whose owner has a later boundary is recorded now as a row of its owning table dated to that boundary (DOM-CLASS-003 §VII):

  • Rent — the start of the first rent period not yet issued. The open period is billed under the terms it froze; the next period issued takes the new row.

The row is pending until its date and visible as pending (DOM-CLASS-003 §X). Nothing is queued and nothing activates it later: no job, command or boundary hook runs when the date arrives.


VIII. Change Types Without a Later Boundary

Store prices change by product-version supersession, which retires the live version at once, and the overdraft fee by Economic Engine evolution with no operational boundary. Neither owning domain defines a later boundary, so both take effect at once, in the same submission as any rent change.


IX. Supersession

A later row of the same owning table supersedes an earlier one for the same effective instant (DOM-CLASS-003 §VIII). Superseded rows remain as history, remain replayable, and MUST NOT be deleted while any fact froze them.


X. Withdrawing a Scheduled Change

A scheduled change is a real row of its owning table. It is withdrawn the way any policy is changed: by recording another row for the same boundary through the owning domain’s own surface. No row is deleted or marked cancelled.

A policy-mode change MUST NOT withdraw, supersede or otherwise revoke a scheduled rebalance, and no other action may do so implicitly. Owner ruling 2026-09-30: “Scheduling the rebalance was an explicit teacher action. Changing mode should not implicitly revoke a separately requested future action. If we want cancellation, that should itself be explicit.” If a cancel action is ever offered it MUST be its own explicit teacher action.


XI. UI Interaction Contracts

Teacher Actions

Teachers MUST be able to:

  • see which economy changes are scheduled and when each takes effect,
  • navigate to the owning domain’s surface to change a scheduled row.

Operational Domain UI Integration

Operational domains SHALL expose:

  • pending future policy,
  • future economic impact,
  • the date a pending row takes effect,
  • current active policy.

XII. Operational Safety Constraints

The FEAT layer SHALL NOT:

  • mutate historical transactions,
  • mutate historical policy rows,
  • record a change anywhere but the owning table,
  • bypass idempotency enforcement,
  • perform write-on-GET behavior.

XIII. Observability Requirements

Rebalance execution MUST record, through the owning commands’ own evidence and the application log:

  • which changes were applied and which were scheduled, with the date a scheduled one takes effect,
  • refusals.

All execution evidence MUST preserve correlation and idempotency lineage and remain auditable through DOM-OPS observability systems.


XIV. Relationship to DOM-OPS

DOM-OPS owns:

  • operational telemetry,
  • execution traces,
  • retry traces,
  • incident evidence,
  • execution observability.

FEAT owns:

  • lawful orchestration behavior.

DOM-OPS runs no job that activates a scheduled change (DOM-OPS-001 §8).


XV. Architectural Outcome

This specification establishes:

  • one record of each economic change, in its owning table,
  • time, not a command, putting a scheduled change in force,
  • idempotent economic governance execution,
  • sovereign operational timing authority,
  • replayable execution history.

The FEAT layer therefore acts as constitutional execution orchestrator rather than policy-law authority.

Seat attribution (INV-ARC-019)

Policy/product authors are recorded as created_by_seat_id within the explicit class_id where the owning table carries an author. No User foreign key or principal author alias is permitted.

Edit canonical source on GitHub

Last updated: 2026-10-01