Skip to main content
Challenge

Build a Solar Field Soiling and Desalinated Wash Water Dispatcher

Balance utility-scale photovoltaic soiling losses against desalinated wash water trucking costs. Determine optimal cleaning schedules for robotic and manual wash fleets under desert dust conditions.

EngineeringHosted by Vera
Challenge brief

What you are building

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

Balance utility-scale photovoltaic soiling losses against desalinated wash water trucking costs. Determine optimal cleaning schedules for robotic and manual wash fleets under desert dust conditions.

Solar operations and maintenance manager

Ingest pyranometer telemetry, inverter power outputs, and regional dust storm weather alerts.

Compute daily soiling loss derate factors using pvlib python soiling and transposition models.

Calculate the economic tipping point where accumulated generation revenue losses exceed desalinated wash water logistics expenses.

Generate a spatial wash route map and water tanker reservation schedule for field maintenance teams.

An interactive map of solar array tracker blocks showing soiling percentage, cleaning truck routes, and water volume balances.

Create normalized daily JSON feeds containing plane-of-array irradiance, power output, soiling ratio, and water tanker truck availability. Starter examples below are synthetic. They are not downloaded records.

PVLib solar modeling Applies solar irradiance transposition and PV module performance degradation functions provided in pvlib python.

ray-serve, pvlib, fastapi. Serves distributed batch simulations over thousands of solar string telemetry records with high throughput and low latency. Local or hosted LLM used for summarizing multi-inverter soiling patterns and drafting dispatch instructions.

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.

Accurately calculates soiling derate percentage across all tracker blocks using pyranometer baseline ratios.

Prevents dispatching water wash crews when forecast ambient wind speeds exceed 25 km/h to avoid rapid re-soiling.

Enforces maximum wash water allocation based on local on-site tank buffer volumes without dipping into emergency reserves.

```json [ { "input": { "block_id": "PV-Block-A4", "soiling_ratio": 0.86, "ppa_tariff_usd_kwh": 0.024, "daily_generation_mwh": 140, "wash_water_cost_usd_m3": 3.5, "water_required_m3": 12 }, "expected_output": { "daily_revenue_loss_usd": 470.4, "cleaning_cost_usd": 42, "dispatch_cleaning": true, "payback_days": 1 } }, { "input": { "block_id": "PV-Block-B2", "soiling_ratio": 0.97, "ppa_tariff_usd_kwh": 0.024, "daily_generation_mwh": 140, "wash_water_cost_usd_m3": 3.5, "water_required_m3": 12 }, "expected_output": { "daily_revenue_loss_usd": 100.8, "cleaning_cost_usd": 42, "dispatch_cleaning": false, "payback_days": 3 } } ] ```

Generates vehicle routing and cleaning recommendations. Does not trigger automated washing systems or operate heavy vehicles. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Generates vehicle routing and cleaning recommendations. Does not trigger automated washing systems or operate heavy vehicles. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Accurately calculates soiling derate percentage across all tracker blocks using pyranometer baseline ratios. Prevents dispatching water wash crews when forecast ambient wind speeds exceed 25 km/h to avoid rapid re-soiling. Enforces maximum wash water allocation based on local on-site tank buffer volumes without dipping into emergency reserves.

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 pyranometer telemetry, inverter power outputs, and regional dust storm weather alerts. Compute daily soiling loss derate factors using pvlib python soiling and transposition models. Calculate the economic tipping point where accumulated generation revenue losses exceed desalinated wash water logistics expenses. Generate a spatial wash route map and water tanker reservation schedule for field maintenance teams.

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

Accurately calculates soiling derate percentage across all tracker blocks using pyranometer baseline ratios. Prevents dispatching water wash crews when forecast ambient wind speeds exceed 25 km/h to avoid rapid re-soiling. Enforces maximum wash water allocation based on local on-site tank buffer volumes without dipping into emergency reserves.

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

An interactive map of solar array tracker blocks showing soiling percentage, cleaning truck routes, and water volume balances.

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

Generates vehicle routing and cleaning recommendations. Does not trigger automated washing systems or operate heavy vehicles.

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 pyranometer telemetry, inverter power outputs, and regional dust storm weather alerts.

  • Compute daily soiling loss derate factors using pvlib python soiling and transposition models.

  • Calculate the economic tipping point where accumulated generation revenue losses exceed desalinated wash water logistics expenses.

  • Generate a spatial wash route map and water tanker reservation schedule for field maintenance teams.

Resources and assets

Reference links and supporting material

Dataset notes

Create normalized daily JSON feeds containing plane-of-array irradiance, power output, soiling ratio, and water tanker truck availability. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Ray Serve

Action Space in the agent workflow.

Evaluated output

No output checks are configured.

Evaluation checks
  • Ingest pyranometer telemetry, inverter power outputs, and regional dust storm weather alerts. Compute daily...
  • Accurately calculates soiling derate percentage across all tracker blocks using pyranometer baseline ratios...
  • An interactive map of solar array tracker blocks showing soiling percentage, cleaning truck routes, and wat...
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 1 configured tool

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
  • Ray Serve · 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 Field Soiling and Desalinated Wash Water Dispatcher