# Minimum viable domain

> Smallest Grid 2 domain: one host utility plus one flexible load, transmission-owner constraint provisioning, and the connect-and-manage on-ramp.

- Repository: g2tf-org/g2tf-standards
- GitHub: https://github.com/g2tf-org/g2tf-standards
- Human docs: https://grok-wiki.com/public/docs/g2tf-org-g2tf-standards-436ba3f3e0ff
- Complete Markdown: https://grok-wiki.com/public/docs/g2tf-org-g2tf-standards-436ba3f3e0ff/llms-full.txt

## Source Files

- `architecture/allocation-domains.md`
- `architecture/overview.md`
- `architecture/design-principles.md`
- `members/allocator.md`
- `members/use.md`
- `rfcs/grid-2-rfc-1.pdf`

---

---
title: "Minimum viable domain"
description: "Smallest Grid 2 domain: one host utility plus one flexible load, transmission-owner constraint provisioning, and the connect-and-manage on-ramp."
---

The smallest Grid 2 **Allocation Domain** is a host utility and a single flexible load customer: one **Use** Member at a point of interconnection, plus an **Allocator** that clears that Member against Grid 1 constraints the **utility transmission owner** MUST provision. The domain needs no Buffer, no Source, no peer Allocator, and no multi-stakeholder consensus. It is the connect-and-manage on-ramp: voluntary, spec-compliant, and legal inside existing Grid 1 rules. Living text is Draft — seeking input (`architecture/allocation-domains.md`, `members/allocator.md`, `members/use.md`); RFC #1 is the immutable August 2026 source.

<Info>
An Allocation Domain is the set of Member Elements cleared by a common Allocator (or Allocator hierarchy) against a common set of Grid 1 constraints. Domains nest later (local congestion zone → utility / balancing authority → regional RTO/ISO). The minimum viable domain is the leaf of that nest, not a different protocol.
</Info>

## What must exist

| Role | Minimum | Out of scope for this domain |
|---|---|---|
| Grid 1 custodian | Utility transmission owner provisions local and regional constraints | Regional system operator MAY add capacity constraints; not required |
| Overlay clearing | One Allocator for the domain; GCAP 26.0-draft; no discretion | Federation announcements, coupled-zone headroom |
| Member | One Use Member (flexible large load / capable datacenter / electrified industry) | Buffer, Source, additional Uses |
| Transport | G2P 26.0-draft: Service Descriptor, Commitment, Response / Telemetry | G2P Federation Announcement |
| Classes | DESP A / B / C above traditional Firm (Grid 1) | Domain class-mix limits (commercial terms, not protocol) |
| Clock | One-minute interval; energy-in-the-interval (v26.0) | Voltage support, IEEE 2030.5 distribution devices |
| Commercial | Terms with the host utility (flex enforcement, class limits, charging) | Protocol-enforced prices or settlements |

```mermaid
flowchart TB
  subgraph g1["Grid 1 custodians"]
    TO["Utility transmission owner\nMUST provision local + regional constraints"]
    RSO["Regional system operator\nMAY add capacity constraints"]
  end

  subgraph plane["Grid 2 overlay — minimum domain"]
    ALLOC["Allocator\nGCAP: headroom → buffers → C-B-A\nMUST NOT clear on stale inputs"]
    USE["Use Member\nG2P Service Descriptor + verified self-dispatch"]
  end

  subgraph phys["Physical interconnection"]
    LOAD["Flexible load at a provisioned POI\nself-dispatch within commit-%"]
    FIRM["Grid 1 firm load limit\nfallback on missed / stale Commitment"]
  end

  TO -->|"constraint inputs"| ALLOC
  RSO -.->|"optional"| ALLOC
  USE -->|"per-class request to consume"| ALLOC
  ALLOC -->|"per-class commit-%"| USE
  USE --> LOAD
  USE -->|"loss of peers / stale commit"| FIRM
```

RFC #1 Figure 5 is a richer utility-level picture (multiple Uses plus a Buffer). The minimum viable domain is smaller: drop every Member except one Use. Figure 6 (federation) is Phase 2, not the on-ramp.

## Connect-and-manage on-ramp

Grid 2 membership is voluntary and can exist distinct from other grid and market requirements, the same way emerging connect-and-manage schemes already do. The design assumes parties are willing to agree on those principles; it does not require universal application.

| On-ramp property | Spec rule |
|---|---|
| Capital | No capital deployment required to stand up the overlay |
| Consensus | No multi-stakeholder consensus process; two parties suffice |
| Rules fit | Transmission-owner connect-and-manage standard inside existing Grid 1 rules |
| Admission | No Grid 2 admission process; membership is spec compliance at a qualifying POI in a provisioned domain |
| Authority | No Grid 2 element derives authority from the protocol; the protocol carries Grid 1 custodian constraints |
| Scale | Serves and sits inside Grid 1 at any scale; start local, federate later |

