octoanalytics


Nameoctoanalytics JSON
Version 0.2.2 PyPI version JSON
download
home_pageNone
SummaryQuantitative analysis for power markets
upload_time2025-07-28 16:12:34
maintainerNone
docs_urlNone
authorJean Bertin
requires_pythonNone
licenseNone
keywords python quantitative risk power quant octopusenergy
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            


<p align="center">
  <img src="images/logo_octoanalytics.png" alt="octoanalytics logo" width="200"/>
</p>

[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

# octoanalytics 📊⚡

**Energy consumption forecasting & risk premium analysis for the French electricity market**

---

## Description


`octoanalytics` is a Python toolkit for:

- Retrieving and smoothing **weather data** via Open-Meteo API.
- Training and evaluating **load forecasting models** (MW) using Random Forest.
- Generating **interactive visualizations** comparing actual vs. forecasted values.
- Accessing **spot and forward price data** (annual, monthly, PFC) from **Databricks SQL**.
- Computing **volume and shape risk premiums**, key for energy portfolio management.

---

## Installation

```bash
pip install octoanalytics
```

> ⚠️ You need a valid Databricks access token to retrieve market data.

---

## Dependencies

- `pandas`
- `numpy`
- `scikit-learn`
- `plotly`
- `matplotlib`
- `tqdm`
- `requests`
- `tentaclio`
- `yaspin`
- `holidays`
- `dotenv`
- `databricks-sql-connector`

---

## Main Features

### 🔁 Weather data retrieval and smoothing

```python
from octoanalytics import get_temp_smoothed_fr

temp_df = get_temp_smoothed_fr(start_date="2024-01-01", end_date="2024-12-31")
```

---

### ⚡ Load forecasting

```python
from octoanalytics import eval_forecast

forecast_df = eval_forecast(df=load_df(), temp_df=temp_df, cal_year=2024)
```

---

### 💰 Risk premium calculation

#### Volume Risk

```python
from octoanalytics import calculate_prem_risk_vol

premium = calculate_prem_risk_vol(forecast_df, spot_df, forward_df)
```

#### Shape Risk

```python
from octoanalytics import calculate_prem_risk_shape

shape_risk = calculate_prem_risk_shape(forecast_df, pfc_df, spot_df)
```

---

### 🔌 Databricks SQL connections

```python
from octoanalytics import get_spot_price_fr, get_forward_price_fr_annual

spot_df = get_spot_price_fr(token=DB_TOKEN, start_date="2024-01-01", end_date="2024-12-31")
forward_df = get_forward_price_fr_annual(token=DB_TOKEN, cal_year=2025)
```

---

## Package Structure

```
octoanalytics/
│
├── __init__.py
├── core.py              # Main logic
├── ...
```

---

## Author

**Jean Bertin**  
📧 jean.bertin@octopusenergy.fr

---

## License

MIT – free to use, modify, and distribute.

---

## Roadmap

- [ ] Add XGBoost model
- [ ] Load anomaly detection
- [ ] Flask REST API deployment
- [ ] Automatic PDF report generation

---

## Full Demo

To be included in `examples/forecast_demo.ipynb`.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "octoanalytics",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "python, quantitative, risk, power, quant, octopusenergy",
    "author": "Jean Bertin",
    "author_email": "<jean.bertin@octopusenergy.fr>",
    "download_url": "https://files.pythonhosted.org/packages/bc/bf/998c1ecab8fd0b475b644d8692a7275e4b2d274044b9d4a1f9c993817e62/octoanalytics-0.2.2.tar.gz",
    "platform": null,
    "description": "\n\n\n<p align=\"center\">\n  <img src=\"images/logo_octoanalytics.png\" alt=\"octoanalytics logo\" width=\"200\"/>\n</p>\n\n[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n# octoanalytics \ud83d\udcca\u26a1\n\n**Energy consumption forecasting & risk premium analysis for the French electricity market**\n\n---\n\n## Description\n\n\n`octoanalytics` is a Python toolkit for:\n\n- Retrieving and smoothing **weather data** via Open-Meteo API.\n- Training and evaluating **load forecasting models** (MW) using Random Forest.\n- Generating **interactive visualizations** comparing actual vs. forecasted values.\n- Accessing **spot and forward price data** (annual, monthly, PFC) from **Databricks SQL**.\n- Computing **volume and shape risk premiums**, key for energy portfolio management.\n\n---\n\n## Installation\n\n```bash\npip install octoanalytics\n```\n\n> \u26a0\ufe0f You need a valid Databricks access token to retrieve market data.\n\n---\n\n## Dependencies\n\n- `pandas`\n- `numpy`\n- `scikit-learn`\n- `plotly`\n- `matplotlib`\n- `tqdm`\n- `requests`\n- `tentaclio`\n- `yaspin`\n- `holidays`\n- `dotenv`\n- `databricks-sql-connector`\n\n---\n\n## Main Features\n\n### \ud83d\udd01 Weather data retrieval and smoothing\n\n```python\nfrom octoanalytics import get_temp_smoothed_fr\n\ntemp_df = get_temp_smoothed_fr(start_date=\"2024-01-01\", end_date=\"2024-12-31\")\n```\n\n---\n\n### \u26a1 Load forecasting\n\n```python\nfrom octoanalytics import eval_forecast\n\nforecast_df = eval_forecast(df=load_df(), temp_df=temp_df, cal_year=2024)\n```\n\n---\n\n### \ud83d\udcb0 Risk premium calculation\n\n#### Volume Risk\n\n```python\nfrom octoanalytics import calculate_prem_risk_vol\n\npremium = calculate_prem_risk_vol(forecast_df, spot_df, forward_df)\n```\n\n#### Shape Risk\n\n```python\nfrom octoanalytics import calculate_prem_risk_shape\n\nshape_risk = calculate_prem_risk_shape(forecast_df, pfc_df, spot_df)\n```\n\n---\n\n### \ud83d\udd0c Databricks SQL connections\n\n```python\nfrom octoanalytics import get_spot_price_fr, get_forward_price_fr_annual\n\nspot_df = get_spot_price_fr(token=DB_TOKEN, start_date=\"2024-01-01\", end_date=\"2024-12-31\")\nforward_df = get_forward_price_fr_annual(token=DB_TOKEN, cal_year=2025)\n```\n\n---\n\n## Package Structure\n\n```\noctoanalytics/\n\u2502\n\u251c\u2500\u2500 __init__.py\n\u251c\u2500\u2500 core.py              # Main logic\n\u251c\u2500\u2500 ...\n```\n\n---\n\n## Author\n\n**Jean Bertin**  \n\ud83d\udce7 jean.bertin@octopusenergy.fr\n\n---\n\n## License\n\nMIT \u2013 free to use, modify, and distribute.\n\n---\n\n## Roadmap\n\n- [ ] Add XGBoost model\n- [ ] Load anomaly detection\n- [ ] Flask REST API deployment\n- [ ] Automatic PDF report generation\n\n---\n\n## Full Demo\n\nTo be included in `examples/forecast_demo.ipynb`.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Quantitative analysis for power markets",
    "version": "0.2.2",
    "project_urls": null,
    "split_keywords": [
        "python",
        " quantitative",
        " risk",
        " power",
        " quant",
        " octopusenergy"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a7ee8eb759e5e539c4612a669536b688929d5a397eacf3579e6f2490dc0dbef6",
                "md5": "afeae07a807c9dc7906fc7944b4c5b16",
                "sha256": "4bd9ba4ebf0358b19a9b1a2e5cf5a454b8f998f1fcafe6f36d6dadea6784949b"
            },
            "downloads": -1,
            "filename": "octoanalytics-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "afeae07a807c9dc7906fc7944b4c5b16",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 12185,
            "upload_time": "2025-07-28T16:12:32",
            "upload_time_iso_8601": "2025-07-28T16:12:32.890689Z",
            "url": "https://files.pythonhosted.org/packages/a7/ee/8eb759e5e539c4612a669536b688929d5a397eacf3579e6f2490dc0dbef6/octoanalytics-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bcbf998c1ecab8fd0b475b644d8692a7275e4b2d274044b9d4a1f9c993817e62",
                "md5": "01c3c31d019ec46b79a8da5f53a4f72e",
                "sha256": "d40f70dc49c545e2ab94e9ff0e5b949547a707b83ec94d206b56313405814675"
            },
            "downloads": -1,
            "filename": "octoanalytics-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "01c3c31d019ec46b79a8da5f53a4f72e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 13469,
            "upload_time": "2025-07-28T16:12:34",
            "upload_time_iso_8601": "2025-07-28T16:12:34.047186Z",
            "url": "https://files.pythonhosted.org/packages/bc/bf/998c1ecab8fd0b475b644d8692a7275e4b2d274044b9d4a1f9c993817e62/octoanalytics-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-28 16:12:34",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "octoanalytics"
}
        
Elapsed time: 1.15245s