We've been working with HUPX, Hungary's power exchange, for several years. What started as a proof of concept eventually turned into Labs, a platform that publishes electricity market data across Central and Southeast Europe.

When HUPX later joined with SEEPEX (Serbia) and BSP (Slovenia) to form the ADEX Group, Labs expanded to serve all three exchanges.

Today it handles 50–60 thousand requests per day, serves thousands of users, and runs at 99.99% uptime.

Who Uses It

The user base is broader than you might expect:

  • Traders making real-time decisions
  • Data aggregators and publishers who need reliable price signals for their own products
  • Large industrial consumers tracking prices to optimize energy purchases
  • Solar and renewable companies forecasting revenue
  • Analytics firms building models on top of the data

This diversity shaped many of our decisions. We needed an API robust enough for automated systems polling every few minutes, but also a UI accessible to someone checking prices once a day. Embeddable charts for publishers. Downloadable datasets for analysts.


What Existed Before

The previous setup was simple: database tables maintained by a local vendor, a website that displayed the data. It worked, but had clear limitations:

❌  No way to sell premium data products

❌  No API for automated systems

❌  No CRM integration

❌  Only HUPX data—nothing from other exchanges

Labs needed to serve both the free public data that regulations require and the historical or non-public data that companies will pay for. It needed programmatic access for automated systems, embeddable charts, and support for data from multiple exchanges with different formats.


The Stack

Go

Backend API—performance & concurrency

TypeScript

Frontend & parts of backend

Azure

Cloud infrastructure

CI/CD

With test coverage

The team: a project manager, UI designer, and three to five developers including a lead, depending on the phase.


Technical Challenges

Data Ingestion

Market data arrives through multiple channels: databases, FTP, various APIs. Each source has its own format, schedule, and failure modes. The Intraday Continuous market is particularly demanding, it runs around the clock with significant data volumes.

Key decision: We completely isolated data synchronization from user-facing functionality. It runs as a separate service. If sync encounters issues, users can still access previously ingested data.

This architecture has proven valuable on multiple occasions.

The 60-to-15-Minute Transition

During development, the European market began transitioning from 60-minute to 15-minute Market Time Units. This meant:

  • 4× the data points
  • Schema changes across the system
  • Simultaneous support for both granularities in the database, queries, and UI

The modular architecture helped us absorb this mid-project change without major disruption.

Timezone Handling

Raw data arrives in UTC or CET depending on the source. All user-facing displays are in CET. This becomes complex around Daylight Saving Time transitions.

⚠️ The autumn transition problem:

On the autumn transition, there's a 25-hour day. Aggregation queries assuming 24 hours produce incorrect results. Charts that don't account for the extra hour display misleading data. Standard libraries handle this poorly.

We built custom logic for queries and display components. Users don't notice the complexity, which is exactly the goal.

Auction States

Day-ahead and intraday auctions have three states: preliminary, final, and deleted. Final results are immutable. Preliminary can update. Deleted auctions present a specific challenge.

When an IDA auction is cancelled, nothing is written to the source database, there's simply no record. But Labs needs to display to users that an auction was deleted, not just missing.

We built logic that detects the absence of expected data, cross-references status information from a separate system, and renders the deletion state appropriately. State transitions between preliminary and final also required time-windowed invalidation and resync logic.


Coordination

Labs sits at the end of a chain involving multiple organizations handling infrastructure, database operations, raw data processing, and CRM integration. After ADEX formed, we added coordination with teams in Slovenia and Serbia.

When something breaks, users experience it as a Labs problem regardless of where the issue originates.

We've invested in monitoring that helps quickly identify whether problems are ours or upstream, but the coordination overhead is real.


Availability

The IDC market runs continuously. Data aggregators' pipelines don't pause for weekends. Forecasting models need fresh data on holidays. Labs needs to be available essentially all the time.

Beyond architectural choices like service isolation and graceful degradation, this means:

Monitoring
Alerting
On-call procedures
Security audits
Documented runbooks
Graceful degradation

The 99.99% uptime reflects ongoing operational investment.


Current State

The first version supporting paid subscribers launched in summer 2025. We started with HUPX data only; BSP and SEEPEX integration followed after the ADEX Group formed.

✓ Users consistently note that the platform feels fast—the result of significant work on caching and query optimization.

✓ Agile release cycle: small feature requests often ship within a week, and we deploy updates frequently—sometimes daily.

✓ Low error rate—bugs occur mostly around major releases, but overall system stability is high.


Lessons

01 — Domain expertise matters

In energy markets, the regulatory environment, market structures, and operational patterns are specific enough that generic approaches fall short.

02 — Design for failure from the start

External dependencies break. Data arrives late or malformed. What matters is whether the system handles failures gracefully.

03 — Coordination is as hard as the code

Aligning multiple companies on timelines and priorities requires sustained effort. Often this proves as challenging as the technical work itself.


Lexunit has been working with HUPX since before ADEX existed—starting with a POC, then continuous development for over eighteen months, continuing through 2026.

If you're facing similar challenges in energy data or complex multi-stakeholder platforms, we're happy to talk.