Cutting Rotterdam’s Support Tagging Bill Before Monday
Picture a Rotterdam support team preparing to classify 200,000 tickets before Monday. Each ticket needs one routing label, and the budget has little room for repeated instructions, verbose answers or unnecessary retries. Gemini 3.8 Flash is the model under evaluation. The useful question is whether the team can lower its total bill while preserving the routing accuracy that operations needs.
Treat this as a measurement problem. Start with a quality baseline, then change one cost driver at a time. A shorter prompt is a saving only if its mistakes do not create more manual work.
A labeled sample that catches expensive routing mistakes
Build a reference set before processing the full queue. For this example, start with 600 tickets: 400 sampled from ordinary traffic and 200 covering rare labels, multilingual messages, overlapping intents and difficult cases. Have reviewers resolve disagreements using written routing rules.
Keep those two groups separate when reporting results. The difficult cases reveal weaknesses, but their deliberately high concentration would distort an estimate of production accuracy. Reserve an untouched portion for the final check so repeated prompt tuning does not quietly become memorization.
Measure overall accuracy, precision and recall for each label, and the share sent for review. Give costly errors their own limits. A missed account-compromise report can matter more than several routine billing mistakes.
A compact label contract for Gemini 3.8 Flash
Give every label a short identifier and a clear boundary. For example, BILL covers invoices, charges and refunds; ACCESS covers sign-in failures; SECURITY covers suspected account compromise. Specify precedence when a ticket matches several labels, and include an OTHER or REVIEW route for cases outside the taxonomy.
Request only the record identifier and label. Explanations consume output tokens and make downstream parsing harder. If reviewers need explanations, generate them only for the small subset they inspect.
Remove greetings, repeated policy text and examples that do not resolve actual errors. Keep examples for boundaries the reference set shows are difficult. Log token usage and quality after each revision; shorter instructions can become ambiguous surprisingly quickly.
Ticket cleanup that preserves classification evidence
Strip repeated email signatures, quoted reply chains and irrelevant markup before submitting tickets. Preserve subject lines, meaningful error messages and language cues. These transformations are inexpensive to run locally and can reduce input volume across every request.
Avoid applying a blind character limit to long tickets. The final paragraph may contain the actual request. Evaluate a policy that retains the subject, opening text and recent message, then routes oversized or unusual records separately. Test the cleanup itself against the reference labels.
Measured batches and bounded concurrency
Grouping several tickets into one request can amortize repeated instructions. It does not remove the tickets’ own token costs, and larger groups can introduce missing records, mixed identifiers or cross-ticket confusion. Clearly delimit each ticket and instruct the model to classify records independently.
Compare single-ticket requests with groups of 10 and 25. Measure cost per accepted classification, latency and quality. Treat these sizes as experiments, not recommendations that fit every workload.
- Require exactly one result for every submitted identifier.
- Reject unknown labels, duplicate identifiers and missing results.
- Retry only failed records when valid results can be retained safely.
- Increase concurrency gradually within the limits available to your account.
Keep request grouping separate from any provider batch-processing feature. Confirm current availability and pricing before assuming asynchronous processing earns a discount.
Retries and review rules that protect the budget
Use bounded retries with backoff for transient failures. Invalid output needs a repair attempt or review path; repeatedly resending the same ambiguous ticket rarely improves the economics. Avoid using a model’s self-reported confidence as the sole acceptance rule.
Compare configurations using total processing cost divided by accepted classifications. Include retry charges and review labor, then check the error limits separately. This prevents a cheap configuration from winning merely by pushing difficult work onto people.
A RelayVano pilot before the full queue
For a pay-as-you-go pilot, RelayVano is a practical option for testing Gemini 3.8 Flash through an OpenAI-compatible SDK using https://api.relayvano.com as the API base. Sign up for RelayVano, confirm the current model identifier and rates, and run the reference set before committing the full queue.
Approve the configuration only when it meets the quality limits and budget together. During production, sample accepted tickets for review and watch label distributions for shifts that could invalidate the pilot results.