Anomalies, savings and forecasts

How Veqen spots a spike on a customer, user, feature or model the same day, explains why spend moved, finds ways to spend less, and forecasts the month.

Everything here is worked out from your own ledger: the calls you send and the bills you import. Nothing needs setting up beyond sending calls with tags.

Anomalies

Every hour Veqen compares each day's spend with the same weekday over the four weeks before, for all spend and for each customer, user, feature, project and model. A spike is spend at least twice the usual median and at least $10 more ($25 for all spend together). Something with no spend on those weekdays before has to cost three times that floor, so a new customer's first day isn't an alarm.

Today counts what has been spent so far, so a runaway agent or a leaked key shows up the same day it starts, not in next week's report. Spend that arrives late for yesterday is checked again in the first hours of the next day.

Each new anomaly is alerted once, in one message per organization, to the channels under Settings › Alerts; at most five a day are raised, biggest first. Seeing it again only updates its cost. Spikes lists the last 30 days; each one shows what moved inside it against the same weekday a week before (which models, features or users), links to that slice in Breakdown, and its page has an Ask what caused it box that asks the AI analyst to walk through it.

An organization needs four weeks of history before anomalies are looked for, and something that has always been all of the spend (a single model, say) isn't flagged on its own: the all-spend check covers it.

The weekly digest

Every Monday, owners and admins get last week against the week before, with the reasons spend moved, biggest first:

  • features, customers, projects or users that are new, stopped, or whose spend tripled;
  • a shift in model mix;
  • a prompt-cache hit rate that fell;
  • when 1% or more of the week's calls were on models with no price (neither in the price book nor one of your prices), up to three of those models, since their cost is missing.

Each reason links to Breakdown with the right filters.

Savings

Savings looks at the last 30 days and lists what would cost less, each with a monthly estimate and a cost planner link that compares now with the change:

  • Prompt caching where long prompts are rarely cached.
  • The Batch API for work that's offered it, at about half the price.
  • The same open model on a cheaper host.
  • A cheaper model from the same provider for the same work. Only current, stable models are suggested, never previews or dated snapshots.

The host and model ideas use your prices. Models with a price you set or a provider discount aren't offered caching or Batch ideas, since your contract may price those differently. The ideas are starting points: check quality before switching models.

Forecasts

Forecast projects month-end and quarter-end spend: what's been spent so far plus each remaining day at its weekday's average over the last four weeks, with an 80% range from how much days have varied around those averages. It's broken down by customer, feature, project and model, so you can see whose spend is driving the month.

Monthly budgets use a simpler pace, spend so far plus the last seven days' daily average, for values already past a fifth of their limit: when a customer, feature or the whole organization is on course to reach its limit before the month ends, owners and admins are told once, with the day it's expected to run out.

Through the API and MCP

With a full-access key, GET /v1/spikes lists spikes (with their ids), GET /v1/spikes/{id} shows what drove one, GET /v1/savings returns the savings ideas and GET /v1/forecast the forecast, optionally for one customer, feature or project. The MCP tools list_anomalies, get_spike, get_savings and forecast_spend do the same for AI assistants. See the API reference.

Next