Inspiration

What if reducing our carbon footprint wasn't just about how much electricity we use, but also when we use it?

Electricity is generated from a constantly changing mix of energy sources, including solar, wind, natural gas, and other forms of generation. As a result, the carbon intensity of electricity changes throughout the day.

However, most households are unaware of these variations and operate everyday appliances without considering the environmental impact of when electricity is consumed.

This inspired me to create EcoWatt AI — Power Your Life. Protect Our Planet.

My goal was to make carbon-aware electricity decisions simple, accessible, and practical for everyday households. Instead of asking people to stop using their appliances, EcoWatt helps them identify potentially cleaner times to use electricity without disrupting their daily routines.

EcoWatt was developed for the Social Good category of MarinaHacks 2026, with the vision of helping households become more aware of their electricity-related carbon footprint.

What it does

EcoWatt AI is an intelligent household electricity scheduling platform that recommends lower-carbon times to operate everyday appliances.

The application combines real electricity carbon-intensity forecasts, machine learning, and mathematical optimization to help users make more informed energy decisions.

Key Features

1. Live Carbon Intensity Forecasts

EcoWatt integrates the UK's National Energy System Operator (NESO) Carbon Intensity API to retrieve upcoming electricity carbon-intensity forecasts.

Users can:

  • Explore forecast data for Great Britain and London.
  • View electricity carbon-intensity trends on an interactive graph.
  • Identify periods with lower forecast average carbon intensity.
  • Understand how electricity's estimated carbon impact changes over time.

2. Smart Single-Appliance Scheduling

Users can select an appliance, such as:

  • Dishwasher
  • Washing machine
  • Dryer
  • EV charger

They enter the appliance's estimated electricity consumption, operating duration, earliest start time, and finish deadline.

EcoWatt evaluates feasible operating windows and recommends the one with the lowest forecast-based modeled emissions.

3. Multi-Appliance Optimization

EcoWatt uses Google OR-Tools to optimize multiple appliances simultaneously.

The optimizer considers:

  • Individual appliance deadlines
  • Operating durations
  • Electricity consumption
  • Household maximum power capacity
  • Real electricity carbon-intensity forecasts

This helps coordinate household appliance operation without exceeding specified power constraints.

4. Carbon Footprint Insights

EcoWatt compares the modeled emissions of the recommended schedule against an earliest-feasible operating schedule.

For example, if running an appliance earlier produces an estimate of 180 gCO₂, while a later operating window produces 120 gCO₂, EcoWatt can show a 33.3% lower modeled emissions estimate.

This example is illustrative. Actual results depend on live electricity forecasts and appliance settings.

These comparisons help users understand how scheduling choices affect modeled electricity-related emissions.

5. Machine Learning Forecasting

EcoWatt also includes a trained XGBoost machine-learning pipeline that predicts Great Britain national average carbon intensity one 30-minute period ahead.

The machine-learning model is separately evaluated, while the live scheduling engine uses official NESO forecasts.

How we built it

EcoWatt AI was developed as a full-stack application using React, FastAPI, XGBoost, and Google OR-Tools.

Frontend — React and Vite

I built a responsive, Apple-inspired web interface using React, JavaScript, Vite, and CSS.

The website provides:

  • Interactive carbon-intensity visualizations
  • Single- and multi-appliance scheduling
  • Editable appliance settings
  • Clear recommended operating times
  • Forecast-based emissions comparisons
  • Accessible and responsive recommendation cards

The interface is designed to make sophisticated forecasting and optimization understandable to nontechnical users.

Backend — Python and FastAPI

I developed REST APIs using Python and FastAPI.

The backend:

  • Fetches real NESO carbon-intensity forecasts.
  • Processes national and regional forecast data.
  • Validates appliance scheduling requests.
  • Calculates modeled electricity-related emissions.
  • Handles missing data, unavailable forecasts, and invalid requests.
  • Returns optimized appliance schedules.

Machine Learning — XGBoost

I built a reproducible XGBoost forecasting pipeline using approximately 180 days of historical Great Britain carbon-intensity data.

The dataset contained 8,641 historical observations, with 8,305 feature-engineered records.

The pipeline includes:

  • Historical data collection
  • Data cleaning and preprocessing
  • Timestamp-aligned lag features
  • Calendar-based feature engineering
  • Chronological training, validation, and testing
  • XGBoost regression
  • Comparison with baseline forecasting methods

Model performance on the held-out test dataset:

Model MAE (gCO₂/kWh) RMSE
XGBoost 4.21 5.59
Persistence baseline 5.30 7.23
Seasonal-naive baseline 38.89 49.92

XGBoost achieved approximately 20.6% lower test MAE than the persistence baseline for one-step-ahead prediction.

Optimization — Google OR-Tools

For multi-appliance scheduling, I implemented a constraint programming model using Google OR-Tools CP-SAT.

The optimization objective is to minimize forecast-weighted modeled electricity emissions:

$$ \min \sum_{a,t} E_{a,t} \times C_t $$

Where:

  • (E_{a,t}) is the electricity consumed by appliance (a) during interval (t).
  • (C_t) is the forecast electricity carbon intensity during interval (t).

