Skip to main content
Challenge

Build a Solar Soiling Loss and Cleaning Route Dispatcher

Calculate dust accumulation and thermal degradation across utility-scale solar arrays using plant pyranometer telemetry. Optimize automated cleaning vehicle routing schedules to maximize net energy yield.

EngineeringHosted by Vera
Challenge brief

What you are building

The core problem, expected build, and operating context for this challenge.

Calculate dust accumulation and thermal degradation across utility-scale solar arrays using plant pyranometer telemetry. Optimize automated cleaning vehicle routing schedules to maximize net energy yield.

Solar Farm Asset Manager

Ingest module temperature, plane-of-array irradiance, and daily string inverter power outputs.

Calculate baseline expected DC power output under clean conditions using pvlib performance models.

Quantify soiling loss percentages across individual tracker blocks and inverter zones.

Formulate robotic dry-brush cleaning vehicle route assignments prioritized by financial recovery rate.

Interactive plant block heatmap indicating soiling severity, economic break-even lines, and cleaning robot dispatch buttons.

Create synthetic string telemetry files including irradiance, module temperature, and measured power output across 20 inverter blocks. Starter examples below are synthetic. They are not downloaded records.

PVLib solar modeling Utilizes pvlib PVWatts or single-diode model functions to calculate clean reference power outputs under measured irradiance.

mastra-ai, pvlib, pandas. Mastra AI orchestrates deterministic step execution connecting analytical soiling models with cleaning robot task dispatchers. Local Python runtime with API-accessible LLM for generating shift handover notices.

Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.

Calculates soiling loss ratio for each inverter block relative to pvlib clean reference.

Suppresses cleaning dispatch when estimated energy recovery value is less than cleaning operational cost.

Outputs a sequenced cleaning schedule for field operations teams.

```json [ { "input": { "block_id": "BLK-07", "irradiance_wm2": 850, "cell_temp_c": 52, "measured_power_kw": 620, "clean_reference_power_kw": 740, "cleaning_cost_usd": 45, "power_price_usd_kwh": 0.04 }, "expected_output": { "soiling_ratio": 0.838, "soiling_loss_pct": 16.2, "daily_revenue_loss_usd": 57.6, "dispatch_cleaning": true, "priority": "HIGH" } }, { "input": { "block_id": "BLK-12", "irradiance_wm2": 850, "cell_temp_c": 50, "measured_power_kw": 715, "clean_reference_power_kw": 735, "cleaning_cost_usd": 45, "power_price_usd_kwh": 0.04 }, "expected_output": { "soiling_ratio": 0.973, "soiling_loss_pct": 2.7, "daily_revenue_loss_usd": 9.6, "dispatch_cleaning": false, "priority": "DEFERRED" } } ] ```

Automated cleaning dispatches are mock orders; field robot operations require physical zone clearances and supervisor confirmation. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Automated cleaning dispatches are mock orders; field robot operations require physical zone clearances and supervisor confirmation. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Calculates soiling loss ratio for each inverter block relative to pvlib clean reference. Suppresses cleaning dispatch when estimated energy recovery value is less than cleaning operational cost. Outputs a sequenced cleaning schedule for field operations teams.

Submission format

Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Evaluation rubric

How submissions are scored

These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.

Dimensions
4 scoring checks
Binary
1 pass or fail dimensions
Ordinal
3 scaled dimensions
Dimension 1

Complete workflow

Ingest module temperature, plane-of-array irradiance, and daily string inverter power outputs. Calculate baseline expected DC power output under clean conditions using pvlib performance models. Quantify soiling loss percentages across individual tracker blocks and inverter zones. Formulate robotic dry-brush cleaning vehicle route assignments prioritized by financial recovery rate.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 2

Correctness and evidence

Calculates soiling loss ratio for each inverter block relative to pvlib clean reference. Suppresses cleaning dispatch when estimated energy recovery value is less than cleaning operational cost. Outputs a sequenced cleaning schedule for field operations teams.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 3

Review interface

Interactive plant block heatmap indicating soiling severity, economic break-even lines, and cleaning robot dispatch buttons.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 4

Safe execution

Automated cleaning dispatches are mock orders; field robot operations require physical zone clearances and supervisor confirmation.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Learning goals

What you should walk away with

  • Ingest module temperature, plane-of-array irradiance, and daily string inverter power outputs.

  • Calculate baseline expected DC power output under clean conditions using pvlib performance models.

  • Quantify soiling loss percentages across individual tracker blocks and inverter zones.

  • Formulate robotic dry-brush cleaning vehicle route assignments prioritized by financial recovery rate.

Resources and assets

Reference links and supporting material

Dataset notes

Create synthetic string telemetry files including irradiance, module temperature, and measured power output across 20 inverter blocks. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Mastra AI

TypeScript agent framework.

Evaluated output

No output checks are configured.

Evaluation checks
  • Ingest module temperature, plane-of-array irradiance, and daily string inverter power outputs. Calculate ba...
  • Calculates soiling loss ratio for each inverter block relative to pvlib clean reference. Suppresses cleanin...
  • Interactive plant block heatmap indicating soiling severity, economic break-even lines, and cleaning robot...
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 2 configured tools

Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.

View technical recipe

Configured tools

Action Space
  • Mastra AI · Optional
Orchestration
  • Mastra AI · Optional

Evaluation contract

  • Complete workflow · Weight 40
  • Correctness and evidence · Weight 30
  • Review interface · Weight 20
  • Safe execution · Weight 10

Reference cases

  • 2 public reference cases

Workflow tasks

No workflow tasks are configured.

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Build a Solar Soiling Loss and Cleaning Route Dispatcher