ToolAssay

Battery storage (BESS) day-ahead arbitrage revenue for a European bidding zone

Battery storage (BESS) day-ahead arbitrage revenue for a European bidding zone: perfect-foresight LP per day on historical prices, annualised revenue per MW, cycles, payback. Use when sizing or screening a battery project, comparing zones, or answering how much a battery would have earned in a given year.

Answeringour last check, 2026-10-20
1 of 1checks answered this week
189 msmedian answer time
$0.5listed price per call
$0.5price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

GET https://bess-x402.onrender.com/v1/bess/arbitrage

CategoryMarket data
Provider hostbess-x402.onrender.com
Networkseip155:137, eip155:42161, eip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-20 valid payment request 402$0.5 189 ms

Example input (from the provider)

{
  "method": "GET",
  "queryParams": {
    "end": "2025-12-31",
    "energy_mwh": 2,
    "power_mw": 1,
    "start": "2025-01-01",
    "zone": "DE-LU"
  },
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "GET",
            "HEAD",
            "DELETE"
          ],
          "type": "string"
        },
        "queryParams": {
          "properties": {
            "capex_per_kwh": {
              "description": "Optional capex per kWh for a simple payback estimate",
              "type": "number"
            },
            "daily": {
              "description": "Include the per-day breakdown, default false",
              "type": "boolean"
            },
            "degradation_cost_per_mwh": {
              "description": "Cost per MWh discharged, default 0",
              "type": "number"
            },
            "end": {
              "description": "Last day, YYYY-MM-DD, at most 366 days after start",
              "format": "date",
              "type": "string"
            },
            "energy_mwh": {
              "description": "Battery energy capacity in MWh",
              "type": "number"
            },
            "max_cycles_per_day": {
              "description": "Default 1",
              "type": "number"
            },
            "power_mw": {
              "description": "Battery power rating in MW",
              "type": "number"
            },
            "round_trip_efficiency": {
              "description": "0-1, default 0.88",
              "type": "number"
            },
            "start": {
              "description": "First day, YYYY-MM-DD",
              "format": "date",
              "type": "string"
            },
            "zone": {
              "description": "European bidding zone",
              "enum": [
                "AT",
                "BE",
                "CH",
                "CZ",
                "DE-LU",
                "DK1",
                "DK2",
                "FR",
                "HU",
                "IT-North",
                "NL",
                "NO2",
                "PL",
                "SE4",
                "SI"
              ],
              "type": "string"
            }
          },
          "required": [
            "zone",
            "start",
            "end"
          ],
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON