---
title: "Pricing"
description: "How Assay prices a span, the unpriced tripwire, and local rates you may add."
---

Assay vendors a versioned price table. Each priced span is stamped with the version used. Historical spend stays reproducible.

## Unknown is not zero

A model the table cannot vouch for records tokens and **no cost**. Totals keep that share visible. See [Honesty](/honesty).

## Check

```bash
assay pricing check
```

Read-only scan. Exits `1` when:

- a metered model is unpriced, or
- unpriced history is now correctable, or
- a scheduled rate change is due

JSON on `--json` is the monitoring form.

The dashboard pricing panel (`/pricing`) judges against the same overlay this command reads.

## Watch

```bash
assay pricing watch
```

**The only CLI verb that reaches the network.** It fetches public rate documents. It does not open the store. It presents no credential. Exits `2` when published rates moved since last seen.

No other verb calls it. It is never ambient.

## Correct

When a figure is knowably wrong (a model missing at capture, then added):

```bash
assay reprice run --dry-run
assay reprice run
```

Corrections are append-only overlay rows. The span is never edited. `--dry-run` prints the whole delta first.

`reprice ttl` re-reads session logs for the 5-minute vs 1-hour cache-write split. It is harness-specific. Dry-run first.

A host that records **marked-up** revenue rather than provider cost must not run a stock reprice. The pass would "fix" the ledger to a number the wallet did not charge.

## Local overlay

A machine-local `pricing.local.json` may **add** a model the table lacks. That provenance is recorded separately.

It may **never override** a vendored rate. Changing a shipped rate is a table version bump plus a correction pass.

## Invoice

```bash
assay reconcile anthropic
```

Compares Assay's computed + corrected cost to the Anthropic admin cost report, per day (and per model), over the last complete week.

API-key traffic only. Subscription usage has no invoice on that API.

Exits `1` when a day drifts past `--tolerance`, `3` when the API could not be read.
