> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nomos.energy/llms.txt
> Use this file to discover all available pages before exploring further.

# Grid Fee Reductions (§14a EnWG)

> Quote, order, and track Module 1, 2, and 3 grid fee reductions for customers with controllable consumption devices.

[§14a EnWG](https://www.gesetze-im-internet.de/enwg_2005/__14a.html) governs the relationship between a household and its grid operator (Verteilnetzbetreiber, VNB) when that household runs a "controllable consumption device" (steuerbare Verbrauchseinrichtung) over 4.2 kW. Heat pumps, wallboxes, home batteries, and AC units all qualify. Under the BNetzA ruling [BK6-22-300](https://www.bundesnetzagentur.de/enwg14a), every VNB is obliged to throttle these devices to maintain grid stability when needed and, in exchange, has to grant the customer a reduction on their grid fees.

## The two paths

The customer chooses one of two paths.

### Module 1, optionally with Module 3

Module 1 is a flat annual deduction on the base grid fee, available to anyone with a registered §14a-eligible device. For a heat pump customer consuming 5,000 kWh/year, it's worth around 120 to 155 EUR/year net by the [BNetzA](https://www.bundesnetzagentur.de/enwg14a) formula `80 EUR + (Standard-AP × 3,750 kWh × 0.2)`.

Module 3 stacks on top and adds a time-variable grid fee with three windows (low, standard, peak). It can be worth another 100 to 200 EUR/year if the customer plans high-demand hours around the cheap windows. Module 3 requires an intelligent metering system (iMSys) and can only be ordered together with Module 1.

### Module 2, on its own

A 60% reduction on the variable (kWh) grid fee, applied through a separate sub-meter behind the controllable device. Savings scale with consumption: a wallbox doing 4,000 kWh/year typically saves 150 to 250 EUR/year. Module 2 cannot be combined with Module 1 or Module 3.

<Tip>
  Module 1 + Module 3 is the default path for most setups: it stacks reliably,
  needs no extra metering hardware beyond the iMSys, and works for any
  §14a-eligible device.
</Tip>

## How time-variable grid fees work (Module 3)

A Module 3 schedule splits the day into three windows:

* **NT (Niedrigtarif):** the cheap window, typically a few ct/kWh below the standard rate.
* **ST (Standardtarif):** the regular grid fee, applied outside NT and HT hours.
* **HT (Hochtarif):** the expensive window, typically a few ct/kWh above the standard rate.

Each VNB publishes its own windows and price spread; schedules are revised at least annually.

**Example: Netze BW, 2025/26** ([source](https://www.netze-bw.de/neuregelung-14a-enwg)):

|       | NT          | ST              | HT          |
| ----- | ----------- | --------------- | ----------- |
| Time  | 10:00–14:00 | rest of the day | 17:00–22:00 |
| Price | -7 ct/kWh   | baseline        | +7 ct/kWh   |

A customer who shifts an EV charge from 18:00 to 12:00 saves around 14 ct/kWh on grid fees.

## How to order

<Steps>
  <Step title="Enable the modules on your plan">
    The plan needs §14a enabled with the modules you want to sell. Ask Nomos
    support to enable them. The modules apply to consumption plans only: feed-in
    subscriptions pay no grid fees, so §14a requests on them are rejected.
    Module 3 additionally requires the customer's meter to be a smart meter
    (iMSys), see [Smart meters](/guides/order-smart-meters).
  </Step>

  <Step title="Show the reduction in the quote">
    Pass `14a_module_1=true` to [Retrieve a
    quote](/api-reference/plans/retrieve-a-quote) and the response includes a
    negative line item for the pauschale Netzentgeltreduktion under the `base`
    component. For Module 2, pass `14a_module_2=true` instead: the quote drops
    the base grid fee and prices the variable grid fee at the reduced rate. The
    [hosted checkout](/guides/hosted-checkout) renders this automatically.
  </Step>

  <Step title="Order at checkout, or after the subscription exists">
    During checkout, include a `product_orders` entry of `type: "14a_enwg"` with
    the modules flagged on [Create a
    subscription](/api-reference/subscriptions/create-a-subscription). For an
    existing subscription, call [Create a grid fee
    reduction](/api-reference/grid-fee-reductions/create-a-grid-fee-reduction)
    with the subscription ID and `type` (e.g. `enwg-14a-module-3`) in the body.
  </Step>

  <Step title="Track status">
    Use [List grid fee
    reductions](/api-reference/grid-fee-reductions/list-grid-fee-reductions)
    with a status filter such as `filter[status][eq]=rejected` or
    `filter[status][in]=intended,ordered` to monitor a cohort, or [Retrieve a
    grid fee
    reduction](/api-reference/grid-fee-reductions/retrieve-a-grid-fee-reduction)
    for a single one.
  </Step>
</Steps>

<Note>
  The quote endpoint models Module 1 and Module 2. Module 3 doesn't surface in
  the quote because its savings depend on the customer's load-shifting behaviour
  against their VNB's specific schedule.
</Note>

Behind the scenes Nomos creates one `grid_fee_reduction` per requested module and sends an EDIFACT order to the VNB once the subscription is confirmed.

## Status lifecycle

| Status      | Meaning                                                                                                  |
| ----------- | -------------------------------------------------------------------------------------------------------- |
| `intended`  | Order has been recorded but the subscription isn't confirmed yet. No EDIFACT message has been sent.      |
| `ordered`   | EDIFACT order has been sent to the VNB. Awaiting their reply.                                            |
| `activated` | The VNB confirmed the reduction. Billing applies it from `valid_from`, which can still be in the future. |
| `ended`     | The reduction has stopped (subscription ended, or the customer switched modules).                        |
| `rejected`  | The VNB declined the order. Inspect the reason, fix the underlying cause, then re-order.                 |

## Clearing rejections

Rejections are part of normal operation, not an exception. For Module 1, the most common cause is that the controllable consumption device hasn't been registered with the VNB yet. The customer (or their installer) registers the device through the VNB's portal; once that's done, you retrigger the order.

You can drive clearing through the API or the [dashboard](https://dashboard.nomos.energy). The dashboard view also shows the rejection reason returned by the VNB and lets you start a clearing conversation directly.

<Warning>
  Don't loop on `POST /grid-fee-reductions` to "force" a reorder while one is
  already `ordered`. The API blocks duplicates with a `400` carrying the error
  code [`duplicate_grid_reduction`](/api-references/errors).
</Warning>

## FAQ

<AccordionGroup>
  <Accordion title="Can I add a module after the customer is live?">
    Yes. Customers often install a heat pump or wallbox months after switching
    supplier. Call [Create a grid fee
    reduction](/api-reference/grid-fee-reductions/create-a-grid-fee-reduction)
    against the existing subscription.
  </Accordion>

  <Accordion title="Can I re-order after a rejection?">
    Yes. The endpoint refuses a new order only if there's an active (`intended`,
    `ordered`, or `activated`) reduction of the same type for the same
    subscription. Once the previous one is `rejected` or `ended`, you can
    re-order.
  </Accordion>

  <Accordion title="Are there webhooks for grid fee reductions?">
    Coming soon. Until then, poll the list endpoint with a status filter
    (`filter[status][eq]=...`) or react to
    [`subscription.activated`](/webhooks/events/subscription-activated) to know
    when an order is eligible to ship.
  </Accordion>

  <Accordion title="Can the customer cancel a reduction?">
    Module changes are usually triggered by switching devices or moving to a
    different VNB. The customer (or your support team) reaches out; the
    underlying mechanism is the same `POST /grid-fee-reductions` flow plus an
    end on the previous record.
  </Accordion>
</AccordionGroup>
