Knowing what the AI cost you

Per-call billing is easy to lose track of. Logging every request with tokens and estimated cost turns a vague worry into a number.

Anything billed per request has the same problem: individually the amounts are trivial, and nobody notices until the invoice arrives.

What gets logged

Each successful AI call can be recorded with the feature used, the prompt, the output, optional token counts, an estimated cost, a timestamp and an optional user id.

The features are distinguished — playlist builder, voice track, show prep, rotation rules, cue assistant — so you can see where the spend actually goes rather than one aggregate number.

Reading them

The AI Usage Logs window reads recent rows for auditing and cost awareness. It is restricted to admins and superusers, which is the right boundary: prompts and outputs are the substance of what people asked for.

The audit angle matters as much as the cost one. If a voice track script says something unfortunate, the log is how you find out what was asked.

Budget fields

Preferences carry daily and monthly usage limit fields under Account & AI. Worth being precise about what these do: they are persisted settings intended for budgeting, and hard-cap enforcement is not centralised in the AI service at the time of writing.

Treat them as a documented budget you monitor against the logs, not as a guarantee the system will refuse a request. That distinction is worth knowing before you rely on it.

Two ways to connect

Either a station-managed backend endpoint or an OpenAI-compatible API, with a provider mode choosing between them or preferring the backend automatically when one is configured.

The backend option is the better one for a multi-operator station: credentials stay on your server rather than in each installation, and you get one place to monitor spend. Backend calls can carry a bearer token from encrypted storage.

Off by default

The assistant must be explicitly enabled, and at least one connection configured. With it disabled, requests return a clear error saying so rather than failing obscurely.

A station that wants nothing to do with any of this simply leaves it switched off, and nothing else in the application changes.

Related reading

Ready to hear it on your own station?

Tell us about your setup and we'll send you a personalised quote.

Request a Quote