---
title: "TSV Tier-Cap Ladder"
method: POST
path: "/v1/tools/check_tsv_tier_cap_ladder"
tags: ["tsv", "tokenized-stock", "sec", "reg-nms", "tier-caps", "stepped-compliance", "pause-window", "compliance-evidence", "luld-tier", "mcp:check_tsv_tier_cap_ladder"]
---

# TSV Tier-Cap Ladder

`POST /v1/tools/check_tsv_tier_cap_ladder`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/check_tsv_tier_cap_ladder`
- Auth: none declared

Replays a tokenized-stock venue's daily volume and symbol counts (aggregated across affiliated TSVs) against the SEC TSV Exemption tier caps and the condition F stepped-compliance ladder, and emits pause windows.

**Tool URL:** https://ainumbers.co/chaingraph/art-707-tsv-tier-cap-ladder.html
**AP2/Policy Mandate export:** yes

## Request body

- object
  - `tsv_id` string, required: Non-empty identifier of the venue being replayed; its volume is always included in the aggregate.
  - `affiliated_tsv_ids` string[]: Affiliated TSV identifiers whose volume and symbols aggregate with the venue's. Never repeats tsv_id.
  - `stocks` object[], required: Declared universe [{ symbol, tier, prior_month_adv_shares }]; tier is caller-declared, no LULD lookup.
    - `symbol` string
    - `tier` 'tier_1' | 'tier_2'
    - `prior_month_adv_shares` integer, nullable: Positive integer prior-month ADV in shares; null reports the stock INDETERMINATE.
  - `daily_volume` object[]: One row per venue per day per symbol; rows for the declared group are summed. Duplicates refused.
    - `date` string
    - `tsv_id` string
    - `symbol` string
    - `shares` integer: Non-negative integer share count for that venue, day and symbol.
  - `symbols_traded` object[]: Optional distinct-symbol record; derived from daily_volume when omitted.
    - `date` string
    - `tsv_id` string
    - `symbol` string
  - `prior_breaches` object[]: Volume breaches recorded before the window; consumes the stock's one-time first-breach pass.
    - `symbol` string
    - `date` string
  - `as_of_date` string, required: YYYY-MM-DD date the pause status is evaluated as of.

## Response `200`

Successful tool execution result

- object
  - `affiliated_tsv_ids` string[]
  - `as_of_date` string
  - `assumptions` string[], required
  - `detail` string
  - `domain_errors` object[]
    - `code` 'STOCK_TIER_INVALID' | 'VOLUME_ENTRY_DUPLICATED' | 'VOLUME_TSV_UNKNOWN', required
    - `text` string, required
  - `error` 'stock_tier_invalid' | 'volume_entry_duplicated' | 'volume_tsv_unknown'
  - `note` string
  - `obligations` string[], required
  - `per_stock` unknown, required
  - `status_as_of` object, nullable, required
  - `symbol_count` unknown, required
  - `tsv_id` string

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
