A credit balance tells you how much is left. It takes more context to explain where it went, whether your current pace is sustainable, or which plan fits the work you do.
We built a tool that lets Ditto answer those questions from your account’s recorded usage. You can ask in the same chat where you use the product, without exporting a spreadsheet or connecting a separate forecasting account.
The system brings together three things: billing records, time-series forecasting through Cascade’s Ephemeris API, and the requirements that make a plan suitable for you. Ditto turns that evidence into a short explanation, with the detailed tool result available when you want to inspect it.
Ask about the work behind the credits
Try questions like:
- “Where have my credits been going recently?”
- “At my current pace, how does my usage compare with the credits I have until my next reset?”
- “Which plan fits if I keep my current resources and connect my chat apps?”
These questions need different answers. An activity overview draws on recent counts: searches, image generation, memories added and which categories consumed credits. A forecast question needs history, current balances and uncertainty. A plan recommendation also needs to know what you use and what you want to keep.
The reply stays at that level. Forecast ranges, model details and accounting diagnostics sit in the collapsed tool details for when you want them.
Turn receipts into a time series
A forecasting model reads one thing: a list of numbers at a fixed interval. The first job is turning your billing records into that list.
Ditto adds up the credits your work consumed in each hour, from every retained receipt and settled billing operation. Work paid from included plan credits counts the same as work paid from purchased credits, because both are consumption. Credit purchases and subscription fees are payments, so they stay out of the series.
Every receipt is then repriced at today’s rates. Suppose a model you use every day became 40% cheaper last month. Replaying your old dollar amounts would predict a future bill the new price will never produce. Pricing the recorded work (tokens, searches, images, compute time) at current rates gives the model a history that reflects what the same work costs now. Your invoices keep their original amounts; repricing applies only to the forecasting copy. When a past item has no current price, Ditto counts it as a gap and reports it, rather than treating it as free.
Forecasting models accept a limited amount of history. Ditto’s request holds up to 1,024 points, so it widens the buckets as an account ages instead of dropping old records. A month of usage fits as hourly points. Two months become 2-hour buckets, and six months become 8-hour buckets. A forecast needs at least 48 points of history, which a new account reaches after its first two days of use.
What a time-series foundation model does
You probably know how a large language model works: it reads an enormous amount of text and learns to predict the next word. A time-series foundation model applies the same idea to numbers. It trains on a huge, varied collection of sequences (electricity demand, web traffic, retail sales and synthetic series built to cover patterns real data misses) and learns to predict the next values.
Along the way it picks up shapes that recur everywhere: daily and weekly rhythms, sudden bursts, slow growth, quiet stretches. Give it a sequence it has never seen, such as your credit usage, and it recognizes those shapes the way a language model handles a sentence it has never read. Nobody trains a model on your account. Researchers call this zero-shot forecasting.
It also answers with a range rather than a single number. For each future period it returns three values:
- p10: a low outcome, which usage should exceed about 90% of the time
- p50: the middle estimate
- p90: a high outcome, which usage should exceed only about 10% of the time
A wide gap between p10 and p90 means the model is uncertain, which is useful to know before you plan around a number.
The model Ditto uses is Chronos-2, from Amazon. Its research paper describes one pretrained model that forecasts single series and groups of related series, including outside signals, without task-specific training.
Ephemeris: one API, many forecasters
Ephemeris is a hosted API from Cascade that puts a panel of forecasting models from Amazon, Google Research, Datadog and other publishers behind one endpoint. If you know OpenRouter for language models, the idea is similar. You can name a model, let Ephemeris route to one, or ask for an ensemble that blends several.
Ditto names Chronos-2 explicitly, so every forecast comes from a known model and revision. Here is the shape of a request for an account with six months of history:
{
"mode": "explicit",
"model": "chronos2",
"series": [{ "values": [0.0, 0.41, 1.2, 0.0, 0.07, ...] }],
"context_len": 548,
"horizon": 96,
"quantiles": [0.1, 0.5, 0.9]
}
That is everything Ephemeris receives: a list of numbers and a request ID derived from a hash. It never sees the work behind them, so your prompts, memories, images and account details stay with Ditto.
The values are log-transformed (log(1 + credits)) before sending. Usage is bursty: a single afternoon of image generation can dwarf a week of chat. On a log scale that spike no longer outweighs the everyday pattern, and Ditto converts the forecast back to credits when it arrives. The horizon here is 96 eight-hour steps, which is 32 days ahead.
Cascade also runs an open-source project on a different part of the problem. Participants compete to build synthetic training data, and each round trains forecasters on the entries and scores them against held-out real data. Ditto’s billing forecasts come from Chronos-2 today.
A forecast has to earn its place
Benchmark scores describe average performance across many datasets. Ephemeris publishes its own benchmarks. Your account is one specific dataset, so Ditto checks the model against your history before trusting it.
The check is a backtest, which works like a practice exam with the answers hidden:
- Pick a cutoff in the past, say 32 days before today.
- Give Chronos-2 only the history before that cutoff and ask for the next 32 days.
- Make the simple alternative forecast as well: your average daily pace over the 28 days before the cutoff, carried forward.
- Compare both forecasts with what you actually used, which Ditto already knows.
Ditto repeats this on up to five earlier, non-overlapping 32-day windows and averages how far off each method was. Chronos-2’s forecast is used only when it has at least three windows and beats recent pace on average error. If its estimate for the coming 32 days is higher than any 32-day stretch in your history, Ditto treats that as an extrapolation and falls back to recent pace. The reply names the method it used.
Each backtest is a paid forecast, and the daily budget allows several only when history is stored in wider buckets. In practice an account needs roughly three to four months of history before Chronos-2 can qualify. Until then, Ditto forecasts from recent pace.
The backtest mattered in early testing. On a bursty account, Chronos-2 did not consistently beat recent pace, and the backtest correctly kept the simpler forecast.
A credit-runout date needs a higher bar. Ditto shows one only when the model has passed five backtests, the real outcome landed inside the p10–p90 range in at least four out of five, and its typical error is under half of a typical month’s usage. Otherwise you get a pace estimate with its historical error range, because a precise date would claim more than the evidence shows.
BYOK is tracked on its own
When you bring your own provider key, that provider bills the work. Ditto tracks those tokens in a separate series, estimates the next 30 days at your recent pace and keeps them out of your credit forecast. If you move work between your own key and Ditto credits, expect both estimates to shift.
Recommend a suitable plan, then leave the choice to you
Consumption alone cannot decide between Pay as you go, Plus and Pro. Seats, connected chat apps, manual model selection and the resources you need to keep can rule out an otherwise cheaper option.
Ditto combines those requirements with the 30-day consumption estimate, adds each plan’s fee and recommends the cheapest plan that meets your needs. When a missing detail would change the answer, it asks a focused follow-up question. For heavy usage, the comparison shows whether a larger plan’s fee actually pays for itself.
The recommendation is advice. Changing plans still goes through Stripe, which shows tax, proration and change dates before you confirm.
Ditto pays for the forecasts. Each account gets one fresh forecast per UTC day, and follow-up questions that day reuse it. That cache also keeps the service within a shared daily budget.
Try it in your own account
Usage analysis is available on every plan. Forecasts appear once your account has enough history, while the daily budget lasts. Storage-use insights are outside this release.
Start with a question about your own work: open Ditto and ask where your credits are going, how your current pace compares with your balance, or which plan fits what you need.