Platform Engineering13 October 20267 min read

Jev: The Decision Layer — Part 9 of 10

Cost, reliability and operations

A cheap model call can still sit inside an expensive workflow. Part 9 builds a cost model that includes review effort, sets the service-level indicators that matter for a decision service, defines which errors to retry and which to fix, and names the owners a decision workflow needs once it is running.

#Jev#Decision Models#FinOps#Observability#Operating Model
Unstructured signals pass through a transparent decision boundary and emerge as controlled branching, scoring and binary outputs.

The price of a single decision call is the easiest number in the project to find and one of the least useful.

A decision service can be inexpensive per request and still produce an expensive workflow. Retries, upstream extraction, logging, engineering time and, above all, the human review it creates or removes decide whether the operating model actually improves. A model that is cheap to call but sends half the work back to people may cost more than the process it replaced.

This part covers the economics and the run model: what to count, what to measure, how to fail safely and who owns the thing once it is live. Kloofvale Local Municipality is fictional, and its systems and figures are illustrative. This is an independent CloudNala analysis, and pricing below is a dated snapshot, not a quote.

In plain language:

Count the cost per resolved report, not per call. The call is the smallest part of the bill.

What the pricing page shows

On 13 October 2026 the Jev AI pricing page listed three one-time credit packages, shown with a dollar sign and no currency named:

PackagePriceCreditsWorkspacesConcurrencySupport
Starter$10100,000, no expiry13 concurrent requestsEmail
Pro$1001,000,000, no expiryUnlimited10 concurrent, fast lanePriority
Enterprise$1,00011,000,000 (10% extra)Team workspacesUnlimited, dedicated fast laneDedicated

The packages do not auto-renew. The page did not say how many credits a request consumes, which is the number you need to turn a package into a monthly cost. Responses do report token usage, so the pilot can measure it. Until it has, any per-report figure is a guess.

Treat the table as a dated snapshot. Recheck it before budgeting, and allow for exchange-rate movement and tax: a South African organisation is buying a dollar-priced service with rand. TypeSafe's direct API has its own commercial terms, which need to be compared on the same basis.

The cost model

A more honest estimate looks like this:

Monthly workflow cost
= base platform or credit cost
+ successful decision requests
+ retry and failure traffic
+ upstream extraction or retrieval
+ human review effort
+ observability and storage
+ engineering and support
+ currency and tax allowance
A cheap call can sit inside an expensive workflowWHAT THE PRICING PAGE SHOWSWHAT THE WORKFLOW COSTSDecision creditsCredits charged per requestare not stated publiclyDecision creditsRetries and failed callsUpstream extractionHuman review effortObservability and storageEngineering and supportCurrency and tax allowance
Illustrative proportions for a Fix-It month. The pricing page shows the top block. The block that usually decides whether the pilot pays is the review effort it creates or removes, so measure cost per resolved report, not per call.

For Kloofvale the decision credits are small next to everything else. Fix-It's 1,400 weekly reports are short text messages, so each call carries little state. Any upstream step added later, such as transcribing voice notes, would bring its own cost and its own error rate. Engineering and support are real but mostly fixed. The line that moves is review effort. If the pilot routes 60 percent of routine reports automatically, the two call-centre staff spend their time on the hard 40 percent and on residents who need a person. If it only manages 15 percent, the municipality has added a system without removing much work.

That is why Kloofvale's headline measure is cost per resolved report, compared before and after, and why the shadow week in Part 10 measures review demand as carefully as accuracy.

Production service-level indicators

Track technical health and decision quality together. A service that is up but wrong is not healthy, and neither is one that is accurate but too slow for the queue.

DimensionMeasures
AvailabilitySuccessful requests, timeout rate, fallback rate
LatencyEnd-to-end p50, p95 and p99 by workflow
CostCredits or spend per completed business outcome
QualityError rates by class and threshold, from sampled review
ConfidenceDistribution and drift over time
ReviewReview rate, queue age and override rate
OutcomeResolution time, lost reports, missed urgent cases

Two of these are easy to miss. Fallback rate is how often the workflow ran without the model. A high fallback rate during an outage is the system working. A creeping fallback rate on a normal day is a problem nobody has noticed yet. Confidence drift is the early warning that the input has changed: a new suburb, a new service, a new way residents describe a problem. Alerts should be based on business impact, such as "urgent water reports waiting more than an hour", not only on HTTP status codes.

Retry policy

