Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
joellewis avatar

Fixed Income Sovereign

  • 388 installs
  • 161 repo stars
  • Updated July 18, 2026
  • joellewis/finance_skills

fixed-income-sovereign is a quantitative agent skill that prices US Treasuries and computes duration, convexity, DV01, and yield-curve metrics for developers building fixed-income analytics or rates research tooling.

About

fixed-income-sovereign is a joellewis/finance_skills wealth-management skill scoped to US Treasury securities and interest-rate analytics. It documents bond pricing, YTM, spot and forward rates, Macaulay and modified duration, DV01, convexity, TIPS real yields, and key-rate duration with formula tables and worked examples such as pricing a 5-year 4% semi-annual bond at 5% YTM. A bundled fixed_income_sovereign.py script runs demos and --verify checks against the worked examples using uv or pip with numpy/scipy. Sovereign credit risk for emerging markets is explicitly out of scope. Reach for fixed-income-sovereign when coding Treasury analytics, explaining inverted yield curves, or estimating price sensitivity to rate shocks.

  • Yield curve and duration context
  • Sovereign credit and political risk
  • Inflation-linked versus nominal bonds
  • FX-hedged return framing
  • Benchmark index alignment

Fixed Income Sovereign by the numbers

  • 388 all-time installs (skills.sh)
  • +16 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #280 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/joellewis/finance_skills --skill fixed-income-sovereign

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs388
repo stars161
Last updatedJuly 18, 2026
Repositoryjoellewis/finance_skills

How do you price Treasuries and compute bond duration?

Price and explain sovereign government bonds, curve dynamics, and country risk when coding analytics, drafting research, or supporting multi-asset portfolio decisions.

Who is it for?

Quant developers and fixed-income engineers implementing Treasury pricing, duration hedging, or rates analytics in Python-backed research or portfolio tools.

Skip if: Emerging-market sovereign credit analysis, corporate spread modeling, or teams needing live Bloomberg yield-curve feeds instead of formula-driven computation.

When should I use this skill?

User asks about Treasury bond pricing, yield curve construction, duration, convexity, DV01, TIPS, or breakeven inflation calculations

What you get

Bond prices, duration/convexity metrics, yield-curve bootstraps, and verified Python calculation outputs

  • bond price calculations
  • duration/convexity metrics
  • verified Python demo output

By the numbers

  • Includes 8 core formula rows in the key-formulas table
  • Bundled fixed_income_sovereign.py reference script with --verify mode
  • Documents 2 fully worked bond-pricing and duration examples

Files

SKILL.mdMarkdownGitHub ↗

Fixed Income — Sovereign

Scope: US Treasuries and rates analytics. Sovereign credit risk — emerging market debt, default analysis, country risk spreads — is out of scope for this skill.

Core Concepts

Bond Pricing

The price of a bond is the present value of its future cash flows:

P = sum(t=1 to n) [C / (1+y)^t] + F / (1+y)^n

where C = coupon payment per period, y = yield to maturity per period, F = face value, n = total number of periods. For semi-annual bonds, divide the annual coupon by 2 and the annual yield by 2, and double the number of years to get n.

Yield to Maturity (YTM)

The discount rate y that solves the bond pricing equation — the single rate that equates the bond's market price to the present value of all future cash flows. Assumes reinvestment of coupons at the YTM rate. It is the standard yield measure for bonds.

Current Yield

Current Yield = Annual Coupon / Price. A simple income measure that ignores capital gains/losses and the time value of money.

Yield Curve: Spot Rates, Forward Rates, Par Curve

The spot curve gives zero-coupon yields for each maturity. The par curve gives coupon rates at which bonds would price at par. Forward rates are implied future rates derived from spot rates. The three curves contain equivalent information and can be derived from one another.

Bootstrapping the Spot Curve

Extract spot (zero-coupon) rates from par yields by starting at the shortest maturity and working outward. Each step uses previously derived spot rates to solve for the next spot rate.

Forward Rate

The implied rate between two future dates derived from spot rates:

f(t1,t2) = [(1+s_t2)^t2 / (1+s_t1)^t1]^(1/(t2-t1)) - 1

where s_t1 and s_t2 are spot rates for maturities t1 and t2.

Duration (Macaulay)

The weighted average time to receive cash flows, where weights are the present value of each cash flow as a proportion of the bond's price:

D_mac = (1/P) × sum(t × CF_t / (1+y)^t)

Measured in years. Longer maturity, lower coupon, and lower yield all increase duration.

Modified Duration

D_mod = D_mac / (1 + y/m)

where m = number of coupon periods per year. Gives the approximate percentage price change for a 1 percentage point change in yield: dP/P ≈ -D_mod × dy.

Dollar Duration (DV01)

The dollar change in price for a 1 basis point change in yield:

DV01 ≈ -D_mod × P × 0.0001

Used for hedging — match DV01 exposures to immunize a portfolio against parallel rate shifts.

Convexity

Measures the curvature of the price-yield relationship (second derivative):

C = (1/P) × sum(t(t+1) × CF_t / (1+y)^(t+2))

For option-free bonds, convexity is always positive — duration alone overstates losses and understates gains.