Technical membership: a conformant protocol implementation at a POI covered by a provisioned domain, under commercial terms with the host utility. Commercial participation terms — enforcement of flex capabilities, class limits, charging for Grid 2-enabled use — stay in the domain agreement. They are not G2P, GCAP, or DESP fields.

<Warning>
Hosting and operational responsibility for the Allocator (utility-operated versus third-party under utility authority) is an open item. Authority still stays with the transmission owner: whoever hosts the process MUST clear only against that owner's provisioned constraints.
</Warning>

## Constraint provisioning

The transmission owner MUST provision the Allocator with the local and regional constraints that bound clearing. A regional system operator MAY additionally provision capacity constraints. Peer announcements MUST NOT appear in a minimum domain; if they later do, they MAY add boundary headroom but MUST NOT relax local limits.

Each interval the Allocator clears against:

<ParamField body="grid_1_constraints" type="custodian-provisioned set" required>
Zone power production capacity, transmission constraints, and target reserves. Optionally power distribution factors and Dynamic Line Rating dynamics.
</ParamField>

<ParamField body="member_service_descriptors" type="G2P §3.1" required>
In-zone signed positions. For the minimum domain this is one Use Member: per-class request to consume (+) over a forward time vector, in units of energy within the interval.
</ParamField>

<ParamField body="peer_allocator_announcements" type="G2P §3.3">
Not required. Omit until Phase 2. An Allocator that later expects a coupled-boundary announcement and does not receive it MUST clear as if that boundary adds no headroom.
</ParamField>

<ParamField body="input_digest" type="Commitment field" required>
Commitments MUST identify the interval, the domain, and the clearing-inputs version they were computed against. Allocators SHOULD publish the input digest inside the domain so any party with the same inputs can reproduce GCAP.
</ParamField>

