# Use Member

> Per-class consume positions, commit-% listen, edge workload mapping, self-dispatch and telemetry MUSTS, ramp limits, and firm-limit fallback.

- 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

- `members/use.md`
- `specs/g2p/spec.md`
- `specs/desp/spec.md`
- `architecture/failsafe-model.md`
- `specs/gcap/spec.md`

---

---
title: "Use Member"
description: "Per-class consume positions, commit-% listen, edge workload mapping, self-dispatch and telemetry MUSTS, ramp limits, and firm-limit fallback."
---

A **Use Member** is the Grid 2 Member Element for a flexible large load. The living behavioral contract is `members/use.md` (**Status:** Draft — seeking input). Each one-minute interval the Member broadcasts a signed per-class **request to consume** (`+`) on G2P, listens for its Allocator’s per-class **commit-%**, self-dispatches within that commit-% and host-utility ramp limits, and reports **verified self-dispatch**. A missing or stale Commitment forces revert to the Grid 1 **firm load limit** or manual curtailment.

<Note>
`members/use.md`, G2P **26.0-draft**, DESP **26.0-draft**, and GCAP **26.0-draft** are living Draft files seeking input. RFC 2119 / RFC 8174 keywords in those files are normative. G2P does not yet specify wire format, encoding, per-element state machines, or conformance test vectors.
</Note>

## Status and stack position

| Surface | Role for Use |
|---|---|
| `members/use.md` | Behavioral MUST/MAY contract for the load Member |
| G2P §3.1 / §3.2 / §3.4 | Service Descriptor, Commitment, Response / Telemetry |
| DESP | Classes **A / B / C**, dynamic reclassification, C→B→A curtailment |
| GCAP | Deterministic per-class **commit-%**; headroom, then Buffers, then Use curtailment |
| Failsafe model | Firm-limit / manual-curtailment fallback when context is stale |

Use is one of three Member kinds (Use, Buffer, Source). Membership is spec compliance at a point of interconnection covered by a provisioned Allocation Domain, under commercial terms with the host utility. The smallest domain is a host utility plus a single flexible load.

Every Use Member MUST hold a stable element identifier bound to that physical point of interconnection. Identifier format is open (G2P recommends a domain-scoped hierarchical ID). v26.0 positions are **energy within the one-minute interval** on the bulk power system.

## Associated physical asset

Flexible large load: capable datacenter sites (any mix of flex-capable load and/or on-site power resources) and electrified industry.

Internal facility assets — GPUs, cooling, behind-the-meter storage, process lines — stay behind the Member. The Allocator never sees or directs those workloads; it clears **class-level positions only**.

## Interval contract

Grid 2 allocations apply to whole one-minute intervals. Clearing MUST finish so the Member receives **commit-%** with time to self-dispatch **before the interval opens**. Exact descriptor / clearing / publication deadlines and clock-sync rules are open in G2P.

Where a Grid 1 dispatch instruction conflicts with a Grid 2 allocation, **the Grid 1 instruction prevails**. Sub-minute primary controls (governor, AGC, protection) stay out of scope for the orchestration plane.

```mermaid
sequenceDiagram
  participant Use as Use Member
  participant Alloc as Allocator
  Note over Use,Alloc: One-minute interval (commit before open)
  Use->>Alloc: Service Descriptor — per-class request to consume (+)
  Note over Alloc: GCAP: headroom → Buffers → C then B then A
  Alloc-->>Use: Commitment — per-class commit-%, interval, domain, inputs version
  Use->>Use: Self-dispatch within commit-% and agreed ramps
  Use->>Alloc: Response / Telemetry — actual per-class dispatch
  alt Missing or stale Commitment
    Use->>Use: Fallback — Grid 1 firm load limit or manual curtailment
  end
```

### Broadcasts (G2P Service Descriptor)

