Germany’s transmission grid is divided into four TSO control areas
(Regelzonen):
Control area
TSO
50Hertz
50Hertz Transmission
Amprion
Amprion
TenneT
TenneT TSO
TransnetBW
TransnetBW
n:lead operates one balancing group (Bilanzkreis) per control area for
the customer. A balancing group is a virtual energy account with its TSO:
all physical in-feeds/out-takes and all commercial schedules of the
portfolio in that area are booked into it.
A balancing group must net to zero for every quarter-hour. Residual
imbalances are settled at the imbalance price (Ausgleichsenergie) — the
entire purpose of this service is to nominate schedules that avoid that.
the production forecast of the portfolio in that area (in-feed),
the consumption forecast (off-take),
all trades with counterparties: the EPEX/ECC exchange delivery (home
group only) and the cross-control-area transfers between our own groups.
Trades are aggregated per direction and counterparty: for each
counterparty there is at most one incoming and one outgoing series, values
are non-negative, and a negative flow simply appears in the opposite
direction. A correct schedule sums to zero at every interval:
production − consumption + trades = 0
The physical side (load, generation) is allocated into the balancing group
by the DSOs/TSO based on metering — the BRP does not nominate it; the
forecasts in the schedule are the BRP’s declared expectation of it. n:lead
computes these quantities from your data and submits the resulting
schedules to the TSOs.
Everything is quarter-hourly in Europe/Berlin, local midnight to
midnight:
Day type
Intervals
Normal day
96
Spring-forward day (02:00→03:00 skipped)
92
Fall-back day (02:00–03:00 twice)
100
The service computes the expected count from the timezone database and
rejects forecasts with any other length — a 96-value forecast for a DST day
is a validation error, not something to silently pad.
Germany is a single day-ahead bidding zone: the EPEX day-ahead trade is
one volume for the whole German position. Physical delivery (via ECC, the
exchange’s clearing house) lands in one balancing group — the home
balancing group, in a home control area agreed as part of your setup.That creates the central distribution problem this service solves: the other
three balancing groups never see the exchange delivery directly, so the home
group must pass their share on via matched cross-control-area transfer
pairs (out of home / into target). How the quantities are derived is on the
Core Algorithm page.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"n:lead Scheduling Bridge","description":"BRP scheduling bridge for German balancing groups","colors":{"primary":"#16A34A","light":"#4ADE80","dark":"#166534"},"favicon":"https://mintcdn.com/nleadgmbh-dff6b954/O23TCu0q4XLRCUUb/favicon.svg?fit=max\u0026auto=format\u0026n=O23TCu0q4XLRCUUb\u0026q=85\u0026s=6e4f1f545b04b341ccb452fb85d659aa","footer":{"socials":{"github":"https://github.com/n-lead-GmbH/sup_brp_bridge"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"nleadgmbh-dff6b954","hasAudioNarration":false,"actualSubdomain":"nleadgmbh-dff6b954","customDomains":["docs.energy.nlead.ch"],"gitSource":{"type":"github","owner":"n-lead-gmbh","repo":"sup_brp_bridge","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae5eebf8b8badc2e429d401","collectionId":"b89fed8d-3382-4386-8818-81267571e816","liveDeploymentHistoryId":"6ae5eebf8b8badc2e429d401","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae5eebf8b8badc2e429d401","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Setup \u0026 Operations","count":194},{"language":"default","tag":"Internal API","count":167},{"language":"default","tag":"API Reference","count":161},{"language":"default","tag":"Running the Service","count":19},{"language":"default","tag":"Endpoints","count":12},{"language":"default","tag":"Lieferantenrahmenvertrag","count":10},{"language":"default","tag":"mobile","count":9},{"language":"default","tag":"Documentation","count":7},{"language":"default","tag":"Dashboard","count":5},{"language":"default","tag":"Reference","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"concepts/domain-model","slug":"/concepts/domain-model","pageMetadata":{"title":"German Market Domain Model","sidebarTitle":"Domain Model","description":"Control areas, balancing groups, schedules, quarter-hours and the home area","icon":"bolt","href":"/concepts/domain-model"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Control areas, balancing groups, schedules, quarter-hours and the home area\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`control-areas-and-balancing-groups`,children:`Control areas and balancing groups`}),`\n`,_jsxs(_components.p,{children:[`Germany’s transmission grid is divided into four TSO `,_jsx(_components.strong,{children:`control areas`}),`\n(Regelzonen):`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Control area`}),_jsx(_components.th,{children:`TSO`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`50Hertz`})}),_jsx(_components.td,{children:`50Hertz Transmission`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Amprion`})}),_jsx(_components.td,{children:`Amprion`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`TenneT`})}),_jsx(_components.td,{children:`TenneT TSO`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`TransnetBW`})}),_jsx(_components.td,{children:`TransnetBW`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`n:lead operates `,_jsx(_components.strong,{children:`one balancing group (Bilanzkreis) per control area`}),` for\nthe customer. A balancing group is a virtual energy account with its TSO:\nall physical in-feeds/out-takes and all commercial schedules of the\nportfolio in that area are booked into it.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`A balancing group must `,_jsx(_components.strong,{children:`net to zero for every quarter-hour`}),`. Residual\nimbalances are settled at the imbalance price (Ausgleichsenergie) — the\nentire purpose of this service is to nominate schedules that avoid that.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-a-schedule-contains`,children:`What a schedule contains`}),`\n`,_jsxs(_components.p,{children:[`A balancing-group `,_jsx(_components.strong,{children:`schedule`}),` consists of:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`the `,_jsx(_components.strong,{children:`production forecast`}),` of the portfolio in that area (in-feed),`]}),`\n`,_jsxs(_components.li,{children:[`the `,_jsx(_components.strong,{children:`consumption forecast`}),` (off-take),`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`all trades with counterparties`}),`: the EPEX/ECC exchange delivery (home\ngroup only) and the cross-control-area transfers between our own groups.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Trades are `,_jsx(_components.strong,{children:`aggregated per direction and counterparty`}),`: for each\ncounterparty there is at most one incoming and one outgoing series, values\nare non-negative, and a negative flow simply appears in the opposite\ndirection. A correct schedule sums to zero at every interval:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`production − consumption + trades = 0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The physical side (load, generation) is allocated into the balancing group\nby the DSOs/TSO based on metering — the BRP does not nominate it; the\nforecasts in the schedule are the BRP’s declared expectation of it. n:lead\ncomputes these quantities from your data and submits the resulting\nschedules to the TSOs.`}),`\n`,_jsx(Heading,{level:`2`,id:`quarter-hours-and-daylight-saving`,children:`Quarter-hours and daylight saving`}),`\n`,_jsxs(_components.p,{children:[`Everything is quarter-hourly in `,_jsx(_components.strong,{children:`Europe/Berlin`}),`, local midnight to\nmidnight:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Day type`}),_jsx(_components.th,{children:`Intervals`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Normal day`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.strong,{children:`96`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Spring-forward day (02:00→03:00 skipped)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.strong,{children:`92`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Fall-back day (02:00–03:00 twice)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.strong,{children:`100`})})]})]})]}),`\n`,_jsx(_components.p,{children:`The service computes the expected count from the timezone database and\nrejects forecasts with any other length — a 96-value forecast for a DST day\nis a validation error, not something to silently pad.`}),`\n`,_jsx(Heading,{level:`2`,id:`one-bidding-zone-one-home-area`,children:`One bidding zone, one home area`}),`\n`,_jsxs(_components.p,{children:[`Germany is a `,_jsx(_components.strong,{children:`single day-ahead bidding zone`}),`: the EPEX day-ahead trade is\none volume for the whole German position. Physical delivery (via ECC, the\nexchange’s clearing house) lands in `,_jsx(_components.strong,{children:`one`}),` balancing group — the `,_jsx(_components.strong,{children:`home\nbalancing group`}),`, in a home control area agreed as part of your setup.`]}),`\n`,_jsxs(_components.p,{children:[`That creates the central distribution problem this service solves: the other\nthree balancing groups never see the exchange delivery directly, so the home\ngroup must pass their share on via `,_jsx(_components.strong,{children:`matched cross-control-area transfer\npairs`}),` (out of home / into target). How the quantities are derived is on the\n`,_jsx(_components.a,{href:`/concepts/algorithm`,children:`Core Algorithm`}),` page.`]}),`\n`,_jsx(Heading,{level:`2`,id:`sign-conventions`,children:`Sign conventions`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Quantity`}),_jsx(_components.th,{children:`Positive means`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`net`})}),_jsx(_components.td,{children:`long / surplus (production exceeds consumption)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`open_position`})}),_jsxs(_components.td,{children:[`must `,_jsx(_components.strong,{children:`buy`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`total_open`})}),_jsx(_components.td,{children:`Germany buys on EPEX`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`trade series`}),_jsxs(_components.td,{children:[`flow in the direction stated (`,_jsx(_components.code,{children:`in`}),`/`,_jsx(_components.code,{children:`out`}),`), values ≥ 0`]})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"German Market Domain Model","sidebarTitle":"Domain Model","description":"Control areas, balancing groups, schedules, quarter-hours and the home area","icon":"bolt","href":"/concepts/domain-model"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Control areas and balancing groups","slug":"control-areas-and-balancing-groups","depth":2,"children":[]},{"title":"What a schedule contains","slug":"what-a-schedule-contains","depth":2,"children":[]},{"title":"Quarter-hours and daylight saving","slug":"quarter-hours-and-daylight-saving","depth":2,"children":[]},{"title":"One bidding zone, one home area","slug":"one-bidding-zone-one-home-area","depth":2,"children":[]},{"title":"Sign conventions","slug":"sign-conventions","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"nleadgmbh-dff6b954","siteName":"n:lead Scheduling Bridge","title":"German Market Domain Model - n:lead Scheduling Bridge","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-31T11:53:04.793Z","originalFileLocation":"concepts/domain-model.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Control areas, balancing groups, schedules, quarter-hours and the home area\">\u003cmeta data-mint-head name=\"application-name\" content=\"n:lead Scheduling Bridge\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"German Market Domain Model - n:lead Scheduling Bridge\">\u003cmeta data-mint-head property=\"og:description\" content=\"Control areas, balancing groups, schedules, quarter-hours and the home area\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"n:lead Scheduling Bridge\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.energy.nlead.ch/concepts/domain-model\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://nleadgmbh-dff6b954.mintlify.app/_mintlify/api/og/v2?division=Background\u0026amp;title=German+Market+Domain+Model\u0026amp;description=Control+areas%2C+balancing+groups%2C+schedules%2C+quarter-hours+and+the+home+area\u0026amp;theme=753de078ecd40ac47f9d604d\u0026amp;signature=21d155b4f1203938d4a5c66a6551a83f3e7bf1acc051df346b3d7dffea281653\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"German Market Domain Model - n:lead Scheduling Bridge\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Control areas, balancing groups, schedules, quarter-hours and the home area\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nleadgmbh-dff6b954.mintlify.app/_mintlify/api/og/v2?division=Background\u0026amp;title=German+Market+Domain+Model\u0026amp;description=Control+areas%2C+balancing+groups%2C+schedules%2C+quarter-hours+and+the+home+area\u0026amp;theme=753de078ecd40ac47f9d604d\u0026amp;signature=21d155b4f1203938d4a5c66a6551a83f3e7bf1acc051df346b3d7dffea281653\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/nleadgmbh-dff6b954/DChQvnmubfvrTzIZ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"n:lead Scheduling Bridge\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.energy.nlead.ch/concepts/domain-model\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/domain-model.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.energy.nlead.ch/#organization\",\"name\":\"n:lead Scheduling Bridge\",\"url\":\"https://docs.energy.nlead.ch\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.energy.nlead.ch#website\",\"name\":\"n:lead Scheduling Bridge\",\"url\":\"https://docs.energy.nlead.ch\",\"publisher\":{\"@id\":\"https://docs.energy.nlead.ch/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.energy.nlead.ch/concepts/domain-model#webpage\",\"url\":\"https://docs.energy.nlead.ch/concepts/domain-model\",\"name\":\"German Market Domain Model\",\"description\":\"Control areas, balancing groups, schedules, quarter-hours and the home area\",\"dateModified\":\"2026-07-31T11:53:04.793Z\",\"isPartOf\":{\"@id\":\"https://docs.energy.nlead.ch#website\"},\"breadcrumb\":{\"@id\":\"https://docs.energy.nlead.ch/concepts/domain-model#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.energy.nlead.ch/concepts/domain-model#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"n:lead Scheduling Bridge\",\"item\":\"https://docs.energy.nlead.ch\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"German Market Domain Model\",\"item\":\"https://docs.energy.nlead.ch/concepts/domain-model\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.energy.nlead.ch/concepts/domain-model#article\",\"headline\":\"German Market Domain Model\",\"name\":\"German Market Domain Model\",\"description\":\"Control areas, balancing groups, schedules, quarter-hours and the home area\",\"url\":\"https://docs.energy.nlead.ch/concepts/domain-model\",\"mainEntityOfPage\":{\"@id\":\"https://docs.energy.nlead.ch/concepts/domain-model#webpage\"},\"dateModified\":\"2026-07-31T11:53:04.793Z\",\"publisher\":{\"@id\":\"https://docs.energy.nlead.ch/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.energy.nlead.ch#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"n:lead Scheduling Bridge\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"n:lead Scheduling Bridge","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"n:lead Scheduling Bridge","sidebarTitle":"Overview","icon":"house","href":""},{"title":"Quickstart","icon":"rocket","href":"/quickstart"}]},{"group":"Delivering Data","pages":[{"title":"Data Delivery","icon":"upload","href":"/data-delivery"}]},{"group":"Reading Results","pages":[{"title":"Dashboard Data","icon":"chart-line","href":"/dashboard"},{"title":"Bridge App","description":"Every screen and element of the app on iPhone, Android and Apple Watch, and what it shows","icon":"mobile-screen-button","href":"/app"}]},{"group":"Background","pages":[{"title":"German Market Domain Model","sidebarTitle":"Domain Model","icon":"bolt","href":"/concepts/domain-model"},{"title":"Core Algorithm","description":"From forecast to balanced schedules, deterministically","icon":"calculator","href":"/concepts/algorithm"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"Setup \u0026 Operations","pages":[{"title":"Setup \u0026 Operations","href":"/setup/introduction"}]}]},"basePath":"","title":"German Market Domain Model - n:lead Scheduling Bridge","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}