Agent402 / tools / forecast-holt-winters

Forecast (Holt-Winters seasonal)

FREE with proof-of-work · or $0.001 in USDC · POST /api/forecast-holt-winters

Holt-Winters triple exponential smoothing — level + trend + seasonal component. Use for series with a repeating cycle (weekly retail traffic, monthly utility usage, quarterly revenue). Additive seasonality (constant amplitude) or multiplicative (amplitude grows with level). `period` is optional — if omitted, the kit auto-detects via autocorrelation on first differences and surfaces what it picked (with the ACF strength) so you can audit. Needs at least two full seasonal cycles to fit reliably.

Input

FieldTypeDescription
values *arrayNumeric series in chronological order (max 10000)
horizon *numberNumber of future periods to forecast (1 to 1000)
periodnumberOptional seasonal period (e.g. 7 for daily/weekly, 12 for monthly/yearly). Auto-detected via ACF if omitted.
seasonalitystring"additive" (default) or "multiplicative"
alphanumberLevel smoothing, 0 < alpha < 1 (default 0.5)
betanumberTrend smoothing, 0 < beta < 1 (default 0.1)
gammanumberSeasonal smoothing, 0 < gamma < 1 (default 0.1)

Example output

{
  "method": "holt-winters",
  "n": 12,
  "horizon": 4,
  "period": 4,
  "periodSource": "provided",
  "seasonality": "additive",
  "alpha": 0.5,
  "beta": 0.1,
  "gamma": 0.1,
  "forecast": [
    {
      "step": 1,
      "point": 12.5324,
      "lower95": 11.6958,
      "upper95": 13.369
    },
    {
      "step": 2,
      "point": 16.7253,
      "lower95": 15.5421,
      "upper95": 17.9084
    },
    {
      "step": 3,
      "point": 20.9462,
      "lower95": 19.4972,
      "upper95": 22.3952
    },
    {
      "step": 4,
      "point": 25.1831,
      "lower95": 23.5098,
      "upper95": 26.8563
    }
  ]
}

Try it — see the 402 challenge (free)

curl -i -X POST https://agent402.tools/api/forecast-holt-winters \
  -H "Content-Type: application/json" \
  -d '{"values":[10,14,18,22,11,15,19,23,12,16,20,24],"horizon":4,"period":4}'

The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:

Paid call (JavaScript agent)

import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agent402.tools/api/forecast-holt-winters", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "values": [
      10,
      14,
      18,
      22,
      11,
      15,
      19,
      23,
      12,
      16,
      20,
      24
    ],
    "horizon": 4,
    "period": 4
  }),
});

No wallet? Pay with compute

This is a pure-CPU tool, so an agent without a wallet can pay with proof-of-work instead of USDC: fetch a challenge, solve the sha256 puzzle (16 leading zero bits — a fraction of a second of CPU, no money, no AI tokens), and resend with the X-Pow-Solution header.

import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://agent402.tools/api/pow/challenge?slug=forecast-holt-winters")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/forecast-holt-winters", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"values":[10,14,18,22,11,15,19,23,12,16,20,24],"horizon":4,"period":4}) });

Related tools

US gov dataset search

USDC $0.003 · GET /api/gov-data

Search 300,000+ US government datasets on catalog.data.gov (CKAN): titles, publishing org, formats, and direct resource …

US weather alerts

USDC $0.003 · GET /api/weather-alerts

Active National Weather Service alerts for a US state as clean JSON: event, severity, headline, affected areas, onset/ex…

Recent earthquakes (USGS)

USDC $0.003 · GET /api/earthquakes

Real-time USGS earthquake feed: magnitude, place, time, depth, coordinates. Live government data, no key. ?minMag=4.5&pe…