Borrowing it
Nothing to install: this file belongs to Alexander-M-Dickerson/ai-asset-pricing. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Alexander-M-Dickerson/ai-asset-pricing/main/.claude/skills/bond-data/SKILL.mdgit clone --depth 1 https://github.com/Alexander-M-Dickerson/ai-asset-pricingWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/alexander-m-dickerson/ai-asset-pricing/bond-data)<a href="https://agentmods.dev/skills/alexander-m-dickerson/ai-asset-pricing/bond-data"><img src="https://agentmods.dev/badge/skills/alexander-m-dickerson/ai-asset-pricing/bond-data/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/alexander-m-dickerson/ai-asset-pricing/bond-data"><img src="https://agentmods.dev/badge/skills/alexander-m-dickerson/ai-asset-pricing/bond-data.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00049 | $0.01506 |
| Opus 5 | $0.00024 | $0.00753 |
| Sonnet 5 | $0.00010 | $0.00301 |
| Haiku 4.5 | $0.00005 | $0.00151 |
Grade A, and why
bond-data scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 116 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Bond Data Reference
The Dickerson cleaned TRACE corporate bond panel (141 columns, 2.83M rows, 1973-01 to 2025-03). Fetch via bonds-wrds-expert, stored in data/ as Parquet.
PyBondLab Column Mapping
| Parquet Column | PBL Name | Description |
|---|---|---|
cusip |
ID |
9-digit bond CUSIP |
ret_vw |
ret |
Month-end total return (primary) |
mcap_e |
VW |
Bond market cap at month-end |
spc_rat |
RATING_NUM |
S&P composite rating (1-22) |
permno |
PERMNO |
CRSP equity link (for WithinFirmSort) |
Three Mapping Approaches
# Option 1: fit() params (StrategyFormation)
result = sf.fit(IDvar='cusip', RETvar='ret_vw', VWvar='mcap_e', RATINGvar='spc_rat')
# Option 2: rename upfront
data = data.rename(columns={'cusip': 'ID', 'ret_vw': 'ret', 'mcap_e': 'VW', 'spc_rat': 'RATING_NUM'})
# Option 3: Batch columns= dict (pbl_name -> user_name)
batch = pbl.BatchStrategyFormation(
data=data,
columns={'ID': 'cusip', 'ret': 'ret_vw', 'VW': 'mcap_e', 'RATING_NUM': 'spc_rat'},
...
)
Real Data Prep
data['spc_rat'] = data['spc_rat'].astype('float64') # nullable IntegerArray breaks numba
Alternate Return Columns
| Column | When to Use |
|---|---|
ret_vw |
Default. Use with MMN-adjusted signals |
ret_vw_bgn |
Use ONLY with noisy/unadjusted signals (_mmn suffix) |
ret_vwx |
Excess return (ret_vw minus duration-matched Treasury) |
VW Column: mcap_e vs mcap_s
| Column | Definition | When to Use |
|---|---|---|
mcap_e |
Market cap at end of month t | Default. Contemporary with signal |
mcap_s |
Market cap at end of month t-1 | Lagged market cap |
Rating Encoding
spc_rat: S&P composite rating (S&P first, Moody's fallback).
| Numeric | Rating | Grade |
|---|---|---|
| 1 | AAA | IG |
| 2-4 | AA+/AA/AA- | IG |
| 5-7 | A+/A/A- | IG |
| 8-10 | BBB+/BBB/BBB- | IG |
| 11-13 | BB+/BB/BB- | HY |
| 14-16 | B+/B/B- | HY |
| 17-19 | CCC+/CCC/CCC- | HY |
| 20-22 | CC/C/D | HY/Default |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 116 lines · 49 tokens per session scan A 161323ecee68
bond-data is a skill published in the GitHub repository Alexander-M-Dickerson/ai-asset-pricing (59 stars, last pushed 4mo ago), licensed MIT. It adds 49 tokens to every session and 1,506 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
sector-rotation
An analysis framework for comparing industries in the Chinese A-share stock market, using business conditions, price momentum, valuation, and money flows. It produces rankings and higher- or lower-allocation suggestions.
strategy-pivot-designer
Detect backtest iteration stagnation and generate structurally different strategy pivot proposals when parameter tuning reaches a local optimum.
twitter-reader
Read Twitter/X for financial research using opencli (read-only). Use this skill whenever the user wants to read their Twitter feed, search for financial tweets, view bookmarks, look up user profiles, or gather market sentiment from Twitter/X. Triggers include: "check my feed", "search Twitter for", "show my…
chenhao-limit-up
A framework for judging Chinese A-share stocks that have reached the daily price-rise limit, using market mood, sector leadership, and trading momentum.
trading-risk-gate
Unified pre-trade safety gate: Ruin check (Law #1), ergodicity audit, and win-rate dominance validation. Absorbs: ergodicity-check, law-of-ruin, win-rate-dominance.
furusato
A Japanese hometown-tax donation manager for furusato nozei, a system where donations to municipalities can qualify for an income-tax or local-tax deduction. It reads donation receipts, stores donation records, and calculates deduction limits.