EchoTime logo Explainable time-series similarity for humans and agents.
EchoTime 1.0

Compare time series and datasets with explainable structural similarity.

EchoTime compares time series and time-series datasets, explains why they match or differ, and emits compact JSON plus shareable HTML reports. The homepage is intentionally short. Tutorials, API material, and ecosystem detail now live in dedicated docs pages with a left sidebar.

MIT LicenseBeta releaseAgent toolsGitHub PagesThe University of Birmingham
MIT License Beta release The University of Birmingham
Why EchoTime?

Designed for human intuition and agent reasoning

Stop trusting black-box scalars. EchoTime breaks down structural similarity into explainable components.

rolling similarity timeline
raw signal profile agent context
Profiledataset structure first
Compareshape, trend, rhythm
ExplainJSON plus narrative

Explainable by default

Similarity is shown as components a person can inspect, not just one opaque score.

Domain agnostic

The same workflow fits finance, healthcare, traffic, climate, logs, and research cohorts.

Agent ready

Compact outputs let tool-calling agents carry the result without dragging around oversized reports.

Quickstart

The first interaction is obvious

Installation & Copy-paste
pip install echotime
python -c "import numpy as np; from echotime import compare_series; x=np.sin(np.linspace(0,8*np.pi,128)); y=np.sin(np.linspace(0,8*np.pi,128)+0.2); print(compare_series(x,y).to_summary_card_markdown())"
Expected output
# EchoTime similarity summary
overall similarity: ...
top components: shape similarity, trend similarity, spectral similarity
Showcase

One strong example, then deeper material in docs

The homepage only needs enough proof to earn a click into the docs. It should not carry the whole manual.

EchoTime series previewSeries previewOpenClaw-style candidatedurable breakout analog
Explainable Similarity

Plain-English similarity preview

# EchoTime similarity summary

**Compared:** OpenClaw-style candidate vs durable breakout analog

## Headline

OpenClaw-style candidate vs durable breakout analog: Pearson r 1.00, Spearman rho 1.00, Kendall tau 1.00. The best agreement appears in spectral similarity and trend similarity.

## Familiar statistics

| metric | value |
|---|---:|
| Pearson r | 1.000 |
| Spearman rho | 1.000 |
| Kendall tau | 1.000 |
| Best-lag Pearson r | 1.000 |
| Mutual info | 0.805 |
| First-difference r | 0.924 |

## Time-series-specific metrics

| plain-language label | score |
|---|---:|
| spectral similarity | 0.988 |
| trend similarity | 0.983 |
| shape similarity | 0.961 |
| derivative similarity | 0.924 |

## Recommended next actions

- Plot both series after z-score normalization to show the shared shape without scale differences.
- Run rolling or windowed similarity if you expect the relationship to change over time.
- Use structural-profile similarity when scales, frequencies, or observation modes differ too much for raw-shape comparison.
- For cumulative or monotonic inputs, compare first differences or daily increments before making an analog claim.
- Inspect spectral or seasonality-aware models because the two series share rhythm strongly.
EchoTime similarity componentsSimilarity componentsComponent mean 0.95 across 5 time-series metrics.Spectral0.99Trend0.98Shape0.96Derivative0.92DTW0.88
Diagnostics

Similarity components

Understand exactly which structural elements match and which don't, breaking down the similarity score. Trace the origin of the similarity index to specific time-series characteristics.

Rolling component meanRolling component meanmean=0.45, min=0.22, max=0.96 across per-window metric means
Stability over time

Rolling component mean

Analyze how the similarity between the two series evolves over time. The breakdown shows whether the structural relationship is durable or just a short-lived artifact.

Flagship demos

Built to travel beyond the docs

Next step

Use the docs like a docs site, not like a landing page appendix

If you want tutorials, API detail, or ecosystem guidance, go to the left-sidebar docs area. That separation is what makes the site easier to scan and easier to trust.