Skip to main content
ts-data-generator logo

Synthetic Time Series Data Generator

CI Python License

Generate realistic synthetic time series datasets with configurable dimensions, metrics, composable trend functions, and injectable anomalies — via a Python API or the tsdata CLI or online

sample plot

📚 Documentation

For complete details on features, API reference, CLI usage, and advanced configuration, visit our documentation site:

👉 https://manojmanivannan.github.io/ts-data-generator/


Features

  • Realistic Data: Mimic real-world time series with trends, seasonality, and noise.
  • Composable Trends: Layer multiple functions (Sinusoidal, Linear, AR Noise, Markov) to create complex signals.
  • Multivariate Dimension Expansion: Expand dimensions to their full Cartesian product (expand_dimensions) with independent, reproducible per-combination metric series and per-dimension control.
  • Correlated Multi-Items: Generate linked dimension tuples and correlated metric groups simultaneously (add_multi_items).
  • Injectable Anomalies: Simulate failures with point anomalies, missing data gaps, and concept drifts.
  • Deterministic: Guaranteed reproducibility via a seedable RNG.
  • CLI & API: Use the tsdata CLI for rapid prototyping or the Python API for production pipelines.
  • Schema Imputing: Reverse-engineer generation configs from existing CSV datasets.

Quickstart

Installation

pip install ts-data-generator

No install needed? Run the CLI directly with uv:

uvx --from ts-data-generator tsdata --help

Use --from (not --with) because the package name (ts-data-generator) differs from the executable name (tsdata).

CLI Usage

tsdata generate --start 2024-01-01 --end 2024-01-07 --granularity h \
    --dims "region:US,EU,AP" \
    --mets "sales:LinearTrend(slope=45)+SinusoidalTrend(amplitude=10,freq=24)" \
    --output sales.csv

# Multivariate expansion with explicit scaling and stochastic variance
tsdata generate --start 2024-01-01 --end 2024-01-07 --granularity h \
    --dims "region=random_choice(US,EU),weights={US:5,EU:2}" \
    --dims "env=random_choice(prod,dev)" \
    --mets "sales:LinearTrend(slope=45)+SinusoidalTrend(amplitude=10,freq=24)" \
    --expand-dimensions \
    --scale-variance 0.2 \
    --output expanded_sales.csv

Python API

from ts_data_generator import DataGen
from ts_data_generator.utils.functions import random_choice
from ts_data_generator.utils.trends import SinusoidalTrend, LinearTrend

# Expand dimensions across Cartesian product with scaled multi-series metrics
dg = DataGen(
    start_datetime="2024-01-01",
    end_datetime="2024-01-07",
    granularity="h",
    seed=42,
    expand_dimensions=True,
    scale_variance=0.2,
)

# Explicit dimension weights scale metrics differently per category slice
dg.add_dimension("tier", {"enterprise": 10.0, "pro": 3.0, "free": 1.0})
dg.add_dimension("region", random_choice(["US", "EU"]), weights={"US": 5.0, "EU": 2.0})
dg.add_dimension("environment", random_choice(["prod", "dev"]))
dg.add_metric("sales", {LinearTrend(offset=100, slope=10), SinusoidalTrend(amplitude=20, freq=24)})

# Linked correlated columns with tuple weights
dg.add_multi_items(
    names=["city", "country"],
    function=[("New York", "US"), ("London", "UK")],
    weights={("New York", "US"): 4.0, ("London", "UK"): 2.0},
)

df = dg.data
print(f"Generated {len(df)} rows across {df.groupby(['tier', 'region', 'environment', 'city']).ngroups} combinations")
dg.plot()

License

MIT — see LICENSE.

Release files for ts-data-generator 0.7.1

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

Source distribution (sdist)

Source distribution for ts-data-generator 0.7.1
File Size Uploaded
ts_data_generator-0.7.1.tar.gz 1.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ts-data-generator 0.7.1
File Interpreter ABI Platform
ts_data_generator-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.8 MB

Release files / ts_data_generator-0.7.1.tar.gz

Download URL ts_data_generator-0.7.1.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
6e487991b42ed83b4754eb7c29411f082787fc569b8cf765bc6972019cec917e
BLAKE2b-256 checksum
How to use checksums
7700949b5949ac8999658e44afd50baae58389a8731a1dfba407eac159bb3938
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / ts_data_generator-0.7.1-py3-none-any.whl

Download URL ts_data_generator-0.7.1-py3-none-any.whl
Size 72.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b8c88678eaff8e7ee4154c3bcca2fd677991b5cbfa495471cde78a28c0bdd03c
BLAKE2b-256 checksum
How to use checksums
05050c32dc6c757f7a9e5f1bdc30a0e43e30a7915104c30f0c7d9951e06f2031
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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