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.6.7

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.6.7
File Size Uploaded
ts_data_generator-0.6.7.tar.gz 1.8 MB Details

Built distribution (wheel)

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

Total release size: 1.9 MB

Release files / ts_data_generator-0.6.7.tar.gz

Download URL ts_data_generator-0.6.7.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
50ee955b34c25b153fb1d73c49e075da39b6bd72272c3aeee2ee533226490717
BLAKE2b-256 checksum
How to use checksums
492243f9060e53fb6b2d3d818eeb695ede65611244f5378ff95b525757e48f82
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 Aug 26, 2026.

Transparency log

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

Download URL ts_data_generator-0.6.7-py3-none-any.whl
Size 68.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
84db98fb93152c61a36dde95169bee84eaab8be62bd0771ac7ebcb3bd532705b
BLAKE2b-256 checksum
How to use checksums
c7e96515ba360a16e3c7fce0989b83828abdb8fa969bd572700a7b64245a66b5
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 Aug 26, 2026.

Transparency log

Release history Release notifications | RSS feed

0.7.1

2 release files

This release

0.6.7 This release

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