<ParamField body="request to consume" type="signed position per DESP class" required>
One `+` consume position per service class over a forward time vector. Each position MUST be signed by the originating Member. Positions MUST be energy in the interval (v26.0).
</ParamField>

<ParamField body="class set" type="A | B | C" required>
DESP **Assured (A)**, **Preferred (B)**, **Best Efforts (C)**. G2P interaction-table names Firm / Semi-Firm / Flex map to A / B / C; naming reconciliation is an open item.
</ParamField>

<ParamField body="forward time vector" type="open" required>
Descriptor covers a forward vector. Length, resolution, and revision rules are unspecified.
</ParamField>

A Service Descriptor MAY be reissued each interval. Positions MAY be reclassified each interval (DESP dynamic classification). All Service Descriptors MUST be authenticated; integrity MUST be verifiable end-to-end.

### Listens (G2P Commitment)

<ResponseField name="commit-%" type="per-class percentage">
Allocator output to each Use Member for the **coming interval only**. Allocations expire with the interval.
</ResponseField>

<ResponseField name="interval">
Interval the Commitment applies to. MUST be present.
</ResponseField>

<ResponseField name="domain">
Allocation Domain the Commitment was computed in. MUST be present.
</ResponseField>

<ResponseField name="clearing inputs version">
Input digest / version the Allocator cleared against. MUST be present. Allocators SHOULD publish the digest in-domain.
</ResponseField>

A Member MUST treat a **missing or stale** Commitment as fallback-triggering. A Member that has not received a commit-% for the **current** interval MUST treat itself as in fallback. Explicit staleness timers remain open in G2P.

### Reports (G2P Response / Telemetry)

Each Member MUST report **actual per-class dispatch against its Commitment** so compliance is auditable and the overlay’s aggregate footprint is measurable. Verification granularity, metering source of truth, and attestation are open.

## Edge workload mapping

The Use Member owns all operational decisions:

- How to map internal workloads onto DESP classes
- Which demand is deferrable, and when
- Anticipating its own forward load

This is the **scale without singular operator** rule: every asset runs the same algorithm against the same observable signals. The Allocator holds no internal intelligence or discretion.

DESP §3 mapping is **informative only** (Emerald AI Flex 0/1/2/3 and ERCOT CLR/PCLR constructs). Standard per-facility-type guidance is an open item on `members/use.md`.

| DESP class | Informative workload hint | Curtailment rank |
|---|---|---|
| Traditional Firm (Grid 1) | Outside Grid 2; never curtailed by GCAP | Not a Grid 2 class |
| **A** Assured | ≈ Flex 0 / LPC-aligned firm portion; latency-sensitive inference | Last among Grid 2 |
| **B** Preferred | ≈ Flex 1–2 / CLR-PCLR dispatchable; checkpointed training, deadline batch | After C, before A |
| **C** Best Efforts | ≈ Flex 3; opportunistic / spot compute | First |

A domain MAY constrain the mix of classes a Member can declare (for example a minimum Class C share). Those limits are **commercial-terms** in the domain agreement, not protocol fields.

When constraints bind, GCAP reduces Use allocations in DESP order **C → B → A**, never touching Grid 1 Firm. **Buffer committed dispatch clears before any Use class is curtailed.** Within a class, curtailment MUST be proportional (connection size and differential request size). The exact proportionality formula is open.

## Self-dispatch and telemetry MUSTS

<Steps>
<Step title="Issue the descriptor">
Sign and send one consume position per class for the forward vector before the (still unspecified) descriptor deadline.
</Step>
<Step title="Wait for commit-%">
Accept only an authenticated Commitment that names this interval, this domain, and a clearing-inputs version. If it does not arrive, or is stale, enter fallback — do not invent a commit-%.
</Step>
<Step title="Self-dispatch">
MUST self-dispatch **within** the per-class commit-% for the interval, within parameters agreed with the host utility. MUST respect agreed ramp rates on every transition (interval-to-interval, into fallback, out of fallback).
</Step>
<Step title="Report verified self-dispatch">
MUST report actual per-class dispatch against the Commitment (G2P §3.4). Grid 1 verifies the overlay by aggregate footprint, not by inspecting facility internals.
</Step>
</Steps>

