# Pulse Desk > Paste any time-indexed numeric series - a KPI, a sensor log, a latency or error-rate export, a price > history - and get its exact statistical shape computed free in the browser: an OLS trend with a > significance test, autocorrelation-based seasonality, a single best changepoint, z-score anomalies, a > volatility-regime read, and a naive forecast. An AI pass, held to those exact numbers, explains what > the shape means and can turn it into a decision brief for a stated purpose. - URL: https://pulse-desk.skillsafe.ai/ - API docs: https://pulse-desk.skillsafe.ai/api.html - Token panel: https://pulse-desk.skillsafe.ai/tokens.html - Platform: SkillSafe (https://skillsafe.ai/) - Model: `gpt-terra` (the balanced OpenAI tier alias) - Price: the app itself is free; each run costs the signed-in user credits for the model call ## What it is for One user, in one sitting, holding one pasted series they want understood: is it trending, cyclical, stable, or breaking a regime; is anything about the pasted numbers themselves worth flagging; and - if they want it - a short decision brief tailored to what the series actually is (an ops metric, a business KPI, a quality-control measurement, a capacity-planning input). Pulse Desk is not a charting tool, a database, or financial/medical/investment advice; it describes statistical shape. ## The one work object A **time-indexed numeric series**: one point per line, `timestamp,value` (comma, tab, or whitespace separated) or a bare value with no timestamp (a sequential index is assumed). A header row such as `date,value` is detected and skipped automatically. Missing values (`NA`, `null`, a blank field) are excluded from the numeric series but their timestamps are still counted. An optional `value_label` (free text describing what the metric is) helps the AI pass; a `purpose` field (ops monitoring, business KPI, quality control, capacity planning, or other) steers only the `brief` lane's language. ## The two lanes Both read the same series and return the same envelope; only the `body` differs. 1. **`diagnostics`** — trend direction and strength, whether a season repeats, whether the mean shifted, how volatile the series is, and a data-quality note. This is the inspect-and-decide stage, and it is the one that usually hands off to `brief`. 2. **`brief`** — the same series turned into a short, decision-oriented brief for a stated purpose: ranked priority actions, what to watch next, and longer-term considerations. Reads `prior_diagnostics` (the `diagnostics` lane's own prior output on the same series) as established context when the user follows the handoff button, rather than recomputing everything from scratch. ## What runs free, in the browser, with no account - **Parsing** comma/tab/whitespace-separated series, with or without a header, with or without timestamps, missing-value tokens handled explicitly. - **Basic stats** — n, mean, median, std, min, max, first, last, total change. - **OLS trend** on point index — slope, intercept, r², a t-statistic and significance test, and a direction (`up`/`down`/`flat`) that only fires when the slope is statistically significant. - **Seasonality** — autocorrelation on the detrended residuals, searched across a range of candidate lags, and required to form a genuine local peak (not merely the largest value tested) before it counts as detected - this specifically avoids mistaking an unmodeled level shift for a repeating cycle. - **A single best changepoint** — an exact O(n) search (via prefix sums) over every possible split point for the one that most reduces sum-of-squared-error versus a single whole-series mean, reported with the before/after means and the fraction of variance it explains. - **Anomalies** — z-score on the detrended (and, when a season was found, deseasonalized) residuals, threshold |z| ≥ 3. - **Volatility regime** — first-half vs second-half standard deviation, reported as increased, decreased, or stable. - **A naive one-step-ahead forecast** — linear-trend extrapolation, plus a seasonal-naive adjustment when a season was found, with an indicative (not statistically rigorous) ±1.96σ range. - **Flags**: truncated input, unparseable lines, missing values, duplicate or non-monotonic or irregularly-spaced timestamps, a constant series, insufficient data, a detected changepoint, detected seasonality, detected anomalies, and a volatility shift. - **Exports**: the parsed series and the anomaly list as CSV, and the read-out as Markdown - all with no run and no charge. ## How the model is held accountable The engine's facts go **into** the run input as `prescan`, and the model's answer is checked back **against** them: - Every flag the browser raised must come back in `reconciliation`, one entry per flag, marked `confirmed`, `noted`, `set-aside` or `superseded`. A flag the model ignored is displayed as ignored. - Every timestamp the model cites anywhere in its reply - in a finding, a key signal, or a priority action - is checked back against the actual parsed series. A timestamp that does not appear in it is still rendered, but marked `ungrounded` rather than trusted silently. - Every numeric metric value the model cites is expected to match what `prescan` already computed; the house rules in the system prompt forbid inventing or altering it, and forbid asserting a *cause* for a changepoint the pasted text does not itself state. ## Deliberate limits - **A true period of 2 can never be confirmed** by the local-peak seasonality test (it has no interior neighbour on its low side to compare against) - a stated, accepted trade-off for rejecting the far more common false positive of a slowly-decaying, non-periodic residual. - **The changepoint search finds exactly one split**, not a full multi-regime segmentation - a series with two real regime changes will report only the single split that explains the most variance. - **z-score anomaly detection can be masked by a single very large outlier** inflating the residual standard deviation used to score every other point - a known limitation of the method, not a bug. - **A paste longer than one run can carry is cut on whole-line boundaries**, with the number of lines profiled locally versus sent stated to both the user and the model. - **This is not financial, medical, investment, staffing, or engineering advice.** Every finding is a prompt to verify with the people who own the system that produced the numbers, never a decision already made. ## Persistence Runs are saved to the signed-in user's SkillSafe account in a declared `pulseruns` collection, mirrored in `localStorage` for instant paint and offline fallback. The mirror is scoped per subject, so two people sharing a browser never see each other's series, and signing out purges this device's copy. ## Sources Pulse Desk is an independent derived work inspired by the published agent skill `@k-dense-ai/aeon` (`k-dense-ai/scientific-agent-skills`, MIT licence). It reimplements a classical, exactly-computable subset of that skill's task surface - trend, seasonality, anomaly detection, a single changepoint, and a naive forecast - as deterministic browser arithmetic. It does not use and is not affiliated with, endorsed by, or maintained by k-dense-ai or the authors of aeon.