Skip to main content

🦉 OwlMix

Python License Docs PyPI version

OwlMix is a Python library for automated exploratory data analysis (EDA), designed for time-series and marketing mix modeling (MMM) workflows. OwlMix helps you quickly understand your data, identify trends, and prepare for modeling.

Features

  • Automated EDA report generation (HTML/JSON)
  • Time series lag and correlation analysis
  • Variable relationship and distribution insights
  • Causality and trend detection
  • Easy-to-use API

Quick Start

import pandas as pd
from owlmix.reporting import ReportBuilder, ReportHTMLRenderer

csv_file = "path/to/your/csv/file.csv"

df = pd.read_csv(csv_file)
report_builder = ReportBuilder(
    df=df, 
    target_col="kpi", 
    date_col="date"
)

# Update the config, if needed
report_builder.config.update_config(
    acf_pacf={
        "columns": ["kpi"],
        "n_lags": 5
    },
    vif={
        "features": ["tv_spend", "digital_spend", "radio_spend"]
    },
    correlation={
        "columns": ["kpi", "tv_spend"],
        "n_lags": 8,
        "precision": 5
    },
    box_plot={
        "columns": ["kpi", "tv_spend", "digital_spend", "radio_spend", "tv_grp", "digital_imp"],
        "n_plot_per_row": 3,
        "method": "zscore",
        "threshold": 1.5  # default is 3 for method "zscore" and 1.5 for method "iqr"
    },
    ccf={
        "feature_columns": ['tv_spend'],
        "max_lag": 3
    },
    # update the other configs
)
report_builder.add_all_sections(verbose=True)
report = report_builder.build()
report_builder.save("result.json")

renderer = ReportHTMLRenderer()
html_str = renderer.render_from_json("result.json")
renderer.save_html("report.html")

Load Config from Dict, YAML, or JSON

You can load report section config using a Python dictionary, a YAML file, or a JSON file.

from owlmix.reporting import ReportBuilder

report_builder = ReportBuilder(
    df=df,
    target_col="kpi",
    date_col="date"
)

# 1) From Python dict
config_dict = {
    "acf_pacf": {
        "columns": ["kpi"],
        "n_lags": 10,
        "precision": 2
    },
    "ccf": {
        "feature_columns": ["tv_spend", "digital_spend"],
        "max_lag": 3
    }
}
report_builder.config.update_config_from_dict(config_dict, strict=True)

# 2) From YAML file
report_builder.config.update_config_from_yaml("report_config.yaml", strict=True)

# 3) From JSON file
report_builder.config.update_config_from_json("report_config.json", strict=True)

Notes:

  • strict=True raises an error if unknown section keys are present.
  • Supported top-level section keys include: acf_pacf, vif, correlation, causality, box_plot, ccf, response_curve, response_summary, dist_numeric, and time_series.
  • YAML/JSON must have a dictionary at the top level, and each section value must also be a dictionary.

Installation

pip install owl-mix

Documentation

Metadata

Release files for owl-mix 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for owl-mix 1.1.0
File Size Uploaded
owl_mix-1.1.0.tar.gz 87.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for owl-mix 1.1.0
File Interpreter ABI Platform
owl_mix-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 224.8 kB

Release files / owl_mix-1.1.0.tar.gz

Download URL owl_mix-1.1.0.tar.gz
Size 87.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d0d4d8085d45eff7044c457da7695c64cc66c859713c49869de8a073735f60a5
BLAKE2b-256 checksum
How to use checksums
ff2105ef31754d923ace0067376ec1421e1168ccf88f8dd601325247a3081f98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release files / owl_mix-1.1.0-py3-none-any.whl

Download URL owl_mix-1.1.0-py3-none-any.whl
Size 137.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc7df42369f9b837eb34f2567eb02c0b633e1d237676fa45aa11324bcb6484f7
BLAKE2b-256 checksum
How to use checksums
978b56c066059d12f7f5d2d4a2205df2d60fda87075b52d8a73d0f645c9d3b8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page