ncsx_ruler
Reverse pricing — the question every other tool cannot answer: given a coupon and a tenor, where would a new AI-infrastructure bond land? Returns the matched Treasury yield (linear interpolation between the two adjacent curve tenors, never extrapolated), the resulting issuance spread in bp using the same formula as every constituent ((coupon - UST) x 100), how it compares with the index level and with the same-structure tier, its rank among the 13 constituents, a like-for-like comparable set (same structure, tenor within ±1y, with median / weighted / rank), and — if you pass a size — the index level after adding it (face-value weighted: the same arithmetic as the pull_bp attribution in ncsx_events). Pass issuer to also get that issuer's own bonds already in the index (coupon, tenor, spread at pricing, gap to the hypothetical new bond) — the first thing an underwriter checks is what the same name paid last time. Nothing is stored: it is recomputed on every call from the current curve, universe and index, so it can never go stale. Use it for "is 9.5% for 5 years tight or wide for this market", "what does an 8% coupon imply", "what happens to NCSX-IS if another $2bn prices at this spread", "how would a new CoreWeave bond compare with its existing stack". Facts and arithmetic only: it does not recommend a coupon and issues no rating or investment advice.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"coupon_pct": "<coupon_pct>",
"tenor_years": "<tenor_years>"
},
"name": "ncsx_ruler"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| issuer | No | Optional: issuer name or ticker ("CoreWeave", "CRWV"), case-insensitive substring — same matching rule as ncsx_bond. Returns that issuer's existing index bonds as a pricing history for the new bond to be compared against. Omit to skip. | |
| size_mm | No | Optional: new-issue size in $ millions. Omit or 0 to skip the index-impact calculation. | |
| seniority | No | Optional: structure of the new bond, default "secured". Drives which sub-index the comparison uses (secured 391.2bp / unsecured 540.1bp at the current version). | |
| coupon_pct | Yes | Coupon in percent — 7.5 means 7.5%. Range 0-25. | |
| tenor_years | Yes | Years to maturity — 5, 5.5, 0.5 (6 months). Must fall inside the published curve range (1M-30Y); out-of-range tenors are refused, never extrapolated. | |
| peer_window_years | No | Optional: half-width of the tenor window used to build the comparable set (same structure, tenor within ± this many years). Default 1, max 10. Note that all current constituents matured in 5.0-6.1 years, so a tenor far from 5y will fall back to the nearest existing tenor, flagged in peer_set.fallback. |