DClaw Forecast Open the app
Public beta · live now

Forecast. Experiment. Understand.

DClaw Forecast studies historical data to estimate what may happen next — then lets you change assumptions and see exactly how the prediction responds.

For economic indicators, markets, weather, sales, demand and other time-series data. Every forecast comes with its uncertainty, its assumptions and a test against the past.

Try it free Read the documentation Sign up with email or Google. The landing page also has a working demo you can use without an account.
A 66-second narrated tour of the live app the landing demo, a timed change in the Forecast Lab, then the Weather, GDP and Stocks domains on real data. Recorded on the production site, with a computer-generated voiceover and on-screen captions.
  1. Past dataA history to learn from
  2. ForecastThe baseline
  3. Try a changeAn assumption or a setting
  4. CompareBaseline vs experiment
  5. UnderstandWhat moved, and why

Most forecasting tools hand you a line. Then you're on your own.

  • You can't see what moved it. Change a setting and the line shifts, but nothing tells you how much, when, or why.
  • Uncertainty is hidden. A single confident number invites decisions the data can't support.
  • Accuracy is assumed, not shown. Few tools show how the method did on history it never saw.
  • Assumptions blur into predictions. "What if rates rise?" and "what will happen" end up looking the same.
  • The jargon locks people out. RMSE, horizons and smoothing weights are explained nowhere near where they appear.

The goal isn't to make the future certain. It's to make the forecast understandable: what produced it, what was assumed, how uncertain it is, and what happens if something changes.

One product, three places to work.

A public landing page with a working demo, a Workspace for your own series, and a Forecast Lab for experiments. Everything is calculated live from the data; nothing on screen is typed in by hand.

What the product shows you Actual Baseline Your experiment Uncertainty range When your change applies
Scenario active Largest gap: what your change did Past Forecast

Workspace

Your datasets and saved forecasts, for day-to-day forecasting.

  • Three sample series, plus your own CSV upload
  • Model, horizon and confidence controls
  • Scenarios and an AI Copilot that answers about this forecast
  • Save, reload, export CSV, copy a summary

Forecast Lab

Change one thing at a time and see exactly what moved.

  • Baseline vs experiment, overlay and difference
  • Expected effects kept apart from observed ones
  • Beginner and Advanced modes, Help mode everywhere
  • Twelve views, listed below

Domains

The same loop, adapted to each kind of data.

  • Weather: P10/P50/P90 ranges with a sky and season per month
  • GDP: official US data; set future paths for rates, inflation, a business survey and unemployment
  • Stocks: S&P 500, Nasdaq or Dow; price fan, returns and volatility scored on unseen days
ExperimentSet a baseline, change a setting, read the observed impact.
GuidedPredict first, run it, see what really happened.
SensitivitySweep one setting across its range.
HeatmapTwo settings at once, one real run per cell.
RelationshipsWhich settings depend on each other.
ScenariosPlain-language assumptions, up to three compared.
Scenario timingStart, length, shape and what happens after.
BacktestRolling tests on history the model didn't see.
ModelsSix methods side by side, with their scores.
ImportanceWhich settings actually move the error.
DomainsWeather, GDP and Stocks.
HistorySave experiments and compare them.

The maths runs in your browser. The server only stores and signs in.

Every forecast, backtest, sweep and scenario is computed client-side by a TypeScript engine, so results are instant and every number traces back to code. The server handles accounts, saved work and the Copilot.

