Skip to content

typed-edge-classifier: stale PRICING map for Opus 4.7 causes --max-cost-usd to abort at ~33% of intended budget #317

@jkdavies

Description

@jkdavies

At commit 151a8d1c922ffadad08399508efe46b207a5894e:

// scripts/typed-edge-classifier/classify-edges.mjs:69-80
const PRICING = {
  ...
  "claude-opus-4-7": { in: 15.0, out: 75.0 },
  "claude-opus-4-6": { in: 15.0, out: 75.0 },
  ...
  "anthropic/claude-opus-4-7": { in: 15.0, out: 75.0 },
  ...
};

Per Anthropic's pricing page (https://www.anthropic.com/pricing as of 2026-05-17): Opus 4.7 is $5/MTok input, $25/MTok output (1M-context tier; standard tier is similar order-of-magnitude). The PRICING map has the older Opus 3 rates (~3x too high).

Why it matters

--max-cost-usd is enforced by accumulating estimated dollars from this map. Because the map overestimates Opus 4.7 cost by ~3x, the cap fires at ~33% of the intended budget — the classifier aborts mid-batch on what should be a finishable run.

This is a correctness bug, not a cost-savings issue: users who set a $1 cap are actually running a $0.33 cap.

Suggested patch

"claude-opus-4-7": { in: 5.0, out: 25.0 },
"anthropic/claude-opus-4-7": { in: 5.0, out: 25.0 },

(And probably double-check the Haiku 4.5 / Sonnet 4.6 entries against current pricing while you're in there.)

Context

Same self-hosted Davies Farms setup as #313 / #314 / #315 / #316. Caught during an OB1-model-cost audit at our 366-thought scale. Audit grounded all numbers in current provider pricing pages; the PRICING map looks like it was filled in once and not refreshed when Opus 4.7 priced lower than Opus 3.

Happy to PR alongside the others.

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