Synthetic Time Series Data Generator
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
📚 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.
- Injectable Anomalies: Simulate failures with point anomalies, missing data gaps, and concept drifts.
- Deterministic: Guaranteed reproducibility via a seedable RNG.
- CLI & API: Use the
tsdataCLI 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 --helpUse
--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
Python API
from ts_data_generator import DataGen
from ts_data_generator.utils.trends import SinusoidalTrend
dg = DataGen(seed=42)
dg.start_datetime = "2024-01-01"
dg.end_datetime = "2024-01-07"
dg.to_granularity("h")
dg.add_metric("temp", {SinusoidalTrend(amplitude=10, freq=24)})
df = dg.data
dg.plot()
License
MIT — see LICENSE.
Release files for ts-data-generator 0.6.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ts_data_generator-0.6.5.tar.gz | 2.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ts_data_generator-0.6.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.2 MB
Release files / ts_data_generator-0.6.5.tar.gz
| Download URL | ts_data_generator-0.6.5.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
93022a213ecc85594ebe14df13146502f8b06e86c9c7ee700dc53d0a412fd988
|
|
BLAKE2b-256 checksum How to use checksums |
ad062bab829b0b8f04bb7d739da16aff35b11d407b68d2c0c5f0045333779eed
|
| 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 21, 2026.
Transparency logRelease files / ts_data_generator-0.6.5-py3-none-any.whl
| Download URL | ts_data_generator-0.6.5-py3-none-any.whl |
|---|---|
| Size | 51.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bf4139fd5db54fc87b5221e8ea3abeef505541ddc2a9c8a775288bcd23b8ef36
|
|
BLAKE2b-256 checksum How to use checksums |
3d619cbf6708bb989501ee8edf4e6eccb9c3ce3b98daf1fb6d44b961065b4026
|
| 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 21, 2026.
Transparency log