---
title: "Track records"
url: https://services.dev/docs/people/pool/track
captured: [member-acts.txt, pool-join.txt]
---
# Track records

URL: https://services.dev/docs/people/pool/track

> A member's track record is built from outcomes only, it is the member's to carry, and a credentialed peer rules any contest of their work. A decline, a pass, a recusal, a hold given back or a window let close is never scored.

What does a member's history say about them, and what can never count against them?

## Outcomes only

A track record counts outcomes, and only of Tasks the member finished. Nothing a member says about themselves enters it, and nothing they decline to do does either.

| Register | Counts | Never counts |
|---|---|---|
| Expert | each Task attested; each send-back that attested work received, uncontested or upheld; each Task done by its due date | a decline, which is paid and the client's to direct; a send-back the member contested, until it is ruled upheld, and one overturned, ever; a pass; stepping aside on a conflict; a hold given back, or a window let close |
| Work | each completed Task; each arrival inside the window; each no-show the member caused, once | a release before `notice`; a client's cancel; `party_absent`; a window the client moved; a check-in refused for a low-accuracy fix |

A window a member lets close moves the Task to the next member and changes nothing on their counts. A new member's first `probation.tasks` are all sampled, and until they are done the member ranks by fit and speed alone.

## Contests

A member contests a send-back their attested work received. When a rules row reserves the act, a credentialed peer rules it, never the brand that sent it back:

- **Its own Task.** The contest posts a Task, offered by `cascade` to members who hold the same credential in the same region.
- **Blind.** The peer reads the work, the send-back and the reason, and neither member's name.
- **Paid.** The peer is paid the original Task's fee, funded by the brand, whichever way they rule.
- **Staff rule the rest.** An act no row reserves is ruled by the owner or a staff role, from the console.

```txt
→ POST /reviews/tsk_7Hv5/attest {"output":{"ruling":"upheld","memo":"The inventor list matches the declaration; the send-back was right on claim 2."}}   # as mbr_7Hq9, the peer the contest Task reached
```

```txt title="captured/member-acts.txt · magic values: applicant.email = signs@example.test, client.email = signs@example.test, member = mbr_eligible"
← 200 tsk_7Hv5 · done · contest · ruled · upheld · $150.00
  14:40 · task.ruled · tsk_7Hq2 · upheld · by peer · mbr_7Hq9 · patent agent · no finding of bad faith
  14:40 · pay.accrued · mbr_7Hq9 · attest · $150.00
```

A contested send-back stops counting until it is ruled, and one overturned never counts. A client's contest of a `party_silent` visit runs the same way. A ruling is the only way to record a finding of bad faith, the one exception to [pay that is never clawed back](https://services.dev/docs/people/pool/pay.md#three-moments).

## Tiers are computed from it

A Pool's `tiers` turn the counts into tiers, low to high, and a Task is offered to the top tier that's eligible first. The [fill ladder](https://services.dev/docs/people/pool/fill.md)'s widen rung opens the next tier down. A member reads their own tier, and how far the next one is, in the delivery portal:

*Screen: the delivery portal at `/attorneys/track`, nothing waiting (captured/screens/legal-delivery-track.html).*

`rank: ['track']` orders a `cascade` by the same counts.

## Yours to carry

A track record belongs to the member. `GET /me/track` returns their counts per Pool and brand, with the hash of each Task's artifact, signed by the door and naming no party:

```txt
→ GET /me/track   # as mbr_7Hq2, on gigs.lawyer
```

```txt title="200 · mbr_7Hq2 · track record · signed by gigs.lawyer · sig ed25519:4f1c…a07e · names no party · magic values: client.email = signs@example.test"
  attorneys · api.lawyer               118 attested · 3 sent back · 97% on time
  attorneys · patent.click              24 attested · 0 sent back · 100% on time
  work register                         none
  tasks     142 hashes, each sha256 of the act's artifact · GET /me/track?hashes=true
  shared    with every Pool on gigs.lawyer · with other doors only when you choose, at their /join
```

Every Pool on the same door ranks a member from that one record, and a tier is always the Pool's own. A Pool on another door can seed its tiers from it with `tiers[].from`, such as `from: ['gigs.expert']`, but only from a record the member chooses to share when they join:

```txt
→ POST /counsel/join {"email":"grace@example.com","answers":{"records":"share"}}   # on another operator's door, tiers: [{ name: 'senior', from: ['gigs.lawyer'], after: 100 }]
```

```txt title="magic values: client.email = signs@example.test"
← 200 mbr_8Kp1 · counsel · grace@example.com · applying, step 3 of 3 · on
  records   gigs.lawyer/attorneys · 142 attested · 2.1% sent back · 97% on time · share it? yes
  tier      senior, seeded from the shared record · the tier is this Pool's own, and moves only on its own Tasks from here
```

## One shape for AI and people

The same outcomes are what an AI step's record holds, so the owner console sets the two side by side and shows when a person at a step no longer changes the work. `golden` scores a share of Tasks with a known answer, for quality only.

## Keys

| Key | Written | Left out | Does |
|---|---|---|---|
| `tiers` | `Tier[]` | none | Tiers above eligibility, low to high, each computed from the track record, and seeded from shared records with `from`: a Task offers to the top eligible tier first. |
| `rank` | `('fit' \| 'track' \| 'speed' \| 'price')[]` | [`'fit'`, `'track'`, `'speed'`] | How `cascade` ranks members. A member on probation ranks by fit and speed alone. |
| `probation` | `{ tasks: number; sample: Pct }` | &#123; tasks: 5, sample: `'100%'` &#125; | A new member's first Tasks, all sampled. |
| `golden` | `Pct \| false` | false | A share of Tasks with a known answer, scored only for quality. |
| `contest` | `{ by: 'peer' \| 'staff'; within?: Within }` | `'peer'` where a row reserves the act, else `'staff'`; within `'14d'` | Who rules a contest, and how long after a send-back or a `party_silent` completion it may be raised. |

| Operation | Does |
|---|---|
| [`member.track`](https://services.dev/docs/reference/operations.md#membertrack) | `GET /me/track`: the member's own record, signed by the door. |

Worked in: [the closers' Pool](https://services.dev/docs/examples/sales/pool.md#join-and-climb), counted and not counted.

---

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