The optimizer ensures:

  • Every appliance completes before its deadline.
  • Appliances operate continuously without interruption.
  • Total modeled household power consumption remains within the configured limit.
  • Scheduled intervals have available forecast data.

Technology Stack: Python, FastAPI, React, Vite, JavaScript, XGBoost, scikit-learn, pandas, Google OR-Tools, Pydantic, HTTPX, NESO Carbon Intensity API, Pytest, Vitest, Git, and GitHub.

Challenges we ran into

1. Working with Real-World Electricity Data

NESO forecast data changes over time, and certain periods may contain missing or unavailable values.

I had to build reliable data handling to ensure that EcoWatt does not invent missing forecasts or recommend schedules without sufficient forecast coverage.

2. Preventing Machine Learning Data Leakage

Time-series forecasting requires careful historical feature engineering.

During development, I discovered that positional lag calculations could become misaligned when timestamps were missing.

I fixed this issue by generating lag features using exact UTC timestamp relationships and added automated regression tests.

3. Optimizing Multiple Appliances Simultaneously

Scheduling one appliance was relatively straightforward. However, scheduling multiple appliances introduced additional challenges involving overlapping operating times, individual deadlines, and shared household power limits.

I addressed these constraints using Google OR-Tools CP-SAT.

4. Handling Timezones and Forecast Availability

Electricity forecasts are retrieved with UTC timestamps, while users expect understandable local times.

I had to carefully handle timezone conversion, date boundaries, daylight saving time, and forecast availability to avoid incorrect scheduling recommendations.

5. Frontend and Backend Integration

I encountered API connectivity issues, CORS configuration challenges, and inconsistent behavior when users selected different scheduling windows.

Resolving these problems required careful debugging, input validation, and testing.

6. Simplifying a Complex Technical System

One of the biggest challenges was making a technically sophisticated application easy to use.

I initially created a more detailed dashboard but realized users needed a much simpler experience.

I redesigned the interface around three actions:

Select an appliance → Choose a time window → Get a recommendation.

Accomplishments that we're proud of

  • Built a working full-stack application that connects a React website with a Python FastAPI backend.
  • Integrated real electricity forecast data from the NESO Carbon Intensity API.
  • Trained an XGBoost model using 8,641 historical electricity carbon-intensity observations.
  • Achieved a test MAE of 4.21 gCO₂/kWh, outperforming the persistence baseline on one-step-ahead forecasts.
  • Implemented Google OR-Tools optimization for multiple household appliances with power and scheduling constraints.
  • Developed user-friendly recommendations that translate complex energy data into understandable operating times.
  • Implemented automated tests for machine learning, API integration, scheduling, validation, and frontend functionality.
  • Built the project independently as a solo hackathon participant.

My proudest accomplishment is bringing together real-world data, machine learning, mathematical optimization, and frontend development to address a meaningful environmental challenge.

What we learned

Building EcoWatt AI helped me gain practical experience across several important areas.

Machine Learning: I learned how to build reproducible time-series forecasting pipelines, engineer lag features, prevent data leakage, and compare models against meaningful baselines.

Optimization: I learned how constraint programming can solve scheduling problems involving multiple competing requirements.

Backend Engineering: I strengthened my understanding of FastAPI, external API integration, validation, error handling, and automated testing.

Frontend Development: I learned how to transform complex technical results into intuitive, accessible recommendations.

Real-World Data Challenges: I gained experience handling incomplete datasets, timezone conversions, changing forecasts, and production-oriented reliability.

Environmental Impact: I learned that lower forecast average carbon intensity does not automatically prove a reduction in real-world grid emissions. Estimating verified avoided emissions requires more detailed analysis, including marginal grid-emissions impacts.

Most importantly, I learned that technology for social good needs to be both technically reliable and simple enough for everyday people to use.

What's next for EcoWatt AI

EcoWatt AI has the potential to become a more comprehensive household energy assistant.

Future enhancements include:

  • Global Electricity Grid Support: Expand beyond Great Britain and London to additional countries and regions.
  • Custom Appliance Profiles: Allow users to add any supported electrical appliance and define its energy requirements.
  • Smart-Home Integration: Connect with compatible smart plugs and home automation platforms.
  • Intelligent Notifications: Remind users when their recommended appliance operating window begins.
  • Conversational AI Assistant: Enable natural-language questions such as "When should I charge my EV tonight?"
  • Electricity Price Optimization: Help users balance forecast carbon intensity with electricity costs.
  • Advanced ML Forecasting: Extend the XGBoost pipeline to evaluate longer prediction horizons.
  • Improved Carbon Impact Analysis: Explore marginal-emissions data to better evaluate real-world environmental benefits.

MyVision

EcoWatt AI is built around one simple idea: sustainability should be convenient, accessible, and actionable.

By combining real electricity forecasts, machine learning, and mathematical optimization, EcoWatt demonstrates how technology can help households make more informed choices about when to consume electricity.

⚡ Power Your Life. Protect Our Planet.

Built With

Share this project:

Updates

Submission history