Price Change Approximation

ΔP/P ≈ -D_mod × Δy + 0.5 × Convexity × (Δy)²

The convexity term is a correction that becomes important for large yield changes.

TIPS (Treasury Inflation-Protected Securities)

Principal adjusts with CPI. The coupon rate is fixed but applied to the inflation-adjusted principal. Real yield = TIPS yield. Breakeven inflation = nominal Treasury yield - TIPS real yield. TIPS have a deflation floor that protects par value at maturity.

Key Rate Duration

Sensitivity to specific points on the yield curve (e.g., 2yr, 5yr, 10yr, 30yr). Allows analysis of non-parallel yield curve shifts such as steepening, flattening, or butterfly moves. Sum of key rate durations equals effective duration.

Key Formulas

FormulaExpressionUse Case
Bond PriceP = sum C/(1+y)^t + F/(1+y)^nPrice from yield
Current YieldAnnual Coupon / PriceSimple income measure
Forward Ratef(t1,t2) = [(1+s_t2)^t2 / (1+s_t1)^t1]^(1/(t2-t1)) - 1Implied future rate
Macaulay Duration(1/P) × sum(t × CF_t / (1+y)^t)Weighted avg time to cash flows
Modified DurationD_mac / (1 + y/m)% price sensitivity to yield
DV01D_mod × P × 0.0001Dollar price change per 1bp
Convexity(1/P) × sum(t(t+1) × CF_t / (1+y)^(t+2))Curvature of price-yield curve
Price ChangeΔP/P ≈ -D_mod×Δy + 0.5×Convexity×(Δy)²Estimate price impact of rate move

Worked Examples

Example 1: Price a 5-Year 4% Semi-Annual Coupon Bond at 5% YTM

Given: Face = $1,000, coupon = 4% (semi-annual), YTM = 5%, maturity = 5 years Calculate: Bond price Solution: Semi-annual coupon = $1,000 × 4% / 2 = $20 Semi-annual yield = 5% / 2 = 2.5% Number of periods = 5 × 2 = 10 P = $20 × [(1 - (1.025)^(-10)) / 0.025] + $1,000 / (1.025)^10 P = $20 × 8.7521 + $1,000 × 0.7812 P = $175.04 + $781.20 = $956.24

The bond trades at a discount ($956.24 < $1,000) because the coupon rate (4%) is below the market yield (5%).

Example 2: Modified Duration and Price Change Estimate

Given: A bond with Macaulay duration = 4.5 years, YTM = 5% (semi-annual), price = $956.24, convexity = 22.5 Calculate: Estimated price change for a +50bp rate increase Solution: D_mod = 4.5 / (1 + 0.05/2) = 4.5 / 1.025 = 4.39 years ΔP/P ≈ -4.39 × 0.005 + 0.5 × 22.5 × (0.005)² ΔP/P ≈ -0.02195 + 0.000281 = -0.02167 = -2.167% ΔP ≈ -2.167% × $956.24 = -$20.72 New price ≈ $956.24 - $20.72 = $935.52

Duration alone would estimate -2.195%; the convexity correction reduces the estimated loss by about 3bp.

Common Pitfalls

  • Confusing Macaulay and modified duration — Macaulay is in years, modified gives price sensitivity
  • Ignoring convexity for large yield changes — duration alone overstates losses and understates gains
  • Day count conventions (30/360 vs actual/actual) — Treasuries use actual/actual, corporates use 30/360
  • Clean price vs dirty price (accrued interest) — quoted prices exclude accrued interest, but settlement requires paying it

Cross-References

  • time-value-of-money (core plugin): discounting and present value fundamentals
  • fixed-income-corporate: credit spreads over the sovereign curve
  • fixed-income-municipal: muni-to-Treasury yield ratios
  • asset-allocation: bonds as an asset class in portfolio construction

Running the Script

uv run scripts/fixed_income_sovereign.py            # run the demo (uses PEP 723 inline deps)
uv run scripts/fixed_income_sovereign.py --verify   # check demo outputs against the worked examples (exit 1 on mismatch)
python3 scripts/fixed_income_sovereign.py            # alternative (requires: pip install numpy scipy)

The demo prints the calculations covered above; its values match the worked examples in this skill. Run --help for a list of the classes and functions. For programmatic use, import the module rather than running it — the demo only executes under python fixed_income_sovereign.py.

Related skills

How it compares

Choose fixed-income-sovereign for US Treasury math and rates risk; use fixed-income-corporate from the same repo when the task requires credit spreads over the sovereign curve.

FAQ

What does fixed-income-sovereign cover?

fixed-income-sovereign analyzes US Treasury securities: bond pricing, yield to maturity, spot and forward rates, duration, convexity, DV01, TIPS real yields, and key-rate duration. Emerging-market sovereign credit risk is explicitly out of scope.

How do you run the fixed-income-sovereign Python script?

fixed-income-sovereign bundles scripts/fixed_income_sovereign.py runnable via uv run scripts/fixed_income_sovereign.py or python3 after installing numpy/scipy. Pass --verify to assert demo outputs match the skill's worked examples.

Finance & Tradingfinancepricing

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.