Open source · September 2026 – in progress
Singularity Quant ETRM — Energy Analytics Workspace
An open-source Streamlit workspace for Swiss day-ahead electricity price analytics: KPI dashboards, period comparison, threshold alerts, hourly heatmaps, F1/F2/F3 time bands, CSV export and a Monte Carlo simulator.
- Timeline
- September 2026 – in progress
- Role
- Designer & sole developer
- Type
- Open source
Tech stack
Challenge
Day-ahead electricity prices on the Swiss market (Swissix) move in hourly granularity across daily, weekly and seasonal patterns. Understanding them requires more than a price chart: spreads between periods, time-band breakdowns (F1/F2/F3 tariff slots) and volatility estimates are what actually drive decisions for anyone sizing storage or flexible loads.
The challenge was to build a single interactive workspace that an engineer could open and immediately explore — KPIs at a glance, then drill-downs into hours, bands and scenarios — without writing analysis code for every question.
Approach
I built the workspace in Streamlit and Python, with pandas for the data pipeline and Plotly for the interactive charts, pulling price data from the ENTSO-E Transparency Platform.
The app is organized as an analysis workspace with 60+ tabs: an 8-KPI summary header, period-over-period comparison, configurable threshold alerts, an hourly heatmap, F1/F2/F3 band analysis, CSV export for offline work, and a Monte Carlo simulator for scenario exploration.
I run a continuous QA loop over the codebase — hourly automated checks that keep every tab green — so the workspace stays reliable as new analyses are added.
Outcome
The workspace is live and free to use, embedded as an interactive terminal on this portfolio. It remains an active open-source project: tabs are added and refined regularly, and the QA cycle keeps regressions out.
It also became a reusable pattern for my other data projects: a single Streamlit app structured as a tabbed workspace, with alerts and export built in, is now the template I reach for whenever a dataset needs exploring.