In the browser Next.js interface Landing demo · Workspace · Forecast Lab Forecasting engine (TypeScript) Linear · ETS · Theta · S-naive · ARIMA · Ensemble Least-squares models for GDP and stocks Backtests, sweeps, heatmaps, scenario timing Real data, and labelled samples Open-Meteo weather · FRED economy and indices On Vercel Next.js server routes /api/datasets · /api/forecasts (signed-in only) /api/copilot (grounded on the forecast you're viewing) Middleware gates the app with Clerk Clerk Email · Google Neon Postgres, per user OpenRouter Claude Haiku Rule-based Copilot fallback Answers from the same numbers when no model key is set sign in, save, ask

Your numbers stay put. Forecasting happens on your device; the server stores only the series you choose to save, scoped to your account.

Grounded answers. The Copilot receives the computed forecast as structured context and is instructed never to invent numbers.

Honest by construction. One parameter registry drives every tooltip, and expected effects never share a panel with observed ones.

What's actually built — and what isn't yet.

Each requirement, and where it stands today. "Partial" means it works with a stated limit; "Roadmap" means it isn't available yet, and the product says so where it appears.

47 built2 partial1 on the roadmap
RequirementStatusNotes
Access and data
Public landing page with a working demoBuiltPlain-English first; demo figures labelled.
Sign up and sign in (email code, Google)PartialWorks today on a Clerk development instance (dev badge, 100-user cap). A production instance is needed for a wider launch.
Saved datasets and forecasts per userBuiltNeon Postgres; each user sees only their own.
Download or delete your data yourselfBuiltAccount → Your data & account: one JSON file with everything stored, or delete the account and all its data straight away.
Upload your own series (CSV)BuiltMonthly, weekly or daily (weekday-only trading data too), combined into calendar months as a total or an average. A preview says how the file was read before anything loads: day or month first, which column, any repeated dates. Excel exports and semicolon files with decimal commas work.
Export CSV and copy a summaryBuilt
Works on phone, tablet and desktopBuiltTested at 390, 768, 1024 and 1440 px.
Security, privacy, terms and contact pagesBuiltTerms cover public-data licences and AI answers; privacy covers cookies and browser storage.
Keyboard and screen-reader useBuiltToggles announce their state, help is reachable by keyboard, tabs and menus move with the arrow keys, errors are announced.
Account removal outside the app clears its dataPartialBuilt (a signed Clerk notification); switched on once its signing secret is set in Clerk. Deleting from the app itself already removes everything.
Forecasting engine
Linear, ETS (Holt-Winters), Theta, Seasonal naive, ARIMA, Ensemble, AutoBuiltARIMA picks its own order. Auto picks the lowest error on the most recent 3–6 held-out months. Seasonal naive is the benchmark to beat. On short histories a method that can't be fitted says it used Linear.
Automatic tests for the forecasting mathsBuilt76 unit tests (short, constant, zero and negative series for every method; the importer's rules) run before every release, beside 28 browser suites.
Uncertainty range (80 / 90 / 95%)BuiltWidens with the horizon.
Validation metrics and rolling backtestsBuiltMAE, RMSE, MAPE, SMAPE, coverage, direction. Months whose actual is 0 are left out of MAPE rather than counted as perfect; too little history reads "not enough history to validate".
Outside inputs (exogenous variables)BuiltIn the GDP domain: rates, inflation, a business survey (PMI on the sample), unemployment.
Prophet, Random Forest, XGBoostRoadmapShown as "Planned" in the model comparison.
Choose how much history the model learns fromBuiltAll history, the last 30 or the last 24 months.
Forecast Lab
Baseline vs experiment (overlay, difference)Built
Expected effects kept apart from observed impactBuilt
Parameter help: what, why, if you raise or lower itBuiltOne registry drives the Lab and the landing page.
Beginner / Advanced modes and Help modeBuilt
Guided experimentsBuiltFive exercises; results computed from your own runs.
Sensitivity sweepsBuiltEvery setting, including how much history the model learns from.
Two-parameter heatmapBuilt
Parameter-relationship mapBuiltMeasured interactions, four real runs per pair.
Scenario assumptions in plain languageBuiltUp to three scenarios compared.
Scenario timing and durationBuiltStart, length, step / gradual / temporary / custom, return or keep.
Model comparisonBuilt
Beat the model (forecasting game)BuiltSix real months hidden; draw a guess and a range; the server scores you against the model and builds your calibration. Each set of hidden months counts once.
Time machine (replay past forecasts)BuiltRe-fit on only what was known at any past month; the range's real track record against what it claims.
Say it in wordsBuiltPlain-English what-ifs become visible, editable settings; rules first, Claude only when needed.
1,000 possible futuresBuiltSimulated paths matching the range, with the live chance of reaching a target.
Silent guided tour in the live demoBuiltTwo minutes, typed guide box and transcript; readable on phones.
Measured parameter importanceBuilt
Experiment history and comparisonBuiltSynced to your account, so it follows you across devices.
Domains
Weather: probabilistic P10 / P50 / P90BuiltTemperature, rainfall, cloud cover, peak wind, humidity and sunshine on real observed data for five Indian cities (Open-Meteo), or the generated sample.
GDP: quarterly, macro assumptionsBuiltOfficial US statistics from FRED since 2012, or the generated sample; estimates shown with their uncertainty.
Stocks: returns, volatility, technical featuresBuiltS&P 500, Nasdaq Composite or Dow daily closes from FRED, or generated prices; scored on 120 unseen days.
Real data feeds for the domainsBuiltWeather from Open-Meteo, GDP and stock indices from FRED, refreshed daily. Each domain keeps a labelled sample too.
Wind and more weather variablesBuiltPeak wind, humidity and sunshine, each with its own P10–P90 range; a chart picker shows any of the six measures.
Explanation and trust
AI Copilot grounded on the current forecastBuiltClaude Haiku through the Vercel AI Gateway (OpenRouter as fallback) for signed-in users, up to 30 AI answers a day each; after that, and whenever no model answers, a rule-based explainer answers from the same numbers without using up an answer.
AI Copilot inside the Forecast LabBuiltKnows the experiment: the baseline, the timed change and what moved.
Real data in the WorkspaceBuiltNew Delhi temperature and the S&P 500 monthly average, beside the samples and your uploads.
"Why did my forecast change?" breakdownBuilt
Uncertainty shown instead of a single numberBuilt
Validation shown beside every model choiceBuilt
Sample and demo data always labelledBuilt
Reproducible experiments (save and replay)BuiltSaved forecasts reload with their exact settings.
DocumentationBuiltLearn pages in the app, plus this site.
Product walkthrough videoBuilt66 seconds, narrated and captioned, recorded on the live site.

Where it goes next.

Before a wider launchProduction-ready access

  • Clerk production instance with our own Google sign-in
  • Custom domain for sign-in emails
  • Uptime alerts on /api/health (an external monitor)
  • Clerk webhook signing secret, so accounts removed in Clerk take their data with them

NextYour data, your way

  • More places, countries and markets
  • Forecasting at a daily or weekly step

LaterMore methods, more evidence

  • Prophet, then tree-based models
  • More weather places and measures (for example UV, air quality)

Running in the cloud today. Portable when you need it.

One Next.js codebase. The same build runs on Vercel or on your own server; only environment variables change.

Live now

Cloud (Vercel)

Deployed at forecast.smritiraj.online, with Clerk for accounts, Neon Postgres for saved work and OpenRouter for the Copilot. Nothing to install: open it in a browser. A public health check at /api/health reports whether the app can reach its database, for an uptime monitor to watch. It runs on Next.js 15 and React 19 on Node.js 24. The code is version-controlled in git; 76 unit tests for the forecasting maths and 28 end-to-end suites (npm run e2e) check every screen against the engine before each release (one command runs the checks, deploys and re-tests the live site), and the production dependencies carry no known security advisories. Every response carries security headers, including a Content-Security-Policy that lets the browser run scripts and send data only to this site and the sign-in service, and refuses framing and content sniffing, and each account has storage limits (50 saved series, 100 saved forecasts). When the database or a data source doesn't answer, screens say so in plain words and offer a retry instead of breaking, and Copilot questions are size-limited so AI spend stays bounded. Every request that sends data is checked for size and type before it is read, bad values are refused rather than stored, and saved data is never cached.

  • NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, CLERK_SECRET_KEY: accounts
  • DATABASE_URL: Neon Postgres (tables datasets, forecasts, lab_experiments, challenge_rounds, copilot_usage)
  • CLERK_WEBHOOK_SIGNING_SECRET (optional): account removal from Clerk clears stored data
  • Vercel AI Gateway (the deployment's own token), or OPENROUTER_API_KEY with optional OPENROUTER_MODEL: Copilot
Available on request

Your own server

Run npm run build and npm start on your own hardware with your own Postgres and Clerk keys. Leave the model key unset and the Copilot answers from its rule-based fallback, so no forecast data leaves your network.

  • Forecasting already runs in the browser: no model server to host
  • Any Postgres works through DATABASE_URL

See the real thing.

Build a baseline, change one assumption, and watch exactly what moves, with the uncertainty and the evidence beside it.