Support Terms and Conditions
Version: 23 September 2026
1. Scope
These terms govern support subscriptions and support bundles offered by PyPSA Labs gGmbH ("PyPSA Labs"). They apply to clients acting in the course of their commercial or independent professional activity (Unternehmer, § 14 BGB), including public bodies and non-profit organisations. A contract takes effect once PyPSA Labs confirms the client's request in text form (Textform, § 126b BGB), for example by e-mail, or both parties sign an offer. Individually agreed provisions (Individualabreden, § 305b BGB) take precedence over these terms.
2. Model and prices
Both products combine a contribution to the general maintenance and development of PyPSA with a corresponding entitlement to technical support. Each hour of either part is billed at 130 € (net). Each support hour is matched with maintenance and development hours at the following ratio:
- the first 5 support hours per month (subscription) or 30 support hours (bundle): 2:1;
- the next 5 support hours per month or 30 support hours: 1.5:1;
- every further support hour: 1:1.
The maintenance and development contribution funds general work on the public PyPSA repositories. PyPSA Labs decides at its own discretion which work to carry out; the contribution does not entitle the client to commissioned development. It is delivered regardless of the support hours drawn. Support beyond the agreed budget can be arranged by agreement at the effective rate of the client's contract.
3. Discounted rate
Public research organisations, non-profit organisations, and organisations established in an economy classified by the World Bank as low-income, lower-middle-income or upper-middle-income, or in a country or territory on the OECD DAC List of ODA Recipients, receive the 1:1 ratio from the first support hour. PyPSA Labs may request reasonable evidence of eligibility; if eligibility is not met or not shown, the regular ratio applies.
4. Subscriptions
The volume is chosen in support hours per month, with a minimum of 2 support hours. The initial term is 6 months, after which the subscription continues in three-month periods (each a "billing period"). Support hours are pooled and balanced within each billing period and do not carry over beyond it. The volume can be increased at any time by agreement and reduced after the initial term, effective from the next billing period. Either party may cancel with one month's notice to the end of a billing period; the earliest effective date is the end of the initial term. The right to extraordinary termination for good cause (§ 314 BGB) remains unaffected.
5. Bundles
A bundle is a fixed number of support hours, at least 10, to be used within an agreed period of 1 to 24 months. Hours may be drawn at any time within the period; unused hours expire at its end and are not refunded. Additional hours can be added by agreement at the rates in section 2 applied to the total volume. A bundle ends automatically with the period and requires no cancellation.
6. Scope of support
Support covers:
- PyPSA and adjacent Python libraries (linopy, atlite, powerplantmatching, technology-data);
- dedicated model support for PyPSA-Eur and PyPSA-DE;
- other regional or derived models with general PyPSA knowledge;
- prioritised handling of reported issues, feature requests and bugs;
- written support on PyPSA usage and debugging of specific issues;
- technical calls for in-depth consultations and guidance by appointment.
Not included:
- custom development, hosting or operation of models for the client;
- client-specific interfaces to internal IT systems and pipelines;
- installation issues related to the client's IT environment;
- guaranteed delivery of specific features in PyPSA;
- on-site work, or support for tools outside the PyPSA ecosystem.
7. How support works
- Channels: written support is requested by e-mail (support@pypsalabs.org); a ticket-based system may be introduced later. Technical calls are held via web conference and scheduled through a booking tool.
- Authorised users: the client provides a list of users of their organisation authorised to draw on the support budget.
- Response: a first substantive response is provided within 2 business days. This is a response commitment, not a resolution guarantee.
- Appointments: a call is scheduled no later than the third business day, counting the request day as the first.
- Cooperation (Mitwirkung): response times assume the client has provided the information reasonably needed to work on a request, such as a reproducible example and/or mathematical formulation.
- Time recording: support is recorded in minimum blocks of 15 minutes; each response states the billable time spent.
- Business hours: Monday to Friday, 09:00 to 17:00 CET/CEST, excluding public holidays in Berlin, Germany.
- Availability: response and appointment times apply outside announced team-wide absences, which total at most two weeks per year.
8. Reviews
On request, and subject to availability and agreement, PyPSA Labs reviews studies, reports, or analyses produced with PyPSA at a rate of 150 € per hour (net). This is an optional service billed separately and not drawn from the support budget.
9. Payment and VAT
All amounts are net and in euro. Value-added tax is handled according to the client's location: clients in Germany pay 19 % VAT in addition; business clients elsewhere in the EU with a valid VAT ID are invoiced without German VAT under the reverse-charge mechanism; business clients outside the EU are not subject to German VAT (nicht steuerbar).
Subscriptions are invoiced in advance at the start of each billing period. Bundles are invoiced in advance in equal instalments, one for each three-month period of the agreed period or part thereof. Invoices are payable within 14 days of the invoice date by bank transfer. Fees for a period that has begun remain due. Statutory default interest (§ 288 BGB) applies to late payment, and PyPSA Labs may suspend support while payment is overdue. The client may set off or withhold payment only on the basis of undisputed or legally established claims.
PyPSA Labs may adjust the rates at most once per 12 months with 3 months' written notice to reflect changes in salaries or market rates; if the client does not accept the change, it may cancel with effect from the date the change takes effect. Bundles already agreed are not affected.
10. Nature of services
The agreement is a service contract (Dienstvertrag, §§ 611 ff. BGB). Services are performed with due professional care and according to the state of the art; PyPSA Labs owes diligent performance, not a specific result or successful resolution (kein Erfolg geschuldet). PyPSA Labs may subcontract parts of the services and remains fully responsible for their performance; subcontractors are bound by the same confidentiality obligations, and access to the client's confidential material requires the client's prior agreement.
11. Contributions and intellectual property
Work performed as general maintenance and development is contributed to the public PyPSA repositories under the MIT licence. No exclusive intellectual property is transferred to the client; the client receives a perpetual, irrevocable, non-exclusive right of use (einfaches Nutzungsrecht) under the terms of the MIT licence, in common with all users. Material the client provides in the course of support, and client-specific answers, are treated as confidential.
12. Confidentiality and data protection
Each party keeps the other's confidential information secret, uses it only to perform the agreement, and protects it with the same care it applies to its own confidential information of like importance. This does not cover information that is or becomes public without breach, was already lawfully known, is independently developed, or must be disclosed by law or authority. The obligation continues for three years after the agreement ends.
The parties process personal data exchanged for the performance of the agreement, in particular the contact details of authorised users, as separate controllers in accordance with our privacy policy at https://pypsalabs.org/privacy. Should personal data be processed on the client's behalf, the parties will conclude a data processing agreement pursuant to Art. 28 GDPR.
13. Liability
For intent and gross negligence (Vorsatz und grobe Fahrlässigkeit), and for injury to life, body or health, PyPSA Labs is liable under the statutory rules. For slight negligence (einfache Fahrlässigkeit), PyPSA Labs is liable only where a material contractual duty (Kardinalpflicht) is breached, and then only for the foreseeable, contract-typical damage; any other liability, including for indirect damage and lost profits, is excluded. Except where liability is mandatory by law, total liability is capped at the net fees paid by the client in the 12 months before the event giving rise to the claim.
14. Final provisions
German law applies; place of jurisdiction is Berlin. Neither party may transfer the agreement or its rights and obligations to a third party without the other party's prior consent. Amendments require text form and the agreement of both parties. The version of these terms in force at the time of contract conclusion applies. Should any provision be or become invalid, the remaining provisions stay in effect and the parties will replace the invalid provision with a valid one that comes closest to its intent.