Which existing transmission-owner signals to use, and how to standardize them, is a headline Engineering open question (RFC #1). The Allocator holds no internal intelligence: identical inputs MUST produce identical allocations.

## Interval loop

Only the Member ↔ Allocator pattern runs. Allocator ↔ Allocator federation is not part of the minimum domain.

```mermaid
sequenceDiagram
  participant TO as Transmission owner
  participant A as Allocator
  participant U as Use Member
  participant G1 as Grid 1 POI

  TO->>A: Provision / refresh Grid 1 constraints
  Note over U,A: One-minute interval; commit before interval opens
  U->>A: Signed Service Descriptor (per-class consume +)
  A->>A: GCAP: headroom, then buffers, then C→B→A
  alt Fresh constraints
    A->>U: Commitment (per-class commit-%, interval, domain, input version)
    U->>G1: Self-dispatch within commit-% and agreed ramp rates
    U->>A: Response / Telemetry (verified self-dispatch)
  else Stale inputs, partition, or missed Commitment
    A--xU: MUST NOT clear
    U->>G1: Revert to firm load limit or manual curtailment
  end
```

Normative Use obligations in this domain:

- MUST self-dispatch within its per-class commit-% for the interval, within parameters agreed with the host utility.
- MUST report verified self-dispatch (G2P §3.4).
- MUST respect agreed ramp rates on all transitions (into allocation, between intervals, into fallback).
- MUST treat a missing or stale Commitment as fallback.

The Allocator never sees internal workloads. The Use Member maps inference, training, batch, and on-site resources onto DESP classes at the edge. Firm (Grid 1) service is outside GCAP and is never curtailed by Grid 2.

<Note>
Grid 2 clearing MUST finish so the Member receives commit-% with time to self-dispatch before the interval opens. Exact descriptor / clearing / publication deadlines are still open. Where a Grid 1 dispatch instruction conflicts with a Grid 2 allocation, Grid 1 prevails.
</Note>

## Failsafe at one-Member scale

Failure of the overlay MUST NOT leave the physical interconnection worse than the pre-Grid 2 status quo.

| Condition | Required behavior |
|---|---|
| Stale constraint inputs or domain partition | Allocator MUST NOT clear |
| Missed or stale Commitment | Use MUST revert to Grid 1 baseline (firm load limit) or manual curtailment |
| Ramp | Transitions MUST stay inside host-utility ramp rates |
| Pool size | Participating pool MUST be sized so simultaneous fallback stays inside Grid 1 system ramp limits — binding even when the pool is one load |
| Determinism | Fallback MUST be locally determinable from the Member's own state and last-known configuration; it MUST NOT depend on reaching the Allocator |

Transmission-level deployments are expected on private networks. Service Descriptors and Commitments MUST be authenticated. NERC CIP mapping and key management remain open.

## Stand up the domain

<Steps>
  <Step title="Anchor authority and commercial terms">
    The host utility transmission owner agrees connect-and-manage principles with the single flexible load. Put flex enforcement, any class-mix limits (for example a minimum Class C share for expedited interconnection), charging, and ramp rates in the domain agreement — not in protocol messages.
  </Step>
  <Step title="Provision the Allocator">
    Feed the Allocator the required Grid 1 set: zone production capacity, transmission constraints, target reserves. Optionally add DLR and distribution factors. Decide who hosts the process; keep constraint authority with the transmission owner. Do not wait for a regional Allocator or peer announcements.
  </Step>
  <Step title="Bind the Use Member">
    Give the Member a stable element identifier at the physical POI inside the provisioned domain. Implement G2P Service Descriptor, Commitment listen, and Response / Telemetry. Map facility workloads onto DESP A / B / C locally. Keep traditional Firm load on the Grid 1 path.
  </Step>
  <Step title="Run Phase 0 shadow mode">
    Exchange and track the full stack each minute. Execute only the Grid 1 baseline (what would have happened anyway). Confirm: Commitments carry interval, domain, and input version; identical inputs reproduce GCAP; a withheld clearing drives the Use Member to its firm-limit fallback without a remote call.
  </Step>
  <Step title="Graduate only after the dry run">
    Phase 1 Local Vertical Integration: execute commit-% at the POI inside existing rules (RFC #1 cites ERCOT PCLR and PJM IRAS/PRD as the operational layer this stack is meant to automate). Phase 2 Regional Federation is later: announce-and-listen with peer Allocators. Partition between peers MUST NOT trip this Member if local constraints remain fresh.
  </Step>
</Steps>

<Check>
Phase 0 verification: the Use Member can reproduce the Allocator's commit-% from the published input digest; injecting stale constraints causes no-clear plus firm-limit fallback; no physical flex is taken until Phase 1.
</Check>

## What this domain does not do

- It does not replace NERC, FERC, utility, or TSO/ISO obligations. All assets continue to meet their Grid 1 requirements.
- It does not settle energy or publish prices. Coordination is protocol-based; commercial settlements stay on Grid 1's slower clock.
- It does not require Buffer or Source Members. GCAP still orders Buffers before load curtailment when they exist; with none present, clearing is headroom then C → B → A.
- It does not need to be universally applied in the utility territory.
- It does not certify conformance. Certification / test criteria for "spec compliance" are open, as is whether domains publish a machine-readable descriptor (constraint scope, class policy, ramp limits).

## Open items that bind a first domain

| Item | Where it lives |
|---|---|
| Certification / conformance tests for spec compliance | `architecture/allocation-domains.md` |
| Machine-readable domain descriptor | same |
| Member present in overlapping local + regional domains | same |
| Standardize transmission-owner constraint signals | RFC #1 Engineering; `members/allocator.md` |
| Allocator hosting (utility vs third-party under utility authority) | `members/allocator.md` |
| Input-digest publication and intra-interval timing budget | GCAP §5, G2P §4 |
| Minimum telemetry for commit-% compliance | `members/use.md` |
| Pool-sizing methodology for whole-pool fallback | `architecture/failsafe-model.md` |
| Commercial terms: flex enforcement, class limits, charging | RFC #1; DESP §4 |

Report Phase 0 implementation experience in GitHub Discussions. Proposed normative text goes to PRs on `architecture/`, `members/`, or `specs/`. RFC #1 corrections are Issues labeled `errata`.

## Next

<CardGroup>
  <Card title="Allocation domains" href="/allocation-domains">
    Nesting, transmission-owner authority, voluntary membership, commercial terms outside the protocol.
  </Card>
  <Card title="Run Phase 0 shadow mode" href="/phase-0-shadow-mode">
    Dry-run the stack, execute only the Grid 1 baseline, then Phase 1 and Phase 2.
  </Card>
  <Card title="Provision constraint inputs" href="/provision-constraint-inputs">
    Required Grid 1 set, optional DLR and distribution factors, digests, no peer relaxation of local limits.
  </Card>
  <Card title="Use Member" href="/use-member">
    Per-class consume positions, commit-% listen, edge mapping, self-dispatch MUSTS, firm-limit fallback.
  </Card>
  <Card title="Allocator" href="/allocator">
    No-discretion GCAP clearing, custodian inputs, withhold-on-stale, whole-pool ramp sizing.
  </Card>
  <Card title="Overlay and Grid 1" href="/overlay-and-grid-1">
    Membership without a perimeter, NERC/FERC/TSO non-interference, coordination without prices.
  </Card>
</CardGroup>
