Yield math for tokenized real-world assets. Day-count conventions, accrued interest, duration, convexity. It runs. In this page, as a CLI, and as an MCP server your agent can call.
Every tokenized treasury product quotes a yield. Almost none publish the day-count convention behind it. Same principal, same rate, same dates, six conventions, six different numbers. The spread is not rounding, it is money, and it is the first thing a settlement desk checks and the last thing a deck mentions.
Runs entirely in this page. Nothing is sent anywhere, there is no analytics and no network call. Change a field and the numbers move.
| convention | year fraction | days |
|---|
| convention | interest | vs ACT/360 |
|---|
investment yield, the one you earn
| yield shock | price | change |
|---|
The same math as an MCP server over stdio, eight tools. It is a pure function over numbers: no RPC client, no signer, no key material anywhere in the package. It can value a position and cannot move one. Verify by reading the imports, there are none outside the source directory.
// claude_desktop_config.json, or any MCP client { "mcpServers": { "accrual": { "command": "node", "args": ["mcp/server.mjs"] } } }
// tools exposed day_count every convention for one date pair, and the spread accrue_simple simple interest, plus the same result under all six accrue_compound compound interest and the effective annual rate bill_yields discount yield vs the yield you actually earn bond_metrics price, duration, convexity, cashflow schedule present_value one future cashflow, discounted compare_products two offers on the same footing year_fraction one convention, when you know which you need
// or from a shell
$ accrual days --from 2025-02-28 --to 2025-03-31
$ accrual bill --face 100 --price 97.80 --settle 2025-01-02 --maturity 2025-07-03
$ACCR is a fixed-supply token on pons v2. It is not a claim on anything, it pays no coupon and it does not accrue. The tools above are the product; the token is just how this was launched.
<CA>