Skip to main content

Foundation model adapter layer for quantitative forecasting in the Mimic ecosystem

Project description

mimic-forecast

Foundation model adapter layer for the Mimic ecosystem.

Replace LLM-guessed financial numbers with real quantitative forecasts.

Without mimic-forecast:
  twin.simulate("oil spikes") → LLM guesses financial impact

With mimic-forecast:
  twin.simulate("oil spikes") → TimesFM forecasts price trajectory
                              → Chronos forecasts market dynamics
                              → LLM reasons on top of real numbers

Install

# Core only (abstractions + ensemble, no model deps)
pip install mimic-forecast

# With a specific model
pip install 'mimic-forecast[timesfm]'
pip install 'mimic-forecast[chronos]'
pip install 'mimic-forecast[finbert]'

# With data utilities (FRED + yfinance)
pip install 'mimic-forecast[data]'

# Everything
pip install 'mimic-forecast[all]'

Quickstart

from mimic_forecast import TimesFMAdapter
import yfinance as yf

adapter = TimesFMAdapter()
data = yf.download("WMT", period="2y")["Close"].squeeze()
forecast = adapter.forecast(data, horizon=30, frequency="D")

print(forecast.point)           # 30-day point forecast
print(forecast.quantiles[0.1])  # P10 (downside)
print(forecast.quantiles[0.9])  # P90 (upside)
print(forecast.summary())       # compact dict for LLM prompts

Models

Adapter Model Best For Quantiles
TimesFMAdapter google/timesfm-2.0-500m Demand, retail, energy
ChronosAdapter amazon/chronos-t5-large Multivariate, covariates
FinBERT2Adapter ProsusAI/finbert News sentiment → signal
KronosAdapter AntGroup/Kronos Price microstructure
MoiraiAdapter Salesforce/moirai-1.0-R-large Zero-shot benchmark
BISTROAdapter bis-models/bistro Macro (GDP, CPI, rates)
EnsembleAdapter weighted combination Maximum accuracy

Auto-select

from mimic_forecast import AutoForecaster

# Picks the best available model per series type
af = AutoForecaster()
results = af.forecast_for_event(
    context={"ticker": "WMT"},
    event="oil spikes to $150",
    horizon=30,
)
# results["oil_price"]["point_end"] → float
# results["oil_price"]["q10"]       → float (downside)
# results["oil_price"]["model"]     → "kronos-499m"

Compare Models

from mimic_forecast import compare_models, TimesFMAdapter, ChronosAdapter

results = compare_models(
    series=data,
    models=[TimesFMAdapter(), ChronosAdapter()],
    horizon=30,
    metric="RMSE",
)
print(results.winner)   # "timesfm-2.0-500m"
print(results.scores)   # {"timesfm-2.0-500m": 0.042, "chronos-t5-large": 0.051}

Mimic Integration

mimic-forecast is a zero-hard-dependency plugin for mimic. When installed, mimic automatically upgrades from LLM number-guessing to real forecasts.

# In mimic/core/twin.py — this is what mimic does internally:
try:
    from mimic_forecast import get_forecaster
    forecaster = get_forecaster(auto=True)
    forecast_context = forecaster.forecast_for_event(self.context, event)
except ImportError:
    forecast_context = {}  # graceful fallback to LLM estimates

Architecture

mimic_forecast/
├── base.py              ← ForecasterAdapter + ForecastResult
├── registry.py          ← Model registry + event → series mapping
├── ensemble.py          ← EnsembleAdapter
├── benchmarks.py        ← Model comparison (walk-forward backtest)
├── adapters/
│   ├── timesfm.py       ← Google TimesFM 2.0
│   ├── chronos.py       ← Amazon Chronos T5-Large
│   ├── finbert.py       ← FinBERT sentiment
│   ├── kronos.py        ← Kronos market microstructure
│   ├── moirai.py        ← Salesforce Moirai
│   └── bistro.py        ← BIS macro model
├── data/
│   ├── series.py        ← Pull from FRED / yfinance
│   └── covariates.py    ← Build covariate matrices
└── integration/
    └── mimic_plugin.py  ← Plugin interface for mimic core

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mimic_forecast-0.1.0.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mimic_forecast-0.1.0-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file mimic_forecast-0.1.0.tar.gz.

File metadata

  • Download URL: mimic_forecast-0.1.0.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for mimic_forecast-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0772b09c66df9d2005407b097e3e023c4d4f4b2ee1ffd25b80d08bcbbd297852
MD5 76fcc3bbd084a5062129aef8b324593a
BLAKE2b-256 7aaea83d3bf099b5194bc4643668f111fd87e2629d672540fa9df281f96f3703

See more details on using hashes here.

File details

Details for the file mimic_forecast-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mimic_forecast-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for mimic_forecast-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4b0a7b04b3f910848d624a702f727e210436b4bd9b02bf1e65c9bc6c2899a8c
MD5 48daeec4c02a3f9b14222cec8c36c24b
BLAKE2b-256 0eb7cf216d69436cec3b3eb6bc1d1d82e84a4819a36a7ce0c36e2c2308288ab9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page