> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nexenergie.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Weather, OMIE, and ENTSO-E Data Sources for Forecasting

> Nexenergie ingests weather forecasts, historical OMIE prices, and ENTSO-E fundamentals to feed its ML models. Learn what data drives your forecasts.

The product is a pipeline of Cloud Run jobs plus one HTTP API. Collectors write raw files to GCS and some hot-path tables in Postgres. Cleaning and ML workers write typed Postgres tables. The API never scrapes OMIE itself.

<Steps>
  <Step title="Collect">
    Weather, OMIE prices, and ENTSO-E fundamentals land in GCS and Postgres.
  </Step>

  <Step title="Clean">
    Eventarc starts `data-cleaning-service` when a source writes its manifest.
  </Step>

  <Step title="Forecast">
    After weather cleaning, one forecast job runs per OMIE product.
  </Step>

  <Step title="Score">
    After new OMIE prices, the metric worker scores unscored forecasts.
  </Step>

  <Step title="Serve">
    `platform-api` reads Postgres for the app, client API, and webhooks.
  </Step>
</Steps>

Jobs are idempotent. A repeated manifest or an already-stored target day exits successfully without double-writing.

## Triggers

<AccordionGroup>
  <Accordion title="Weather" icon="cloud-sun">
    Hourly. Manifest starts weather cleaning, then forecast jobs for all four products.
  </Accordion>

  <Accordion title="OMIE" icon="file-invoice">
    Every 30 minutes per market (Europe/Madrid). The job self-skips when up to date. Manifest starts pricing cleaning for that market only.
  </Accordion>

  <Accordion title="ENTSO-E" icon="bolt">
    Hourly. Manifest starts fundamentals cleaning.
  </Accordion>

  <Accordion title="Metrics" icon="chart-simple">
    After OMIE pricing manifests. Scores unscored forecasts against real prices.
  </Accordion>
</AccordionGroup>

## Pricing weather locations

Forecast models use three fixed locations, not tenant sites.

<CardGroup cols={3}>
  <Card title="Madrid">
    `40.4_-3.7`
  </Card>

  <Card title="Burgos">
    `42.3_-3.7`
  </Card>

  <Card title="South">
    `38.7_-5.1`
  </Card>
</CardGroup>

## Ownership

<CardGroup cols={2}>
  <Card title="Platform team" icon="server">
    Collectors, orchestration, Postgres schema (Alembic in `platform-api`), and the HTTP API.
  </Card>

  <Card title="AI team" icon="brain">
    Cleaner and forecast/metric model implementations, plus the MLflow registry.
  </Card>
</CardGroup>
