Skip to content

Silent /usr/bin/bash.0000 baseline cost when deployment name doesn't match a pricing config key #2

@jpsantoscosta

Description

@jpsantoscosta

Description

If AZURE_BASELINE_DEPLOYMENT is set to a deployment name that does not exactly match a key in the pricing section of the config file, baseline costs are silently recorded as $0.0000 throughout the run. No warning or error is shown.

This makes the cost comparison between Model Router and the baseline meaningless — the router will always appear to cost more.

Steps to reproduce

  1. Create a deployment in Azure named something like gpt-4o-baseline (a custom name rather than the canonical model name).
  2. Set AZURE_BASELINE_DEPLOYMENT=gpt-4o-baseline in .env.
  3. Leave configs/default.yaml with only gpt-4o under pricing: (no gpt-4o-baseline entry).
  4. Run the evaluation:
    python scripts/run_eval.py
  5. Open the report — baseline Estimated cost shows $0.0000 and Cost savings shows an inflated figure.

Expected behaviour

The tool should either:

  • Warn at startup that the baseline deployment name has no matching pricing entry and costs will be $0.00, or
  • Fail fast with a clear message pointing to the relevant config key so the user can fix it before wasting a full run.

Actual behaviour

The run completes silently. Pricing is calculated as $0.00 for every baseline prompt. The cost-savings percentage in the report is wildly inflated with no indication that the baseline pricing lookup failed.

Suggested fix

In the cost-calculation path, add a check: if the resolved pricing for the baseline model is None or zero, emit a warning at the start of the run and/or in the final report. Ideally also check at config-load time if the deployment name resolves to a known pricing key.

Notes

This is easy to hit in practice. Deployment names in Azure are set by the user and do not have to match the underlying model name. Many users, especially those comparing multiple baselines, will use descriptive names like gpt-4o-baseline, gpt5-prod, etc.

A one-line note has been added to .env.example and QUICKSTART.md as a short-term mitigation (see PR), but a runtime warning would catch the case for existing users who don't re-read the docs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions