---
title: "price_unstated"
url: https://services.dev/docs/reference/check/price_unstated
---
# price_unstated

URL: https://services.dev/docs/reference/check/price_unstated

> The tool description omits the price or when it's charged.

| Fix | Exit |
|---|---|
| Keep the price sentence in it. | 1 |

**Owned by** [Your own Service](https://services.dev/docs/own.md): the page that explains what this gate holds.

No Service file fails it: services.dev writes the price sentence, with when the job is charged, after every tool description. The gate is a backstop for that sentence. Below, a Service with a description of its own, and the tool description an agent reads, the sentence after it.

## The file

```ts title="services/translation.ts"
import { Service } from 'services.dev'

export default Service({
  name: 'Translation',
  description: 'A document, translated.',
  input: { document: 'file', to: 'language: a BCP 47 tag, such as fr-CA' },
  output: { document: 'file' },
  price: 49,
})
```

## The tool description an agent reads in tools/list

```txt title="the description, then the price sentence and who delivers"
A document, translated. $49 per job, within 48 hours, charged on delivery. AI delivers every job.
```

## Explained in

- [Your own Service](https://services.dev/docs/own.md)
- [Service()](https://services.dev/docs/service.md)

<details>
<summary>The whole document check --json prints</summary>

```json title="npx services.dev check --json"
{
  "ai": {
    "cents_per_call": 42,
    "simulated": true
  },
  "mcp": {
    "tools": 13,
    "tokens": 4476,
    "sandbox": 9,
    "budget": 8000
  },
  "services": [
    {
      "path": "services/translation.ts",
      "lines": 5,
      "steps": "draft · ai → review · ai · adversarial",
      "ok": true,
      "price": "$49 per job, within 48 hours, charged on delivery.",
      "who": "AI delivers every job.",
      "agent": {
        "tool": "order_translation",
        "words": 16,
        "job": "job_7Hq2",
        "status": "accepted",
        "on": null,
        "charged": 4900,
        "person": false,
        "why": ""
      },
      "ledger": "+$49.00 · AI $0.84 (example) · you $48.16",
      "approved_ledger": null,
      "outcome": null,
      "margin": {
        "floor": {
          "cents": 3920,
          "pct": 80
        },
        "own": 3920,
        "stop": 980,
        "nested": []
      },
      "apps": [
        "customer portal",
        "owner console"
      ],
      "failures": []
    }
  ]
}
```

</details>

---

- Up: [check’s gates](https://services.dev/docs/reference/check.md)
- Previous: [description_too_long](https://services.dev/docs/reference/check/description_too_long.md)
- Next: [agent_cannot_buy](https://services.dev/docs/reference/check/agent_cannot_buy.md)