<Warning>
Do not treat unused requested-and-committed energy as automatically returned to the pool mid-interval. Whether undershoot recycles mid-interval is an explicit open item on `members/use.md`.
</Warning>

## Ramp limits

| Bound | Rule |
|---|---|
| Per-Member delta | GCAP: allocation deltas between consecutive intervals MUST respect that Member’s agreed ramp rates |
| All transitions | Failsafe model: into fallback, out of fallback, and between interval allocations MUST follow rates agreed with the host utility |
| Whole-pool fallback | Allocator MUST bound total cleared participation so simultaneous Member fallback stays inside manageable aggregate Grid 1 ramp limits |

Per-class snap-back / ramp envelopes (research cites 15-minute ramp discipline) are open in DESP. Quantitative domain-growth methodology is an open engineering question.

## Firm-limit fallback

On loss of Allocator, peers, or fresh context, or on a stale Commitment:

| Trigger | Required Use behavior |
|---|---|
| Missed / stale / invalid Commitment | MUST revert to Grid 1 baseline (**firm load limit**) **or** manual curtailment |
| Transition | MUST follow allowed ramp rates |
| Determinism | MUST be locally determinable from the Member’s own state and last-known configuration; MUST NOT depend on reaching a remote peer |
| Interval validity | Allocations are valid for their interval only |

Allocator-side complement: if constraint inputs are stale or the domain is partitioned, the Allocator MUST NOT clear; Members detecting a missed clearing fall back as above. Partition between peer Allocators MUST NOT trip Members in unaffected domains.

Open failsafe items that affect Use implementations: quantitative missed-interval thresholds, re-entry / hysteresis after fallback, coincidental-fallback stability, and audit/telemetry to verify fallback compliance.

<AccordionGroup>
<Accordion title="v26.0 scope and security posture">
v26.0 is energy consumed and provided inside the one-minute window. Transmission-level deployments are expected on private networks. Service Descriptors and Commitments MUST be authenticated. PKI, NERC CIP mapping, and replay protection are open (Discussion: Engineering).
</Accordion>
<Accordion title="What this spec does not yet define">
Wire format · intra-interval timing budget · identifier format · forward-vector length · staleness timer values · minimum telemetry schema · unused-allocation recycling · standard facility-type class maps · class-count extensibility · per-class SLA envelopes.
</Accordion>
</AccordionGroup>

## Open items (Use-owned)

Tracked on `members/use.md` and the linked protocol specs:

- Standard workload→class mapping guidance per facility type
- Minimum telemetry for commit-% compliance verification
- Behavior when actual load undershoots requested + committed amounts
- DESP naming (Assured/Preferred/Best-Efforts vs Firm/Semi-Firm/Flex)
- Enforcement of declared class behavior (ties to G2P §3.4)

## Next

<CardGroup>
<Card title="Buffer Member" href="/buffer-member">
Committed dispatch clears before any Use class is curtailed.
</Card>
<Card title="Allocator" href="/allocator">
No-discretion clearing that produces per-class commit-%.
</Card>
<Card title="Service classes" href="/service-classes">
DESP A/B/C, C→B→A order, and per-interval reclassification.
</Card>
<Card title="Failsafe model" href="/failsafe-model">
Firm-limit fallback, interval-only commits, locally determinable ramps.
</Card>
<Card title="G2P reference" href="/g2p-reference">
Descriptor, Commitment, and verified-self-dispatch message families.
</Card>
<Card title="Map workloads to classes" href="/map-workloads-to-classes">
Informative Flex 0–3 / CLR mappings; Allocator never sees internals.
</Card>
</CardGroup>
