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

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

> A role is paid from the buyer, its Pool's fill ladder raises the fee, and nothing caps what the buyer pays for it.

| Fix | Fails in | Exit |
|---|---|---|
| Declare policy.max_rush: the most an order lets the ladder add, in dollars. Or pay the role from the price. | `services/translation.ts` | 1 |

**Owned by** [When no one claims](https://services.dev/docs/people/pool/fill.md): the page that explains what this gate holds.

## What check says

```txt title="npx services.dev check"
  ✗ A role is paid from the buyer, its Pool's fill ladder raises the fee, and nothing caps what the buyer pays for it. Declare policy.max_rush: the most an order lets the ladder add, in dollars. Or pay the role from the price. translator is paid from the buyer, and the translators ladder raises the fee.
    https://services.dev/docs/reference/check/rush_uncapped
✗ 1 to fix
```

## The failing file

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

export default Service({
  name: 'Translation',
  input: { document: 'file', to: 'language: a BCP 47 tag, such as fr-CA' },
  output: { document: 'file' },
  rules,
  roles: { translator: { pool: translators, pay: { usd: 30, from: 'buyer' } } },
  deliver: {
    translate: 'ai',
    harden: { review: 'adversarial', lenses: ['meaning', 'terms'] },
    sign: { by: 'translator', stamp: true },
  },
  price: 89,
})
```

## The fix

```diff title="git add -A && git diff --staged"
diff --git a/services/translation.ts b/services/translation.ts
index 57aacec..0e134d3 100644
--- a/services/translation.ts
+++ b/services/translation.ts
@@ -13,5 +13,6 @@ export default Service({
     harden: { review: 'adversarial', lenses: ['meaning', 'terms'] },
     sign: { by: 'translator', stamp: true },
   },
+  policy: { max_rush: { word: 'money', default: 10, max: 30, note: 'the most the fill ladder adds to the fee' } },
   price: 89,
 })
```

```txt title="npx services.dev check"
✓ ready to sell · 1 Service · it keeps at least 80% of every job
```

## The rest of the brand

```ts title="rules.ts"
import { Rules } from 'services.dev'

export default Rules({
  version: '2026-10',
  services: {
    translation: {
      sign: { reserved: 'sworn translator', where: '*', position: 'A sworn translator signs a translation filed with a registry.' },
    },
  },
})
```

```ts title="pools/translators.ts"
import { Pool } from 'services.dev'

export const translators = Pool({
  name: 'translators',
  roles: { translator: { credential: 'sworn translator' } },
  join: { name: 'text', languages: 'language[]' },
  verify: 'https://verify.example.test/translators',
  fill: ['raise 10% 2h', 'widen 4h'],
})
```

## Explained in

- [When no one claims](https://services.dev/docs/people/pool/fill.md)
- [Pool(): your marketplace](https://services.dev/docs/people/pool.md)

## What an agent reads

```json title="npx services.dev check --json · the rush_uncapped failure"
{
  "code": "rush_uncapped",
  "reason": "A role is paid from the buyer, its Pool's fill ladder raises the fee, and nothing caps what the buyer pays for it.",
  "next": "Declare policy.max_rush: the most an order lets the ladder add, in dollars. Or pay the role from the price. translator is paid from the buyer, and the translators ladder raises the fee.",
  "doc_url": "https://services.dev/docs/reference/check/rush_uncapped"
}
```

<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": 4490,
    "sandbox": 9,
    "budget": 8000
  },
  "files": [
    {
      "path": "rules.ts",
      "lines": 6,
      "kind": "rules",
      "says": "rules 2026-10 · 1 Service · 1 row"
    },
    {
      "path": "pools/translators.ts",
      "lines": 5,
      "kind": "pool",
      "pools": [
        "translators"
      ],
      "says": "translators · 1 role: translator · joins in 1 step · feed · hold 24h"
    }
  ],
  "inert": [
    "roles.pay rail and from on translation.translator: named on the ledger; money moves at payout"
  ],
  "services": [
    {
      "path": "services/translation.ts",
      "lines": 11,
      "steps": "translate · ai → harden · ai · adversarial · 2 lenses → sign · translator · * · stamped",
      "ok": false,
      "price": "$89 per job, within 48 hours, charged on delivery.",
      "who": "A translator signs every document before delivery. (rules 2026-10)",
      "roles": [
        "translator · sworn translator · from translators · $30 an act"
      ],
      "rules": "2026-10",
      "boundary": {
        "full": [
          "reserved sign to sworn translator"
        ]
      },
      "agent": {
        "tool": "order_translation",
        "words": 26,
        "job": "job_7Hq2",
        "status": "waiting",
        "on": "claim",
        "charged": null,
        "person": true,
        "why": ""
      },
      "ledger": "+$89.00 · AI $1.26 (example) · translator $30.00 · you $57.74",
      "approved_ledger": null,
      "outcome": null,
      "margin": {
        "floor": {
          "cents": 7120,
          "pct": 80
        },
        "own": 7120,
        "stop": 1780,
        "nested": [],
        "cases": {
          "first": 7120,
          "cap": 7120,
          "decline": 7120,
          "advice": 0,
          "caps": {
            "sign": 0.5
          },
          "owned": false,
          "terms": {
            "price": 8900,
            "ai": 1780,
            "nested": 0,
            "fees": [],
            "coverage": 0
          },
          "who": "translator",
          "does": "signs",
          "again": "a second translator"
        }
      },
      "apps": [
        "customer portal",
        "delivery portal",
        "owner console"
      ],
      "failures": [
        {
          "code": "rush_uncapped",
          "reason": "A role is paid from the buyer, its Pool's fill ladder raises the fee, and nothing caps what the buyer pays for it.",
          "next": "Declare policy.max_rush: the most an order lets the ladder add, in dollars. Or pay the role from the price. translator is paid from the buyer, and the translators ladder raises the fee.",
          "doc_url": "https://services.dev/docs/reference/check/rush_uncapped"
        }
      ]
    }
  ]
}
```

</details>

---

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