Both access routes document the same error codes, and they call for different responses:

  • 401 unauthorised. Do not retry. Something is wrong with the key or configuration. Alert, investigate, and send the report to triage.
  • 422 validation error. Do not retry. The request itself is wrong, usually a state or question that breaks the schema. Fix it, and send the report to triage meanwhile.
  • 429 rate limit and 529 overloaded. These are temporary. Retry with exponential backoff and jitter.
  • Timeouts behave like overload: retry within the same budget.

Every retry needs two limits: a maximum number of attempts and an overall deadline. Kloofvale's adapter gives each call a three-second timeout, allows at most two retries, and gives each report a ten-second total budget. If several reports in a row exhaust their budget, a circuit breaker opens and new reports go straight to the triage queue without calling the service at all, until a probe request succeeds.

Every response has a path, and none of them drops the reportCall thedecision adapter200, valid schemaApply the policy thresholds422 validationDo not retry: fix the request,report goes to triage401 unauthorisedAlert, check the key,report goes to triage429, 529 or timeoutBack off with jitter, withina retry budget and deadlineBudget spent: breaker opens,reports go to the triage queue
Only temporary failures are retried, and only within a budget. When the budget is spent the circuit breaker opens and reports go straight to the triage queue the call centre already works, so an outage slows Fix-It down without losing anything.

The point of the design is in the diagram's title: no response, and no absence of a response, drops a report. An outage makes Fix-It slower, because more reports reach people. It never makes a report disappear.

Duplicate protection belongs here too. A retried decision must not create a second case or a second notification. The adapter keys every decision on the report id, so the case system assigns a queue and sends a notification once per report, however many times the decision was asked.

Model portfolio risk

Jev AI offers about a dozen decision models from several providers behind the same request shape. That is convenient for experimentation. It is also a trap if it is mistaken for interchangeability. The same schema does not mean the same behaviour. Each model needs its own evaluation results, latency profile, cost and approval before it touches production.

So the rule is simple: do not fail over to an alternative model during an outage unless it has already passed the workflow's acceptance tests. An untested model behind a familiar interface is a new system that nobody has evaluated. The triage queue is the tested fallback.

Change management

Any of these is a production change, however small it looks:

  • The model identifier, including an alias that now points somewhere new
  • Question wording
  • Choice descriptions, and their order
  • Score levels
  • Noul criteria
  • Thresholds
  • State fields
  • Upstream extraction
  • Fallback behaviour

Version them, run the locked regression set, release to a small share of traffic first, and keep a rollback. At Kloofvale a change to the "water" description goes through the same pull request, review and regression run as a code change, because it is one. Our evals that gate real work article covers how to make the regression run a real gate rather than a report nobody reads.

Operating ownership

A decision workflow that nobody owns becomes an invisible dependency that nobody feels confident enough to fix. Each one needs named people for:

  • The decision. Kloofvale's head of customer services owns what a correct route means.
  • The integration. The digital services tech lead owns the adapter and its behaviour.
  • The data. The data analyst owns the state fields, their sources and the redaction rules.
  • Risk. The municipality's risk officer approves thresholds and review boundaries.
  • Operations. The call-centre supervisor owns the triage queue and its alerts.
  • Change approval. A named approver signs off material changes to wording, thresholds or model.

The list looks long for one routing decision. Most of these people already exist. The work is writing their names down before go-live, rather than discovering after an incident that everyone assumed someone else was watching.

Key points

Count the whole workflow. Credits are the smallest line. Review effort usually decides whether the pilot pays.

Pricing is a dated snapshot. Dollar-denominated, credit-based, with the per-request credit cost unstated. Measure it in the pilot and recheck before budgeting.

Retry only what is temporary. Back off on 429, 529 and timeouts within a budget. Fix 422. Investigate 401.

Fall back to something tested. The review queue is a safe fallback. An unevaluated alternative model is not.

Name the owners. Decision, integration, data, risk, operations and change approval, written down before go-live.

Previous: Part 8, security, POPIA and procurement. Next: Part 10, when to use Jev and when not to. All parts are on the series page.

How CloudNala can help

We help teams put a decision service into production with a run model they can live with: a cost model that counts review effort, indicators that join technical health to business outcomes, a retry and fallback design that never loses work, change control for wording and thresholds, and named owners for each part. The goal is a service that is still trusted, and still understood, a year after the pilot team has moved on.


Work with CloudNala

CloudNala helps organisations move from technology ambition to practical execution across cloud, AI, data, platform engineering and digital services.

Whether you are exploring AI, modernising your cloud environment, building a public-sector digital service, or turning an idea into a working MVP, we can help you shape the roadmap and deliver the next step.

Book an AI Decision Review or write to us at consult@cloudnala.co.za