All articles
Use Case#power-bi#dataverse#renewable-energy#controlling#dax

PV Project Controlling: 281 Projects in One Dashboard

11 May 20266 min read
Solar panel array generating renewable energy — representing PV project portfolio management

Photo: Pixabay / Pexels

The Challenge: Distributed Data, No Visibility

Picture a mid-sized energy company running 281 active PV projects across Germany. New installations come online every month. Yet no one can quickly answer a basic question: "How profitable is project XY?"

The data exists everywhere — but nowhere unified:

  • Project master data & costs stored in Dataverse (internal system)
  • Actual bookings & revenue tracked in DATEV (accounting software)
  • Feed-in volumes (kWh) scattered across different grid operator portals
  • Weather data & irradiance values in external APIs

When a project manager asked something simple — "What profit did project XY generate last month?" — the answer required two hours of manual data gathering. And errors were frequent.

More critical: There were no early warnings. If a project underperformed its yield curve, the company wouldn't know for weeks. And the annual report? Three weeks of manual compilation just to aggregate the numbers.

The Goal: Real-Time Dashboards for 281 Projects

The objective was clear: One source of truth. Power BI would become the central reporting layer, connecting all data sources and giving management transparent visibility into the entire PV portfolio.

Specifically, the company needed:

  1. Portfolio overview: All 281 projects at a glance, with clear status (green = healthy, yellow = warning, red = critical)
  2. Project deep dive: For each project: revenue, costs, kWh production, document status
  3. Grid operator performance: Which utilities pay on time? Where are payment backlogs?
  4. Yield analysis: kWh/kWp comparisons across all projects, weather-normalized
  5. Financial summary: A P&L view for annual reporting — no manual data compilation needed

The Solution: Data Architecture and DAX Logic

We built a multi-layered Power BI solution:

Data Model

Fact Tables:

  • Revenue: All income per project per month (from DATEV, aggregated by project code)
  • Costs: All expenses (O&M, insurance, taxes, financing) per project
  • kWh Production: Feed-in volumes from grid operator APIs, updated daily
  • Documents: Contract, insurance, and technical documentation status (from Dataverse)

Dimension Tables:

  • Projects: Project ID, type (rooftop/utility-scale), location, installed capacity (kWp), commissioning date
  • Grid Operators: Utility data, billing cycles, contact information
  • Regions: Federal state, geographic clusters, weather data mapping
  • Time: Date, month, quarter, year (for quick time comparisons)

Core Measures (DAX)

The KPIs were simple yet powerful:

Revenue per kWp = DIVIDE([Total Revenue], [Installed Capacity])
Cost per kWp = DIVIDE([Total Costs], [Installed Capacity])
Yield Ratio = DIVIDE([Actual kWh], [Expected kWh])
Contribution Margin = [Total Revenue] - [Total Costs]
Days Overdue Payments = TODAY() - [Invoice Date]

The Yield Ratio was especially critical. By comparing actual feed-in against expected values (based on historical data and weather APIs), we immediately spotted underperforming assets.

Automating Data Pipelines

Manual work was strictly forbidden. So we built an automated refresh system:

  • Dataverse connector: Project master data and costs at 04:00 AM
  • Power BI Gateway + REST APIs: DATEV bookings at 06:00 AM
  • Grid operator portal connector: kWh data at 08:00 AM (most utilities refresh overnight)
  • Weather APIs: Daily, to normalize yield forecasts

Results were fresh and ready by 08:30 AM every morning. Reliable. Error-free. No manual touch.

Row-Level Security

Each project manager sees only the projects in their portfolio. This was technically and legally essential. We implemented Power BI RLS (row-level security) via a simple user-project mapping stored in Dataverse.

The Dashboards in Practice

Five dashboards were built. Here are the most impactful:

1. Portfolio Overview

An executive view of all 281 projects. Map with color-coding (profitability), total revenue, total costs, average yield per kWp. A traffic light system instantly flags problems: below 70% of expected yield = red.

2. Project Deep Dive

Project managers select a single project and see:

  • Revenue (monthly, YTD)
  • Costs broken down by category
  • kWh yield vs. forecast
  • Document status (insurance, grid operator contracts, maintenance plans)

3. Grid Operator Performance

Which utilities perform reliably? This dashboard shows:

  • Average payment duration per grid operator
  • Invoices outstanding over 30 days
  • Relationship quality based on consistency and timing

4. Yield Analysis

A technical view: kWh/kWp across projects. Projects in the same region with similar orientation should produce similar yields. If they don't, there's a technical issue or data error to investigate.

5. Financial Summary

P&L view for annual reporting. Fully interactive: filter by region, project type, time period. Numbers are pre-configured — write commentary, done.

The Results: Before and After

| Metric | Before | After | |--------|--------|-------| | "How is project X performing?" | 2 hours | 10 seconds | | Annual report compilation | 3 weeks | 2 days | | Underperforming projects identified | Weeks later | First week (12 detected) | | Overdue grid operator payments | Unknown | €47,000 identified & recovered |

The 12 projects flagged in the first week had yields below 80% of expected. Root causes: two had inverter defects, four had data errors in utility portals, six had actual shading issues not captured in original designs.

The annual report — once an Excel nightmare — is now assembled interactively in Power BI. Management can even run scenarios live: "What if we sold project XY?"

Technical Foundation

  • Power BI Premium (for refresh frequency and Gateway)
  • Dataverse (project master data, user mapping for RLS)
  • Power Query for data cleaning
  • DAX for all measures and aggregations
  • Power Automate for pipeline orchestration
  • Power BI Gateway for DATEV and grid operator API queries

The system scales. At 350 projects (next quarter), no new dashboards needed. Just growing data — the architecture holds.

The Bottom Line

For an energy company managing hundreds of distributed projects, a central reporting layer isn't optional — it's essential for operational control. Power BI didn't just save time; it exposed risks that were previously invisible.

The system grows with the business. New projects are added to Dataverse, and the next morning they're visible in dashboards.


Related Use Cases:

Ready to automate your processes?

Book a free 30-minute intro call.

View projects

Free, no commitment, no sales pitch.