How cycle limits are counted, which period each limit covers, and how unavailability and capacity changes affect them.
Every virtual asset has a daily cycle limit. Some contracts add a limit over a longer period, for example per year in a tolling agreement, or over the whole term of the virtual asset. The limits of your virtual asset are in its API response: dailyCycleLimit, and where set, annualCycleLimit and totalAllowedCycles.
Daily limit
Period limit
Applies to
Every virtual asset
Only if your contract sets one
Typical value
Set per virtual asset, for example 2 or 3 per day
For example 621 per year in a tolling agreement
Period
One day, midnight to midnight German time
A year (annualCycleLimit) or the whole term of the virtual asset (totalAllowedCycles)
Counted in
AEDs, against available energy capacity
Cycles, against rated energy capacity
During an unavailability
Tightens
Unchanged
When capacity changes
Applies as usual, against the capacity of that day
Builds up day by day from the rated capacity of each day
Only discharge counts. Energy discharged for dispatch schedules and for ancillary service activations both count. The platform measures discharge per quarter hour, so each discharge is compared with the capacity that applied when it happened. The daily and the period limit then use different measures of the same discharge, described in the next two sections.
The daily limit is counted in Available Energy Discharges (AEDs). One AED is a discharge equal to the energy capacity that is actually available at that time, so the limit tightens during an unavailability. Here α is the available share of the rated capacity, from 1 (fully available) to 0:AEDqh=Eqh,ratedEqh,dsch×αqh1qh∈day∑AEDqh≤Daily limitA day runs from midnight to midnight German time. The values are returned as availableEnergyDischargesWholesale, availableEnergyDischargesFCR, availableEnergyDischargesAFRR and availableEnergyDischargesTotal. When capacity changes, the daily limit applies as usual, against the capacity of that day.Example: a 10 MWh asset with a daily limit of 3 discharges 10 MWh between 08:00 and 12:00, which is 1 cycle and 1 AED. From 12:00 to 16:00 an unavailability halves the available energy to 5 MWh, and the asset discharges another 10 MWh. That is 1 more cycle but 2 AEDs, so the day has reached its limit of 3 AEDs after 2 cycles.
The period limit is counted in cycles. One cycle is a discharge equal to the rated energy capacity at that time:cyclesqh=Eqh,ratedEqh,dschThe values are returned as cyclesWholesale, cyclesFcr, cyclesAfrr and cyclesTotal. The cycles of all quarter hours in the period add up and must stay within the period limit.Unavailability does not reduce the period limit, because cycles are counted against rated capacity. Cycles you could not use during an outage can be used later in the period.
The period is defined in your contract. A limit over the term of the virtual asset (totalAllowedCycles) covers the virtual asset from its start to its end.For an annual limit (annualCycleLimit) in a tolling agreement, the year is usually the Contract Year: Contract Year 1 starts on the Start Date and lasts 12 months, and each later Contract Year starts on the anniversary of the Start Date. With a Start Date of 1 November 2026, Contract Year 1 runs until 31 October 2027 and has the full 621 cycles (1.7 per day on average, 365 × 1.7 rounded up), and discharge before the Start Date is not deducted from it. Some tolling agreements use calendar years instead.This can deviate subject to the conditions of your contract.
This mainly concerns tolling agreements, where the rated energy capacity grows in steps as physical assets are added. The ramp-up only affects the period limit. The daily limit applies as usual.While capacity changes, the period allowance is counted in energy, based on the rated energy capacity of each day. Each day adds the average daily allowance cˉ from your contract times its rated energy capacity, and the total discharge over the period must stay within the sum:qh∈period∑Eqh,dsch≤d∈period∑cˉ×Ed,ratedYou can front-load this allowance, which means using it before it has built up. Each day must stay within the daily limit, and the total must stay within the projected allowance for the period you are in. The projected allowance is what has built up so far, plus cˉ times today’s rated energy capacity for each day left in the period. Which period that is depends on your contract:
With calendar years, it is the ongoing calendar year, and the ramp-up is part of it.
With a separate ramp-up period, it runs until the expected end of the ramp-up. Contract Year 1 only begins after that, on the Start Date.
A capacity step changes the projection from the day it takes effect, and days that have passed keep the capacity they had. If capacity is reduced after you have front-loaded part of the allowance, the projected allowance shrinks with it and you may have to discharge less for the rest of the period. Unavailability does not reduce the allowance.All four examples below are tolling agreements with an average daily allowance of 1.7, and all use the same virtual battery: 20 MWh for 90 days, then 60 MWh for 60 days, then 100 MWh. Each starts with the same usage, 2.1 cycles a day in step 1 and, where the allowance allows it, also in step 2. The figures are made up for illustration.
Here the ramp-up is part of the calendar year. Each day adds 1.7 times its rated energy capacity, and days before the virtual battery goes live add nothing, so a year with a ramp-up has a smaller allowance than a year at full capacity. The projection always runs to 31 December. At a constant capacity, the next calendar year has the full 621 cycles.
At the start of the year the projection assumes 20 MWh for all 365 days, which gives 12,410 MWh (365 × 34 MWh). If the battery discharges 2.1 cycles a day during step 1, 3,780 MWh in total, it is ahead of the 3,060 MWh built up but far below the projection. The upsize to 60 MWh raises the projected allowance to 31,110 MWh (3,060 MWh built up plus 275 × 102 MWh). The upsize to 100 MWh raises it to 45,730 MWh, the allowance for the whole year. At 2.1 cycles a day in step 2 as well, the battery has used 11,340 MWh by 30 May. That leaves 34,390 MWh for the remaining 215 days, about 160 MWh or 1.6 cycles per day at 100 MWh.
The virtual battery goes live on 16 May, so 230 days of the year remain.
Period
Rated energy
Days
Allowance per day (1.7 ×)
Daily maximum (3 ×)
Allowance
Step 1, 16 May to 13 Aug
20 MWh
90
34 MWh
60 MWh
3,060 MWh
Step 2, 14 Aug to 12 Oct
60 MWh
60
102 MWh
180 MWh
6,120 MWh
Step 3, 13 Oct to 31 Dec
100 MWh
80
170 MWh
300 MWh
13,600 MWh
Calendar year total
230
22,780 MWh
At go-live the projection assumes 20 MWh for the 230 days left in the year, which gives 7,820 MWh (230 × 34 MWh). If the battery discharges 2.1 cycles a day during step 1, 3,780 MWh in total, it stays below that projection. The upsize to 60 MWh on 14 August raises the projected allowance to 17,340 MWh (3,060 MWh built up plus 140 × 102 MWh). The upsize to 100 MWh on 13 October raises it to 22,780 MWh. At 2.1 cycles a day in step 2 as well, the battery has used 11,340 MWh by 12 October. That leaves 11,440 MWh for the remaining 80 days, 143 MWh or about 1.4 cycles per day at 100 MWh.
Here the ramp-up is a period of its own and belongs to no Contract Year. The projection runs until the expected end of the ramp-up. Contract Year 1 begins on the Start Date, once the ramp-up is concluded, and starts at zero with the full 621 cycles, whatever was used during the ramp-up.
The ramp-up lasts 365 days, with the same steps as the full calendar year above.
Period
Rated energy
Days
Allowance per day (1.7 ×)
Daily maximum (3 ×)
Allowance
Ramp-up, step 1, day 1 to 90
20 MWh
90
34 MWh
60 MWh
3,060 MWh
Ramp-up, step 2, day 91 to 150
60 MWh
60
102 MWh
180 MWh
6,120 MWh
Ramp-up, step 3, day 151 to 365
100 MWh
215
170 MWh
300 MWh
36,550 MWh
Ramp-up total
365
45,730 MWh
Contract Year 1 from the Start Date
100 MWh
365
170 MWh
300 MWh
621 cycles (62,100 MWh)
The numbers are the same as for the full calendar year. The projection starts at 12,410 MWh and rises to 31,110 MWh and 45,730 MWh with the upsizes, and 34,390 MWh, about 1.6 cycles per day, are left for the last 215 days. Only the next period has a different name: on the Start Date, Contract Year 1 begins with the full 621 cycles.
At the start the projection assumes 20 MWh for all 150 ramp-up days, which gives 5,100 MWh (150 × 34 MWh). If the battery discharges 2.1 cycles a day during step 1, 3,780 MWh in total, it is ahead of the 3,060 MWh built up but still below the projection. The upsize to 60 MWh raises the projected allowance to 9,180 MWh (3,060 MWh built up plus 60 × 102 MWh). That leaves 5,400 MWh for step 2, which is 90 MWh or 1.5 cycles per day at 60 MWh. Keeping 2.1 cycles a day, as in the other examples, would exceed the allowance, because the projection ends with the ramp-up instead of running on to the end of a year. On the Start Date the count starts again at zero, and Contract Year 1 has its full 621 cycles.
Last modified on October 23, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"terralayr","colors":{"primary":"#13151A","light":"#C2C6CE","dark":"#888C97"},"logo":{"light":"https://mintcdn.com/terralayr-90/i2mowZXsRr_Wp7MC/logo/terralayrDark.svg?fit=max\u0026auto=format\u0026n=i2mowZXsRr_Wp7MC\u0026q=85\u0026s=eb99311be47192737889489eb393e3d4","dark":"https://mintcdn.com/terralayr-90/i2mowZXsRr_Wp7MC/logo/terralayr.svg?fit=max\u0026auto=format\u0026n=i2mowZXsRr_Wp7MC\u0026q=85\u0026s=ec334006d0e1ec6b8461a2016ff25471"},"favicon":"https://mintcdn.com/terralayr-90/6CJgW5GjjTIZDPSq/favicon.svg?fit=max\u0026auto=format\u0026n=6CJgW5GjjTIZDPSq\u0026q=85\u0026s=a4ab56165676d79a829688cf9b6e072a","api":{"params":{"expanded":"all"},"playground":{"display":"interactive"},"examples":{"defaults":"required","prefill":true,"autogenerate":true},"url":"full"},"navbar":{"links":[{"href":"mailto:support@trlyr.com","label":"Support"}],"primary":{"type":"button","label":"Layr Dashboard","href":"https://app.trlyr.com"}},"footer":{"socials":{"website":"https://www.trlyr.com/","github":"https://github.com/terralayr","linkedin":"https://www.linkedin.com/company/terralayr"}},"fonts":{"heading":{"family":"InterDisplay","weight":700,"source":"fonts/PPNeueMontreal-Regular.woff2","format":"woff2"},"body":{"family":"InterDisplay","weight":400,"source":"fonts/PPNeueMontreal-Regular.woff2","format":"woff2"}},"integrations":{"gtm":{"tagId":"GTM-MK2HWCBW"},"intercom":{"appId":"aqinf0la"}},"contextual":{"options":["copy","view","claude","chatgpt","mcp","add-mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"terralayr-90","hasAudioNarration":false,"actualSubdomain":"terralayr-90","customDomains":["docs.trlyr.com"],"gitSource":{"type":"github","owner":"terralayr","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4a400c2eaceb0e3450bd7","collectionId":"6269c0f9-f523-44e1-830e-eecdedc4dffb","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4a400c2eaceb0e3450bd7"},"feedback":{"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4a400c2eaceb0e3450bd7","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":99},{"language":"default","tag":"Physical Asset Management API","count":36},{"language":"default","tag":"Virtual Assets API","count":33},{"language":"default","tag":"BESS Academy","count":32},{"language":"default","tag":"Product Updates \u0026 Changelog","count":22},{"language":"default","tag":"Layr User Guide","count":13},{"language":"default","tag":"virtual-assets","count":13},{"language":"default","tag":"Revenue Reporting API","count":12},{"language":"default","tag":"revenue","count":12},{"language":"default","tag":"Module 3: The BESS Project Lifecycle","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@trlyr.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"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":"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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"layrUserGuide/deep-dives/cycling-calculations","slug":"/layrUserGuide/deep-dives/cycling-calculations","pageMetadata":{"title":"Cycle limits","description":"How cycle limits are counted, which period each limit covers, and how unavailability and capacity changes affect them.","href":"/layrUserGuide/deep-dives/cycling-calculations"},"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: \"How cycle limits are counted, which period each limit covers, and how unavailability and capacity changes affect them.\"\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={annotation:`annotation`,code:`code`,li:`li`,math:`math`,mfrac:`mfrac`,mi:`mi`,mn:`mn`,mo:`mo`,mover:`mover`,mrow:`mrow`,msub:`msub`,mtext:`mtext`,munder:`munder`,p:`p`,semantics:`semantics`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Every virtual asset has a daily cycle limit. Some contracts add a limit over a longer period, for example per year in a tolling agreement, or over the whole term of the virtual asset. The limits of your virtual asset are in its API response: `,_jsx(_components.code,{children:`dailyCycleLimit`}),`, and where set, `,_jsx(_components.code,{children:`annualCycleLimit`}),` and `,_jsx(_components.code,{children:`totalAllowedCycles`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{children:`Daily limit`}),_jsx(_components.th,{children:`Period limit`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Applies to`}),_jsx(_components.td,{children:`Every virtual asset`}),_jsx(_components.td,{children:`Only if your contract sets one`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Typical value`}),_jsx(_components.td,{children:`Set per virtual asset, for example 2 or 3 per day`}),_jsx(_components.td,{children:`For example 621 per year in a tolling agreement`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Period`}),_jsx(_components.td,{children:`One day, midnight to midnight German time`}),_jsxs(_components.td,{children:[`A year (`,_jsx(_components.code,{children:`annualCycleLimit`}),`) or the whole term of the virtual asset (`,_jsx(_components.code,{children:`totalAllowedCycles`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Counted in`}),_jsx(_components.td,{children:`AEDs, against available energy capacity`}),_jsx(_components.td,{children:`Cycles, against rated energy capacity`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`During an unavailability`}),_jsx(_components.td,{children:`Tightens`}),_jsx(_components.td,{children:`Unchanged`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`When capacity changes`}),_jsx(_components.td,{children:`Applies as usual, against the capacity of that day`}),_jsx(_components.td,{children:`Builds up day by day from the rated capacity of each day`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-counts-towards-the-limits`,children:`What counts towards the limits`}),`\n`,_jsx(_components.p,{children:`Only discharge counts. Energy discharged for dispatch schedules and for ancillary service activations both count. The platform measures discharge per quarter hour, so each discharge is compared with the capacity that applied when it happened. The daily and the period limit then use different measures of the same discharge, described in the next two sections.`}),`\n`,_jsx(Heading,{level:`2`,id:`daily-limit`,children:`Daily limit`}),`\n`,_jsx(_components.p,{children:`The daily limit is counted in Available Energy Discharges (AEDs). One AED is a discharge equal to the energy capacity that is actually available at that time, so the limit tightens during an unavailability. Here α is the available share of the rated capacity, from 1 (fully available) to 0:`}),`\n`,_jsx(_components.span,{className:`katex-display`,children:_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,display:`block`,children:_jsxs(_components.semantics,{children:[_jsxs(_components.mrow,{children:[_jsxs(_components.msub,{children:[_jsx(_components.mtext,{children:`AED`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`})]})]}),_jsx(_components.mo,{children:`=`}),_jsxs(_components.mfrac,{children:[_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`E`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mi,{children:`d`}),_jsx(_components.mi,{children:`s`}),_jsx(_components.mi,{children:`c`}),_jsx(_components.mi,{children:`h`})]})]}),_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`E`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mi,{children:`r`}),_jsx(_components.mi,{children:`a`}),_jsx(_components.mi,{children:`t`}),_jsx(_components.mi,{children:`e`}),_jsx(_components.mi,{children:`d`})]})]})]}),_jsx(_components.mo,{children:`×`}),_jsxs(_components.mfrac,{children:[_jsx(_components.mn,{children:`1`}),_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`α`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`})]})]})]})]}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\textrm{AED}_{qh} = \\\\frac{E_{qh,dsch}}{E_{qh,rated}} \\\\times \\\\frac{1}{\\\\alpha_{qh}}`})]})})}),_jsxs(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:[_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.9694em`,verticalAlign:`-0.2861em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord text`,children:_jsx(_components.span,{className:`mord textrm`,children:`AED`})}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3361em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}}),_jsx(_components.span,{className:`mrel`,children:`=`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}})]}),_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`2.3324em`,verticalAlign:`-0.9721em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mopen nulldelimiter`}),_jsx(_components.span,{className:`mfrac`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsxs(_components.span,{className:`vlist`,style:{height:`1.3603em`},children:[_jsxs(_components.span,{style:{top:`-2.314em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord`,children:_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0576em`},children:`E`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3361em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0576em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`}),_jsx(_components.span,{className:`mpunct mtight`,children:`,`}),_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0278em`},children:`r`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`a`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`t`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`e`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`d`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]})})]}),_jsxs(_components.span,{style:{top:`-3.23em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`frac-line`,style:{borderBottomWidth:`0.04em`}})]}),_jsxs(_components.span,{style:{top:`-3.677em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord`,children:_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0576em`},children:`E`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3361em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0576em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`}),_jsx(_components.span,{className:`mpunct mtight`,children:`,`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`d`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`sc`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]})})]})]}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.9721em`},children:_jsx(_components.span,{})})})]})}),_jsx(_components.span,{className:`mclose nulldelimiter`})]}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2222em`}}),_jsx(_components.span,{className:`mbin`,children:`×`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2222em`}})]}),_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`2.2935em`,verticalAlign:`-0.9721em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mopen nulldelimiter`}),_jsx(_components.span,{className:`mfrac`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsxs(_components.span,{className:`vlist`,style:{height:`1.3214em`},children:[_jsxs(_components.span,{style:{top:`-2.314em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord`,children:_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0037em`},children:`α`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3361em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0037em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]})})]}),_jsxs(_components.span,{style:{top:`-3.23em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`frac-line`,style:{borderBottomWidth:`0.04em`}})]}),_jsxs(_components.span,{style:{top:`-3.677em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord`,children:_jsx(_components.span,{className:`mord`,children:`1`})})]})]}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.9721em`},children:_jsx(_components.span,{})})})]})}),_jsx(_components.span,{className:`mclose nulldelimiter`})]})]})]})]})}),`\n`,_jsx(_components.span,{className:`katex-display`,children:_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,display:`block`,children:_jsxs(_components.semantics,{children:[_jsxs(_components.mrow,{children:[_jsxs(_components.munder,{children:[_jsx(_components.mo,{children:`∑`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`}),_jsx(_components.mo,{children:`∈`}),_jsx(_components.mtext,{children:`day`})]})]}),_jsxs(_components.msub,{children:[_jsx(_components.mtext,{children:`AED`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`})]})]}),_jsx(_components.mo,{children:`≤`}),_jsx(_components.mtext,{children:`Daily\\xA0limit`})]}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\sum_{qh \\\\in \\\\textrm{day}} \\\\textrm{AED}_{qh} \\\\leq \\\\textrm{Daily limit}`})]})})}),_jsxs(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:[_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`2.4882em`,verticalAlign:`-1.4382em`}}),_jsx(_components.span,{className:`mop op-limits`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsxs(_components.span,{className:`vlist`,style:{height:`1.05em`},children:[_jsxs(_components.span,{style:{top:`-1.8479em`,marginLeft:`0em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3.05em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`}),_jsx(_components.span,{className:`mrel mtight`,children:`∈`}),_jsx(_components.span,{className:`mord text mtight`,children:_jsx(_components.span,{className:`mord textrm mtight`,children:`day`})})]})})]}),_jsxs(_components.span,{style:{top:`-3.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3.05em`}}),_jsx(_components.span,{children:_jsx(_components.span,{className:`mop op-symbol large-op`,children:`∑`})})]})]}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`1.4382em`},children:_jsx(_components.span,{})})})]})}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.1667em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord text`,children:_jsx(_components.span,{className:`mord textrm`,children:`AED`})}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3361em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}}),_jsx(_components.span,{className:`mrel`,children:`≤`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}})]}),_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.8889em`,verticalAlign:`-0.1944em`}}),_jsx(_components.span,{className:`mord text`,children:_jsx(_components.span,{className:`mord textrm`,children:`Daily\\xA0limit`})})]})]})]})}),`\n`,_jsxs(_components.p,{children:[`A day runs from midnight to midnight German time. The values are returned as `,_jsx(_components.code,{children:`availableEnergyDischargesWholesale`}),`, `,_jsx(_components.code,{children:`availableEnergyDischargesFCR`}),`, `,_jsx(_components.code,{children:`availableEnergyDischargesAFRR`}),` and `,_jsx(_components.code,{children:`availableEnergyDischargesTotal`}),`. When capacity changes, the daily limit applies as usual, against the capacity of that day.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/terralayr-90/ySaXY2VRk6hdvsHu/images/image-72.png?fit=max\u0026auto=format\u0026n=ySaXY2VRk6hdvsHu\u0026q=85\u0026s=8fe6c34a2efa9e8d128d80b0bcafbfc9`,alt:`Image 72`,\"data-og-width\":`2592`,width:`2592`,\"data-og-height\":`1280`,height:`1280`,\"data-path\":`images/image-72.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/terralayr-90/ySaXY2VRk6hdvsHu/images/image-72.png?w=280\u0026fit=max\u0026auto=format\u0026n=ySaXY2VRk6hdvsHu\u0026q=85\u0026s=3afb3883117e7741a344505a1cdcca3a 280w, https://mintcdn.com/terralayr-90/ySaXY2VRk6hdvsHu/images/image-72.png?w=560\u0026fit=max\u0026auto=format\u0026n=ySaXY2VRk6hdvsHu\u0026q=85\u0026s=658b8861b26f1f6aa9fb73860f68a7e5 560w, https://mintcdn.com/terralayr-90/ySaXY2VRk6hdvsHu/images/image-72.png?w=840\u0026fit=max\u0026auto=format\u0026n=ySaXY2VRk6hdvsHu\u0026q=85\u0026s=2f19d4d0525eb5bfa20d66388925cc9b 840w, https://mintcdn.com/terralayr-90/ySaXY2VRk6hdvsHu/images/image-72.png?w=1100\u0026fit=max\u0026auto=format\u0026n=ySaXY2VRk6hdvsHu\u0026q=85\u0026s=77950623b44cf44f897b024d7418a26b 1100w, https://mintcdn.com/terralayr-90/ySaXY2VRk6hdvsHu/images/image-72.png?w=1650\u0026fit=max\u0026auto=format\u0026n=ySaXY2VRk6hdvsHu\u0026q=85\u0026s=93350468e244e489c1eb6a3df066bd2f 1650w, https://mintcdn.com/terralayr-90/ySaXY2VRk6hdvsHu/images/image-72.png?w=2500\u0026fit=max\u0026auto=format\u0026n=ySaXY2VRk6hdvsHu\u0026q=85\u0026s=e21ae2565ca98af11c303788110fb309 2500w`}),`\n`,_jsx(_components.p,{children:`Example: a 10 MWh asset with a daily limit of 3 discharges 10 MWh between 08:00 and 12:00, which is 1 cycle and 1 AED. From 12:00 to 16:00 an unavailability halves the available energy to 5 MWh, and the asset discharges another 10 MWh. That is 1 more cycle but 2 AEDs, so the day has reached its limit of 3 AEDs after 2 cycles.`}),`\n`,_jsx(Heading,{level:`2`,id:`period-limit`,children:`Period limit`}),`\n`,_jsx(_components.p,{children:`The period limit is counted in cycles. One cycle is a discharge equal to the rated energy capacity at that time:`}),`\n`,_jsx(_components.span,{className:`katex-display`,children:_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,display:`block`,children:_jsxs(_components.semantics,{children:[_jsxs(_components.mrow,{children:[_jsxs(_components.msub,{children:[_jsx(_components.mtext,{children:`cycles`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`})]})]}),_jsx(_components.mo,{children:`=`}),_jsxs(_components.mfrac,{children:[_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`E`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mi,{children:`d`}),_jsx(_components.mi,{children:`s`}),_jsx(_components.mi,{children:`c`}),_jsx(_components.mi,{children:`h`})]})]}),_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`E`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mi,{children:`r`}),_jsx(_components.mi,{children:`a`}),_jsx(_components.mi,{children:`t`}),_jsx(_components.mi,{children:`e`}),_jsx(_components.mi,{children:`d`})]})]})]})]}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\textrm{cycles}_{qh} = \\\\frac{E_{qh,dsch}}{E_{qh,rated}}`})]})})}),_jsxs(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:[_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`1.0747em`,verticalAlign:`-0.3802em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord text`,children:_jsx(_components.span,{className:`mord textrm`,children:`cycles`})}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.242em`},children:_jsxs(_components.span,{style:{top:`-2.4559em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.3802em`},children:_jsx(_components.span,{})})})]})})]}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}}),_jsx(_components.span,{className:`mrel`,children:`=`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}})]}),_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`2.3324em`,verticalAlign:`-0.9721em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mopen nulldelimiter`}),_jsx(_components.span,{className:`mfrac`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsxs(_components.span,{className:`vlist`,style:{height:`1.3603em`},children:[_jsxs(_components.span,{style:{top:`-2.314em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord`,children:_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0576em`},children:`E`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3361em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0576em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`}),_jsx(_components.span,{className:`mpunct mtight`,children:`,`}),_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0278em`},children:`r`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`a`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`t`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`e`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`d`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]})})]}),_jsxs(_components.span,{style:{top:`-3.23em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`frac-line`,style:{borderBottomWidth:`0.04em`}})]}),_jsxs(_components.span,{style:{top:`-3.677em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord`,children:_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0576em`},children:`E`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3361em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0576em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`}),_jsx(_components.span,{className:`mpunct mtight`,children:`,`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`d`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`sc`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]})})]})]}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.9721em`},children:_jsx(_components.span,{})})})]})}),_jsx(_components.span,{className:`mclose nulldelimiter`})]})]})]})]})}),`\n`,_jsxs(_components.p,{children:[`The values are returned as `,_jsx(_components.code,{children:`cyclesWholesale`}),`, `,_jsx(_components.code,{children:`cyclesFcr`}),`, `,_jsx(_components.code,{children:`cyclesAfrr`}),` and `,_jsx(_components.code,{children:`cyclesTotal`}),`. The cycles of all quarter hours in the period add up and must stay within the period limit.`]}),`\n`,_jsx(_components.p,{children:`Unavailability does not reduce the period limit, because cycles are counted against rated capacity. Cycles you could not use during an outage can be used later in the period.`}),`\n`,_jsx(Heading,{level:`3`,id:`which-period-counts`,children:`Which period counts`}),`\n`,_jsxs(_components.p,{children:[`The period is defined in your contract. A limit over the term of the virtual asset (`,_jsx(_components.code,{children:`totalAllowedCycles`}),`) covers the virtual asset from its start to its end.`]}),`\n`,_jsxs(_components.p,{children:[`For an annual limit (`,_jsx(_components.code,{children:`annualCycleLimit`}),`) in a tolling agreement, the year is usually the Contract Year: Contract Year 1 starts on the Start Date and lasts 12 months, and each later Contract Year starts on the anniversary of the Start Date. With a Start Date of 1 November 2026, Contract Year 1 runs until 31 October 2027 and has the full 621 cycles (1.7 per day on average, 365 × 1.7 rounded up), and discharge before the Start Date is not deducted from it. Some tolling agreements use calendar years instead.`]}),`\n`,_jsx(_components.p,{children:`This can deviate subject to the conditions of your contract.`}),`\n`,_jsx(Heading,{level:`2`,id:`ramp-up-period`,children:`Ramp-up period`}),`\n`,_jsx(_components.p,{children:`This mainly concerns tolling agreements, where the rated energy capacity grows in steps as physical assets are added. The ramp-up only affects the period limit. The daily limit applies as usual.`}),`\n`,_jsxs(_components.p,{children:[`While capacity changes, the period allowance is counted in energy, based on the rated energy capacity of each day. Each day adds the average daily allowance `,_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsx(_components.mrow,{children:_jsxs(_components.mover,{accent:`true`,children:[_jsx(_components.mi,{children:`c`}),_jsx(_components.mo,{children:`ˉ`})]})}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\bar{c}`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.5678em`}}),_jsx(_components.span,{className:`mord accent`,children:_jsx(_components.span,{className:`vlist-t`,children:_jsx(_components.span,{className:`vlist-r`,children:_jsxs(_components.span,{className:`vlist`,style:{height:`0.5678em`},children:[_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord mathnormal`,children:`c`})]}),_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`accent-body`,style:{left:`-0.1944em`},children:_jsx(_components.span,{className:`mord`,children:`ˉ`})})]})]})})})})]})})]}),` from your contract times its rated energy capacity, and the total discharge over the period must stay within the sum:`]}),`\n`,_jsx(_components.span,{className:`katex-display`,children:_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,display:`block`,children:_jsxs(_components.semantics,{children:[_jsxs(_components.mrow,{children:[_jsxs(_components.munder,{children:[_jsx(_components.mo,{children:`∑`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`}),_jsx(_components.mo,{children:`∈`}),_jsx(_components.mtext,{children:`period`})]})]}),_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`E`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`q`}),_jsx(_components.mi,{children:`h`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mi,{children:`d`}),_jsx(_components.mi,{children:`s`}),_jsx(_components.mi,{children:`c`}),_jsx(_components.mi,{children:`h`})]})]}),_jsx(_components.mo,{children:`≤`}),_jsxs(_components.munder,{children:[_jsx(_components.mo,{children:`∑`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`d`}),_jsx(_components.mo,{children:`∈`}),_jsx(_components.mtext,{children:`period`})]})]}),_jsxs(_components.mover,{accent:`true`,children:[_jsx(_components.mi,{children:`c`}),_jsx(_components.mo,{children:`ˉ`})]}),_jsx(_components.mo,{children:`×`}),_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`E`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`d`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mi,{children:`r`}),_jsx(_components.mi,{children:`a`}),_jsx(_components.mi,{children:`t`}),_jsx(_components.mi,{children:`e`}),_jsx(_components.mi,{children:`d`})]})]})]}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\sum_{qh \\\\in \\\\textrm{period}} E_{qh,dsch} \\\\leq \\\\sum_{d \\\\in \\\\textrm{period}} \\\\bar{c} \\\\times E_{d,rated}`})]})})}),_jsxs(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:[_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`2.4882em`,verticalAlign:`-1.4382em`}}),_jsx(_components.span,{className:`mop op-limits`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsxs(_components.span,{className:`vlist`,style:{height:`1.05em`},children:[_jsxs(_components.span,{style:{top:`-1.8479em`,marginLeft:`0em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3.05em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`}),_jsx(_components.span,{className:`mrel mtight`,children:`∈`}),_jsx(_components.span,{className:`mord text mtight`,children:_jsx(_components.span,{className:`mord textrm mtight`,children:`period`})})]})})]}),_jsxs(_components.span,{style:{top:`-3.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3.05em`}}),_jsx(_components.span,{children:_jsx(_components.span,{className:`mop op-symbol large-op`,children:`∑`})})]})]}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`1.4382em`},children:_jsx(_components.span,{})})})]})}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.1667em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0576em`},children:`E`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3361em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0576em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0359em`},children:`q`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`}),_jsx(_components.span,{className:`mpunct mtight`,children:`,`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`d`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`sc`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`h`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}}),_jsx(_components.span,{className:`mrel`,children:`≤`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}})]}),_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`2.4882em`,verticalAlign:`-1.4382em`}}),_jsx(_components.span,{className:`mop op-limits`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsxs(_components.span,{className:`vlist`,style:{height:`1.05em`},children:[_jsxs(_components.span,{style:{top:`-1.8479em`,marginLeft:`0em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3.05em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,children:`d`}),_jsx(_components.span,{className:`mrel mtight`,children:`∈`}),_jsx(_components.span,{className:`mord text mtight`,children:_jsx(_components.span,{className:`mord textrm mtight`,children:`period`})})]})})]}),_jsxs(_components.span,{style:{top:`-3.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3.05em`}}),_jsx(_components.span,{children:_jsx(_components.span,{className:`mop op-symbol large-op`,children:`∑`})})]})]}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`1.4382em`},children:_jsx(_components.span,{})})})]})}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.1667em`}}),_jsx(_components.span,{className:`mord accent`,children:_jsx(_components.span,{className:`vlist-t`,children:_jsx(_components.span,{className:`vlist-r`,children:_jsxs(_components.span,{className:`vlist`,style:{height:`0.5678em`},children:[_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord mathnormal`,children:`c`})]}),_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`accent-body`,style:{left:`-0.1944em`},children:_jsx(_components.span,{className:`mord`,children:`ˉ`})})]})]})})})}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2222em`}}),_jsx(_components.span,{className:`mbin`,children:`×`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2222em`}})]}),_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.9694em`,verticalAlign:`-0.2861em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0576em`},children:`E`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3361em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0576em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,children:`d`}),_jsx(_components.span,{className:`mpunct mtight`,children:`,`}),_jsx(_components.span,{className:`mord mathnormal mtight`,style:{marginRight:`0.0278em`},children:`r`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`a`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`t`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`e`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`d`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]})]})]})]})}),`\n`,_jsxs(_components.p,{children:[`You can front-load this allowance, which means using it before it has built up. Each day must stay within the daily limit, and the total must stay within the projected allowance for the period you are in. The projected allowance is what has built up so far, plus `,_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsx(_components.mrow,{children:_jsxs(_components.mover,{accent:`true`,children:[_jsx(_components.mi,{children:`c`}),_jsx(_components.mo,{children:`ˉ`})]})}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\bar{c}`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.5678em`}}),_jsx(_components.span,{className:`mord accent`,children:_jsx(_components.span,{className:`vlist-t`,children:_jsx(_components.span,{className:`vlist-r`,children:_jsxs(_components.span,{className:`vlist`,style:{height:`0.5678em`},children:[_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord mathnormal`,children:`c`})]}),_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`accent-body`,style:{left:`-0.1944em`},children:_jsx(_components.span,{className:`mord`,children:`ˉ`})})]})]})})})})]})})]}),` times today’s rated energy capacity for each day left in the period. Which period that is depends on your contract:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`With calendar years, it is the ongoing calendar year, and the ramp-up is part of it.`}),`\n`,_jsx(_components.li,{children:`With a separate ramp-up period, it runs until the expected end of the ramp-up. Contract Year 1 only begins after that, on the Start Date.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`A capacity step changes the projection from the day it takes effect, and days that have passed keep the capacity they had. If capacity is reduced after you have front-loaded part of the allowance, the projected allowance shrinks with it and you may have to discharge less for the rest of the period. Unavailability does not reduce the allowance.`}),`\n`,_jsx(_components.p,{children:`All four examples below are tolling agreements with an average daily allowance of 1.7, and all use the same virtual battery: 20 MWh for 90 days, then 60 MWh for 60 days, then 100 MWh. Each starts with the same usage, 2.1 cycles a day in step 1 and, where the allowance allows it, also in step 2. The figures are made up for illustration.`}),`\n`,_jsx(Heading,{level:`3`,id:`ramp-up-within-a-calendar-year`,children:`Ramp-up within a calendar year`}),`\n`,_jsx(_components.p,{children:`Here the ramp-up is part of the calendar year. Each day adds 1.7 times its rated energy capacity, and days before the virtual battery goes live add nothing, so a year with a ramp-up has a smaller allowance than a year at full capacity. The projection always runs to 31 December. At a constant capacity, the next calendar year has the full 621 cycles.`}),`\n`,_jsx(Heading,{level:`4`,id:`full-calendar-year`,children:`Full calendar year`}),`\n`,_jsx(_components.p,{children:`The virtual battery is live from 1 January.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Period`}),_jsx(_components.th,{children:`Rated energy`}),_jsx(_components.th,{children:`Days`}),_jsx(_components.th,{children:`Allowance per day (1.7 ×)`}),_jsx(_components.th,{children:`Daily maximum (3 ×)`}),_jsx(_components.th,{children:`Allowance`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Step 1, 1 Jan to 31 Mar`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`20 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`90`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`34 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`3,060 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Step 2, 1 Apr to 30 May`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`102 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`180 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`6,120 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Step 3, 31 May to 31 Dec`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`100 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`215`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`170 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`300 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`36,550 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Calendar year total`}),_jsx(_components.td,{}),_jsx(_components.td,{\"data-numeric\":`true`,children:`365`}),_jsx(_components.td,{}),_jsx(_components.td,{}),_jsx(_components.td,{\"data-numeric\":`true`,children:`45,730 MWh`})]})]})]}),`\n`,_jsx(OptimizedImage,{className:`mint-block dark:mint-hidden`,src:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-light.svg?fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=819b64f92b67895fb04250aa2acfd33d`,alt:`Full calendar year: discharge stays below the projected allowance, which rises from 12,410 to 31,110 to 45,730 MWh at the upsizes, and reaches 45,730 MWh on 31 December.`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`420`,height:`420`,\"data-path\":`images/cycle-limits-calendar-full-light.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-light.svg?w=280\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=e07cbb3cf6c1f5122b551f04bdf43fb6 280w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-light.svg?w=560\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=1819c71f3b486aea8ee577645ec48500 560w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-light.svg?w=840\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=4b34b9a2bb935258e9878040fb3785f5 840w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-light.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=1e071bace2d6d49e4727e4062993ebdd 1100w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-light.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=7408d7d26278fbddb8e8576f42ed4411 1650w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-light.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=1ce856e77ffdf58c8dd5b289e796b1c6 2500w`}),`\n`,_jsx(OptimizedImage,{className:`mint-hidden dark:mint-block`,src:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-dark.svg?fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=bf6107deed32c7f7cd7b45d671240d63`,alt:`Full calendar year: discharge stays below the projected allowance, which rises from 12,410 to 31,110 to 45,730 MWh at the upsizes, and reaches 45,730 MWh on 31 December.`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`420`,height:`420`,\"data-path\":`images/cycle-limits-calendar-full-dark.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-dark.svg?w=280\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=14fc35cb532a9e9a9c0039e5083ac185 280w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-dark.svg?w=560\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=8e84ed283ed6b00fa0d396371bdff4bd 560w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-dark.svg?w=840\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=3a526f85b91e45efdd1f0346c1ce77a0 840w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-dark.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=1dbcfbd989b5b2e97cd57579362e10f3 1100w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-dark.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=3881521befa022bcae6a9f7a0eb62edc 1650w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-full-dark.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=f258cde612a22f4009f1ae24e2d80e6b 2500w`}),`\n`,_jsx(_components.p,{children:`At the start of the year the projection assumes 20 MWh for all 365 days, which gives 12,410 MWh (365 × 34 MWh). If the battery discharges 2.1 cycles a day during step 1, 3,780 MWh in total, it is ahead of the 3,060 MWh built up but far below the projection. The upsize to 60 MWh raises the projected allowance to 31,110 MWh (3,060 MWh built up plus 275 × 102 MWh). The upsize to 100 MWh raises it to 45,730 MWh, the allowance for the whole year. At 2.1 cycles a day in step 2 as well, the battery has used 11,340 MWh by 30 May. That leaves 34,390 MWh for the remaining 215 days, about 160 MWh or 1.6 cycles per day at 100 MWh.`}),`\n`,_jsx(Heading,{level:`4`,id:`partial-calendar-year`,children:`Partial calendar year`}),`\n`,_jsx(_components.p,{children:`The virtual battery goes live on 16 May, so 230 days of the year remain.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Period`}),_jsx(_components.th,{children:`Rated energy`}),_jsx(_components.th,{children:`Days`}),_jsx(_components.th,{children:`Allowance per day (1.7 ×)`}),_jsx(_components.th,{children:`Daily maximum (3 ×)`}),_jsx(_components.th,{children:`Allowance`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Step 1, 16 May to 13 Aug`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`20 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`90`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`34 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`3,060 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Step 2, 14 Aug to 12 Oct`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`102 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`180 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`6,120 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Step 3, 13 Oct to 31 Dec`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`100 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`80`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`170 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`300 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`13,600 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Calendar year total`}),_jsx(_components.td,{}),_jsx(_components.td,{\"data-numeric\":`true`,children:`230`}),_jsx(_components.td,{}),_jsx(_components.td,{}),_jsx(_components.td,{\"data-numeric\":`true`,children:`22,780 MWh`})]})]})]}),`\n`,_jsx(OptimizedImage,{className:`mint-block dark:mint-hidden`,src:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-light.svg?fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=7f7fb0b24dd02f8b3501d8efe2e64ae3`,alt:`Partial calendar year from 16 May: discharge stays below the projected allowance, which rises from 7,820 to 17,340 to 22,780 MWh at the upsizes, and reaches 22,780 MWh on 31 December.`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`420`,height:`420`,\"data-path\":`images/cycle-limits-calendar-partial-light.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-light.svg?w=280\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=75332b4986fcb3fa8e754d68581c7f88 280w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-light.svg?w=560\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=3e1e45020676adead72657cac0b9e7d3 560w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-light.svg?w=840\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=5adb3bfb3b87c993ec6a8d13697fc162 840w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-light.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=3bd7c599a43edcdfe26ca7eaacbd40e0 1100w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-light.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=a4388ac0c239641a3988b922a09fb0de 1650w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-light.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=904c8f0ceb5152a165f9d060c68da14a 2500w`}),`\n`,_jsx(OptimizedImage,{className:`mint-hidden dark:mint-block`,src:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-dark.svg?fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=7afa4f98981681cdd2faaaa4ecc37d1b`,alt:`Partial calendar year from 16 May: discharge stays below the projected allowance, which rises from 7,820 to 17,340 to 22,780 MWh at the upsizes, and reaches 22,780 MWh on 31 December.`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`420`,height:`420`,\"data-path\":`images/cycle-limits-calendar-partial-dark.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-dark.svg?w=280\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=7fd46749cafb66b3b3075c941ce16149 280w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-dark.svg?w=560\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=d6ee1e6e5bac2ceb5f423e3baa97e0bd 560w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-dark.svg?w=840\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=ae89479fd25dc183563147e1e558f2f5 840w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-dark.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=0f514b2655b57bbaaaa5b5fd13440576 1100w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-dark.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=cc22272565521858aaf003ea3c4a89a0 1650w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-calendar-partial-dark.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=f59ffbf72eaeb9a7262f50f9351a9930 2500w`}),`\n`,_jsx(_components.p,{children:`At go-live the projection assumes 20 MWh for the 230 days left in the year, which gives 7,820 MWh (230 × 34 MWh). If the battery discharges 2.1 cycles a day during step 1, 3,780 MWh in total, it stays below that projection. The upsize to 60 MWh on 14 August raises the projected allowance to 17,340 MWh (3,060 MWh built up plus 140 × 102 MWh). The upsize to 100 MWh on 13 October raises it to 22,780 MWh. At 2.1 cycles a day in step 2 as well, the battery has used 11,340 MWh by 12 October. That leaves 11,440 MWh for the remaining 80 days, 143 MWh or about 1.4 cycles per day at 100 MWh.`}),`\n`,_jsx(Heading,{level:`3`,id:`separate-ramp-up-period-before-contract-year-1`,children:`Separate ramp-up period before Contract Year 1`}),`\n`,_jsx(_components.p,{children:`Here the ramp-up is a period of its own and belongs to no Contract Year. The projection runs until the expected end of the ramp-up. Contract Year 1 begins on the Start Date, once the ramp-up is concluded, and starts at zero with the full 621 cycles, whatever was used during the ramp-up.`}),`\n`,_jsx(Heading,{level:`4`,id:`ramp-up-of-a-full-year`,children:`Ramp-up of a full year`}),`\n`,_jsx(_components.p,{children:`The ramp-up lasts 365 days, with the same steps as the full calendar year above.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Period`}),_jsx(_components.th,{children:`Rated energy`}),_jsx(_components.th,{children:`Days`}),_jsx(_components.th,{children:`Allowance per day (1.7 ×)`}),_jsx(_components.th,{children:`Daily maximum (3 ×)`}),_jsx(_components.th,{children:`Allowance`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ramp-up, step 1, day 1 to 90`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`20 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`90`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`34 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`3,060 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ramp-up, step 2, day 91 to 150`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`102 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`180 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`6,120 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ramp-up, step 3, day 151 to 365`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`100 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`215`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`170 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`300 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`36,550 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ramp-up total`}),_jsx(_components.td,{}),_jsx(_components.td,{\"data-numeric\":`true`,children:`365`}),_jsx(_components.td,{}),_jsx(_components.td,{}),_jsx(_components.td,{\"data-numeric\":`true`,children:`45,730 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Contract Year 1 from the Start Date`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`100 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`365`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`170 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`300 MWh`}),_jsx(_components.td,{children:`621 cycles (62,100 MWh)`})]})]})]}),`\n`,_jsx(OptimizedImage,{className:`mint-block dark:mint-hidden`,src:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-light.svg?fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=5a30b628d8dc762fc592e26565b14f88`,alt:`Separate ramp-up of 365 days: discharge stays below the projected allowance, which rises from 12,410 to 31,110 to 45,730 MWh at the upsizes, and reaches 45,730 MWh on the Start Date.`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`420`,height:`420`,\"data-path\":`images/cycle-limits-rampup-full-light.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-light.svg?w=280\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=51bd1c478e2053df71cf539ffb19b2b1 280w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-light.svg?w=560\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=55c7fa5e51e3a307dce86f5bae6197ff 560w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-light.svg?w=840\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=53b26877fd31a835f7649852fcfe1f56 840w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-light.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=79e43745110a9062f99752b32129aa64 1100w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-light.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=d0957e816a99c7e377b6bff817b56505 1650w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-light.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=68c29e8d4a6e9097bb457f9aaf91538e 2500w`}),`\n`,_jsx(OptimizedImage,{className:`mint-hidden dark:mint-block`,src:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-dark.svg?fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=6d3530f1a428e4d67ecfdd6c0bd03251`,alt:`Separate ramp-up of 365 days: discharge stays below the projected allowance, which rises from 12,410 to 31,110 to 45,730 MWh at the upsizes, and reaches 45,730 MWh on the Start Date.`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`420`,height:`420`,\"data-path\":`images/cycle-limits-rampup-full-dark.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-dark.svg?w=280\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=d826db5a655c9b05d7792a6c5839cc69 280w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-dark.svg?w=560\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=1df05f92d3936a750ef2fb9a323a5cc7 560w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-dark.svg?w=840\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=f895080c8019ba39d23e60cb45b0fd03 840w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-dark.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=2e9e28299e03fd69a84e1676b789a309 1100w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-dark.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=c41b599b6e6389cc0bd4d2865d39f407 1650w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-full-dark.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=d540bbe5286dc5cc01dc9877f8051bcd 2500w`}),`\n`,_jsx(_components.p,{children:`The numbers are the same as for the full calendar year. The projection starts at 12,410 MWh and rises to 31,110 MWh and 45,730 MWh with the upsizes, and 34,390 MWh, about 1.6 cycles per day, are left for the last 215 days. Only the next period has a different name: on the Start Date, Contract Year 1 begins with the full 621 cycles.`}),`\n`,_jsx(Heading,{level:`4`,id:`ramp-up-shorter-than-a-year`,children:`Ramp-up shorter than a year`}),`\n`,_jsx(_components.p,{children:`The ramp-up lasts 150 days and ends after step 2.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Period`}),_jsx(_components.th,{children:`Rated energy`}),_jsx(_components.th,{children:`Days`}),_jsx(_components.th,{children:`Allowance per day (1.7 ×)`}),_jsx(_components.th,{children:`Daily maximum (3 ×)`}),_jsx(_components.th,{children:`Allowance`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ramp-up, step 1, day 1 to 90`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`20 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`90`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`34 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`3,060 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ramp-up, step 2, day 91 to 150`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`60`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`102 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`180 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`6,120 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ramp-up total`}),_jsx(_components.td,{}),_jsx(_components.td,{\"data-numeric\":`true`,children:`150`}),_jsx(_components.td,{}),_jsx(_components.td,{}),_jsx(_components.td,{\"data-numeric\":`true`,children:`9,180 MWh`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Contract Year 1 from the Start Date`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`100 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`365`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`170 MWh`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`300 MWh`}),_jsx(_components.td,{children:`621 cycles (62,100 MWh)`})]})]})]}),`\n`,_jsx(OptimizedImage,{className:`mint-block dark:mint-hidden`,src:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-light.svg?fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=ffc41e45b289278d491472b92c61bc00`,alt:`Separate ramp-up of 150 days: discharge stays below the projected allowance, which rises from 5,100 to 9,180 MWh at the upsize, and reaches 9,180 MWh on the Start Date.`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`420`,height:`420`,\"data-path\":`images/cycle-limits-rampup-partial-light.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-light.svg?w=280\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=59dd52366275791e6460ac86895411c0 280w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-light.svg?w=560\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=f0ddbc7c2d55862e7053885ff2d91747 560w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-light.svg?w=840\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=34d44a353b033b45d3f9fd4ed5534f78 840w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-light.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=246e909c9fd949a2adfbe0ebfd2350a1 1100w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-light.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=f867bcd6847f00785a672ef2861b8ee4 1650w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-light.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=3455ed24f9fb23279be3380585c83239 2500w`}),`\n`,_jsx(OptimizedImage,{className:`mint-hidden dark:mint-block`,src:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-dark.svg?fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=b89db8ad1a8f6774f4d8fe5fdf4eb708`,alt:`Separate ramp-up of 150 days: discharge stays below the projected allowance, which rises from 5,100 to 9,180 MWh at the upsize, and reaches 9,180 MWh on the Start Date.`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`420`,height:`420`,\"data-path\":`images/cycle-limits-rampup-partial-dark.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-dark.svg?w=280\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=52ef39895aee4f0543ccb9a11a7f9c65 280w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-dark.svg?w=560\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=c162e1aea6c31da34872324bbaafe13b 560w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-dark.svg?w=840\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=f4e641e60b48430cfa6fdcf2bda52353 840w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-dark.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=345e47c89c9d502a1a3643fff8899e17 1100w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-dark.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=30afe079478a672e3ba0ae1700273f6f 1650w, https://mintcdn.com/terralayr-90/KBehM2LynrofK-An/images/cycle-limits-rampup-partial-dark.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=KBehM2LynrofK-An\u0026q=85\u0026s=14150dcc1d2b66ccf06eb46a7bbe9d50 2500w`}),`\n`,_jsx(_components.p,{children:`At the start the projection assumes 20 MWh for all 150 ramp-up days, which gives 5,100 MWh (150 × 34 MWh). If the battery discharges 2.1 cycles a day during step 1, 3,780 MWh in total, it is ahead of the 3,060 MWh built up but still below the projection. The upsize to 60 MWh raises the projected allowance to 9,180 MWh (3,060 MWh built up plus 60 × 102 MWh). That leaves 5,400 MWh for step 2, which is 90 MWh or 1.5 cycles per day at 60 MWh. Keeping 2.1 cycles a day, as in the other examples, would exceed the allowance, because the projection ends with the ramp-up instead of running on to the end of a year. On the Start Date the count starts again at zero, and Contract Year 1 has its full 621 cycles.`})]})}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":"Cycle limits","description":"How cycle limits are counted, which period each limit covers, and how unavailability and capacity changes affect them.","href":"/layrUserGuide/deep-dives/cycling-calculations"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What counts towards the limits","slug":"what-counts-towards-the-limits","depth":2,"children":[]},{"title":"Daily limit","slug":"daily-limit","depth":2,"children":[]},{"title":"Period limit","slug":"period-limit","depth":2,"children":[{"title":"Which period counts","slug":"which-period-counts","depth":3,"children":[]}]},{"title":"Ramp-up period","slug":"ramp-up-period","depth":2,"children":[{"title":"Ramp-up within a calendar year","slug":"ramp-up-within-a-calendar-year","depth":3,"children":[]},{"title":"Full calendar year","slug":"full-calendar-year","depth":4,"children":[]},{"title":"Partial calendar year","slug":"partial-calendar-year","depth":4,"children":[]},{"title":"Separate ramp-up period before Contract Year 1","slug":"separate-ramp-up-period-before-contract-year-1","depth":3,"children":[]},{"title":"Ramp-up of a full year","slug":"ramp-up-of-a-full-year","depth":4,"children":[]},{"title":"Ramp-up shorter than a year","slug":"ramp-up-shorter-than-a-year","depth":4,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"dynamicCss":".mint-block {\n display: block\n}\n.mint-hidden {\n display: none\n}\n.dark\\:mint-block:is(.dark *) {\n display: block\n}\n.dark\\:mint-hidden:is(.dark *) {\n display: none\n}","subdomain":"terralayr-90","siteName":"terralayr","title":"Cycle limits - terralayr","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T15:26:18.211Z","gitLastModified":"2026-10-23T15:25:22.000Z","originalFileLocation":"layrUserGuide/deep-dives/cycling-calculations.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=\"How cycle limits are counted, which period each limit covers, and how unavailability and capacity changes affect them.\">\u003cmeta data-mint-head name=\"application-name\" content=\"terralayr\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_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/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_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/terralayr-90/QAqKhv9VYa2PiyeN/_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/terralayr-90/QAqKhv9VYa2PiyeN/_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/terralayr-90/QAqKhv9VYa2PiyeN/_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/terralayr-90/QAqKhv9VYa2PiyeN/_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/terralayr-90/QAqKhv9VYa2PiyeN/_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/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Cycle limits - terralayr\">\u003cmeta data-mint-head property=\"og:description\" content=\"How cycle limits are counted, which period each limit covers, and how unavailability and capacity changes affect them.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"terralayr\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://terralayr-90.mintlify.app/_mintlify/api/og/v2?division=Deep+dives\u0026amp;title=Cycle+limits\u0026amp;description=How+cycle+limits+are+counted%2C+which+period+each+limit+covers%2C+and+how+unavailability+and+capacity+changes+affect+them.\u0026amp;theme=6829ac6d8fb6a04cc851f81c\u0026amp;signature=bbec696e3efb36864c360d60b0130ad90acd6bde2bc40d2e7f8e0355d3f507f9\">\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=\"Cycle limits - terralayr\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How cycle limits are counted, which period each limit covers, and how unavailability and capacity changes affect them.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://terralayr-90.mintlify.app/_mintlify/api/og/v2?division=Deep+dives\u0026amp;title=Cycle+limits\u0026amp;description=How+cycle+limits+are+counted%2C+which+period+each+limit+covers%2C+and+how+unavailability+and+capacity+changes+affect+them.\u0026amp;theme=6829ac6d8fb6a04cc851f81c\u0026amp;signature=bbec696e3efb36864c360d60b0130ad90acd6bde2bc40d2e7f8e0355d3f507f9\">\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/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"terralayr\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#13151A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/layrUserGuide/deep-dives/cycling-calculations.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.trlyr.com/#organization\",\"name\":\"terralayr\",\"url\":\"https://docs.trlyr.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/terralayr-90/i2mowZXsRr_Wp7MC/logo/terralayrDark.svg?fit=max\u0026auto=format\u0026n=i2mowZXsRr_Wp7MC\u0026q=85\u0026s=eb99311be47192737889489eb393e3d4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.trlyr.com#website\",\"name\":\"terralayr\",\"url\":\"https://docs.trlyr.com\",\"publisher\":{\"@id\":\"https://docs.trlyr.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations#webpage\",\"url\":\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations\",\"name\":\"Cycle limits\",\"description\":\"How cycle limits are counted, which period each limit covers, and how unavailability and capacity changes affect them.\",\"dateModified\":\"2026-10-23T15:25:22.000Z\",\"isPartOf\":{\"@id\":\"https://docs.trlyr.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Deep dives\",\"item\":\"https://docs.trlyr.com/layrUserGuide/deep-dives/ramp-rates\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cycle limits\",\"item\":\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations#article\",\"headline\":\"Cycle limits\",\"name\":\"Cycle limits\",\"description\":\"How cycle limits are counted, which period each limit covers, and how unavailability and capacity changes affect them.\",\"url\":\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations\",\"mainEntityOfPage\":{\"@id\":\"https://docs.trlyr.com/layrUserGuide/deep-dives/cycling-calculations#webpage\"},\"dateModified\":\"2026-10-23T15:25:22.000Z\",\"publisher\":{\"@id\":\"https://docs.trlyr.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.trlyr.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"terralayr\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"terralayr","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Layr User Guide","groups":[{"group":"Overview","pages":[{"title":"Introduction","href":"/layrUserGuide/introduction"}]},{"group":"Getting Started","pages":[{"title":"Virtual asset off-taker onboarding","href":"/layrUserGuide/getting-started/offtaker-onboarding"},{"title":"Designated optimiser onboarding","href":"/layrUserGuide/getting-started/do-onboarding"},{"title":"Virtual battery auction (vBA) onboarding","href":"/layrUserGuide/getting-started/vba-onboarding"},{"title":"Asset owner platform onboarding","href":"/layrUserGuide/getting-started/asset-owner-onboarding"}]},{"group":"Features","pages":[{"title":"Ancillary services (virtual asset level)","href":"/layrUserGuide/features/ancillary-services-virtual-asset-level"},{"title":"Ancillary services (block level)","deprecated":true,"href":"/layrUserGuide/features/ancillary-services-block-level"},{"title":"Virtual asset unavailabilities","href":"/layrUserGuide/features/unavailabilities"},{"title":"Virtual Asset Scheduling Errors","href":"/layrUserGuide/features/scheduling-errors"}]},{"group":"Deep dives","pages":[{"title":"Ramp Rates","href":"/layrUserGuide/deep-dives/ramp-rates"},{"title":"Soft re-validation","description":"A detailed reference for the soft re-validation logic applied to dispatch schedules at 7 minutes before delivery.","href":"/layrUserGuide/deep-dives/soft-revalidation"},{"title":"Cycle limits","href":"/layrUserGuide/deep-dives/cycling-calculations"}]},{"group":"Reference","pages":[{"title":"Glossary","description":"Definitions of key terms used across the terralayr platform and documentation.","href":"/layrUserGuide/glossary"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/trlyr-API/introduction"}]},{"tab":"Product Updates \u0026 Changelog","pages":[{"title":"Product Updates \u0026 Changelog","href":"/changelog"}]},{"tab":"BESS Academy","pages":[{"title":"BESS Academy","href":"/BESS-academy/introduction"}]},{"tab":"LAYR Academy","pages":[{"title":"LAYR Academy","href":"/LAYR-academy/introduction"}]}]},"title":"Cycle limits - terralayr","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-CVZVK4hN.js","lightbox-handle-r17bVUz3.js"]}