ATSW — Box-Jenkins-Treadway time series suite
atsw is an umbrella package: installing it pulls the complete Box-Jenkins-
Treadway time series suite plus the MCP server, in one step.
pip install atsw
It installs the estimation engines, the graphics, and three MCP assistants. Requires Python ≥ 3.10. Every engine has a C implementation with an automatic pure-Python fallback, so the suite installs everywhere.
| Component | Package | Role |
|---|---|---|
| FUE (+ FUF) | fue |
Exact ML estimation (ARMAX + transfer functions) and forecasting |
| FUG | pyfug |
High-definition graphics for time series analysis |
| ART | art-tseries |
Model building, diagnosis, formal tests + the art-mcp server |
| DRTRAN | drtran |
Transfer functions and networks by exact ML + the mtram server |
| DRVARMA | drvarma |
Multivariate VARMA by exact ML + the sima server |
The three assistants, and when to move between them
They are separate servers on purpose. An MCP client sees every connected server at once, so this is not three tools you have to choose between — it is one ladder with three rungs, and each assistant knows when to hand over.
| Assistant | Question it answers | Engine |
|---|---|---|
art |
One series: what ARIMA model, what interventions? | fue |
mtram |
How does X move Y? Transfer functions, and networks of them (a DAG) | drtran |
sima |
Everything moves everything: a simultaneous VARMA | drvarma |
mtram starts from the .pre files art writes, so the univariate rung is
already climbed and committed to a file you can read. The handoff to sima is
testable, not a preference: if the proposed network contains a CYCLE there is
no topological order, the system cannot be written as a triangular VARMA, and it
is therefore simultaneous. mtram says so and stops.
Use with an LLM (recommended)
claude mcp add art -- art-mcp # one series
claude mcp add mtram -- mtram # transfer functions and networks
claude mcp add sima -- sima # simultaneous VARMA
Then ask Claude to analyse a series (attach a CSV/Excel, or point to an .inp).
ART offers a guided workflow (analyst decides, Claude advises step by step,
with graphs and your confirmation at each decision) or an autonomous one
(Claude/heuristic decides every step and presents a final model). The suite
supplies the evidence — graphs, tests, numbers; you and/or Claude supply the
criterion at each Box-Jenkins decision node.
Use as a plain Python library (no Claude needed)
import fue
from art.describe import describe_boxcox, describe_identification
ts, _ = fue.inp.load("series.inp")
print(describe_boxcox(ts).summary) # Box-Cox transformation analysis
print(describe_identification(ts).summary) # ACF/PACF identification
Estimation and forecasting (FUF) live in fue; the fuf command forecasts from
an estimated model.
Background — a modern Box-Jenkins-Treadway
The Box-Jenkins analysis was tremendously popular at its launch as a process for building ARMA models (with extensions). The models themselves are simple, but the iterative building process is a case of false simplicity: in practice the method worked wonderfully if you were Box, Jenkins, or one of their disciples. The real obstacle is training the analyst to make the decisions the process demands — decisions often guided by heuristics.
ATSW combines that criterion with statistical methods to build the models in a modern form: AI — with its limitations — supplies the criterion and the suggestions a trained time series analyst would offer.
The analysis presented here is not the canonical Box-Jenkins, but the extended version of Arthur B. Treadway (a disciple of Gwilym Jenkins), which adds elements and heuristics drawn from his experience producing the Forecasting and Monitoring Services (SPS) of the Spanish economy.
Forecasting is one of the goals of building an ARMAX model — and perhaps an unbeatable one — but univariate analysis is also the foundation of more sophisticated relational analysis. These univariate forecasting models should be the measuring stick for more complex ones: if you cannot beat their forecasts, your model has a problem and you should rethink it.
Components on PyPI
Each component is also installable on its own — atsw just fixes a compatible
set: fue ·
pyfug ·
art-tseries. See art-tseries's
AGENTS.md, docs/QUICKSTART.md, docs/TOOLS.md and docs/ARCHITECTURE.md for
the full design, the operating guide and the evidence-vs-criterion philosophy.
License
GPL-2.0-or-later. © David E. Guerrero.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file atsw-1.2.0.tar.gz.
File metadata
- Download URL: atsw-1.2.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
869b3fc7438c7178e919a85a315068053b0ae2bda0f1279cb1d6e035e87730db
|
|
| MD5 |
d6e5134fabf0c0ece9f89b184cc02e3f
|
|
| BLAKE2b-256 |
58a677f66eb7c20dc9c3c94f9e6376c21cd41c7b81894660a6ddaa8bd7927caa
|
Provenance
The following attestation bundles were made for atsw-1.2.0.tar.gz:
Publisher:
publish-atsw.yml on davidesg/art-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atsw-1.2.0.tar.gz -
Subject digest:
869b3fc7438c7178e919a85a315068053b0ae2bda0f1279cb1d6e035e87730db - Sigstore transparency entry: 2350183968
- Sigstore integration time:
-
Permalink:
davidesg/art-python@ab4cc1bc9f7618b79df83f234e60c16d5f924ae4 -
Branch / Tag:
refs/tags/atsw-v1.2.0 - Owner: https://github.com/davidesg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-atsw.yml@ab4cc1bc9f7618b79df83f234e60c16d5f924ae4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file atsw-1.2.0-py3-none-any.whl.
File metadata
- Download URL: atsw-1.2.0-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c1faa2157b0878467569ae0c21eba4c510488a4784778341d482e818fbe7b5c
|
|
| MD5 |
9b5e3730646dcb10c34397edec41d283
|
|
| BLAKE2b-256 |
9425406bbde6c4ab0b04cc94bad9e0296f76e55faae6f3a974b5454f67318bc5
|
Provenance
The following attestation bundles were made for atsw-1.2.0-py3-none-any.whl:
Publisher:
publish-atsw.yml on davidesg/art-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atsw-1.2.0-py3-none-any.whl -
Subject digest:
7c1faa2157b0878467569ae0c21eba4c510488a4784778341d482e818fbe7b5c - Sigstore transparency entry: 2350184751
- Sigstore integration time:
-
Permalink:
davidesg/art-python@ab4cc1bc9f7618b79df83f234e60c16d5f924ae4 -
Branch / Tag:
refs/tags/atsw-v1.2.0 - Owner: https://github.com/davidesg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-atsw.yml@ab4cc1bc9f7618b79df83f234e60c16d5f924ae4 -
Trigger Event:
push
-
Statement type: