Each competency has an explicit prerequisite list and an evidence policy. The build rejects unknown references, cycles, invalid lesson ordering, and insufficient assessment coverage.
- Interpret a European bond option
bond-options.contract.interpretInterpret a standalone European call or put on a named bond, including exercise time, dirty-versus-clean strike basis, coupon timing, and holder rights.
Requires: options.european-contract.interpret, bonds.clean-dirty-price.calculate - Calculate an issuer-default knockout option value
bond-options.default-knockout-value.calculateCalculate an issuer-default knockout bond option value on an input joint rate-credit lattice by applying survival to option continuation and zero option payoff on pre-expiry default.
Requires: bond-options.default-knockout.interpret, bond-options.european-value.calculate, finance.backward-induction.calculate - Interpret an issuer-default knockout
bond-options.default-knockout.interpretInterpret an issuer-default knockout bond option as a contract extinguished with zero option rebate if the bond issuer defaults before exercise, separately from any recovery on the bond.
Requires: bond-options.contract.interpret, credit.survival-probability.interpret, credit.recovery-rate.interpret - Calculate a European bond option value
bond-options.european-value.calculateCalculate a European bond option payoff at expiry and value it by backward induction on an input default-free bond-value lattice.
Requires: bond-options.contract.interpret, finance.backward-induction.calculate, options.payoff.calculate - Calculate clean and dirty bond prices
bonds.clean-dirty-price.calculateCalculate actual/actual coupon-period accrued interest and convert consistently between clean quoted price and dirty invoice price.
Requires: bonds.fixed-cashflows.identify, finance.cash-flow-timeline.interpret - Calculate a periodic coupon amount
bonds.coupon-amount.calculateCalculate each level coupon as face value times annual coupon rate divided by payments per year.
Requires: bonds.fixed-rate-contract.interpret - Identify fixed-coupon bond cash flows
bonds.fixed-cashflows.identifyConstruct the coupon and principal cash-flow schedule of a simplified fixed-rate bond.
Requires: bonds.coupon-amount.calculate - Interpret a simplified fixed-rate bond contract
bonds.fixed-rate-contract.interpretIdentify face value, annual coupon rate, coupon frequency, maturity, and principal redemption in a simplified fixed-rate bond description.
Requires: finance.cash-flow-perspective.apply, rates.nominal-rate-quote.interpret - Calculate a bond forward delivery price
bonds.forward-delivery-price.calculateCalculate a no-arbitrage bond forward delivery price from the current dirty bond price, the present value of pre-delivery coupons, and the delivery-date discount factor.
Requires: derivatives.forward-delivery-price.calculate, bonds.clean-dirty-price.calculate, bonds.price-from-discount-factors.calculate - Price a bond from discount factors
bonds.price-from-discount-factors.calculatePrice a simplified fixed-rate bond by multiplying each promised cash flow by its stated discount factor and summing the results.
Requires: bonds.fixed-cashflows.identify, finance.present-value.calculate - Price a fixed-coupon bond from yield
bonds.price-from-yield.calculatePrice a simplified fixed-coupon bond from a nominal annual yield compounded at the coupon frequency.
Requires: bonds.yield-to-maturity.interpret - Interpret price-yield curvature
bonds.price-yield-curvature.interpretRecognize that equal yield changes generally produce unequal price changes in the simplified fixed-cash-flow model.
Requires: bonds.price-yield-direction.explain - Explain the price-yield direction
bonds.price-yield-direction.explainExplain why the price of positive fixed cash flows moves inversely to yield while discounting denominators remain positive.
Requires: bonds.price-from-yield.calculate - Interpret yield to maturity in the simplified model
bonds.yield-to-maturity.interpretInterpret yield to maturity as the single nominal annual rate, compounded at coupon frequency, that reproduces price from promised cash flows in the simplified model.
Requires: bonds.price-from-discount-factors.calculate, rates.periodic-rate.calculate - Interpret CDS cash-flow legs
cds.cash-flow-legs.interpretInterpret a CDS as running-premium payments exchanged for contingent protection, partition default into disjoint time events, and read the protection buyer's signed value as protection minus premium.
Requires: probability.events.interpret, finance.cash-flow-perspective.apply, finance.risk-neutral-measure.interpret, rates.basis-points.convert, credit.recovery-rate.interpret - Calculate a fitted credit curve's survival and repricing
cds.credit-curve-fit.calculateCalculate the survival probability implied by fitted piecewise-constant hazard segments and verify that a tenor's standard contract reprices to its mark under the fitted curve.
Requires: cds.credit-curve.interpret, cds.quote-upfront-conversion.calculate, cds.par-spread.calculate, credit.survival-from-constant-hazard.calculate - Interpret a credit curve
cds.credit-curve.interpretInterpret a credit curve as the term structure of standard-contract marks at quoted tenors together with the survival curve fitted to them, and distinguish a tenor-by-tenor change of quotation from a fit of one hazard term structure.
Requires: cds.market-observables.interpret, credit.survival-probability.interpret, credit.hazard-rate.interpret, rates.discount-curve.interpret - Calculate a liquid-tenor equivalent notional
cds.equivalent-notional.calculateCalculate the notional and side of the most liquid standard CDS that offsets a position's sensitivity to the liquid tenor's quote, and express it as an equivalent ratio to the position notional.
Requires: cds.quote-sensitivity.calculate, cds.cash-flow-legs.interpret - Classify CDS market observables
cds.market-observables.interpretClassify each quantity in a standard CDS valuation as market-observed, contractual, conventional, or model-solved, and explain why the traded upfront alone identifies the pricing-model hazard rate.
Requires: cds.market-standard-quote.interpret, cds.upfront-amount.calculate, finance.risk-neutral-measure.interpret, rates.discount-curve.interpret - Interpret a CDS market-standard quote
cds.market-standard-quote.interpretDistinguish the lesson's market-standard quote from the fixed running coupon and explain the quote's role in a simplified CDS conversion.
Requires: cds.par-spread.calculate - Calculate a CDS par spread
cds.par-spread.calculateCalculate the zero-upfront CDS running spread that equates the exact default-time premium- and protection-leg present-value magnitudes under one internally consistent model.
Requires: cds.premium-leg.calculate, cds.protection-leg.calculate - Calculate the CDS premium leg
cds.premium-leg.calculateCalculate the positive premium-leg present-value magnitude from scheduled survival-contingent premiums and exact accrued premium integrated over modeled default time under the stated constant-hazard model.
Requires: cds.cash-flow-legs.interpret, credit.survival-probability.interpret, credit.default-probability-from-survival.calculate, credit.hazard-rate.interpret, credit.survival-from-constant-hazard.calculate, probability.expectation-by-partition.calculate, finance.present-value.calculate, finance.risk-neutral-value.calculate - Calculate the CDS protection leg
cds.protection-leg.calculateCalculate the positive protection-leg present-value magnitude by integrating discounted loss-given-default over exact modeled default time under the stated constant risk-neutral hazard.
Requires: cds.cash-flow-legs.interpret, credit.default-probability-from-survival.calculate, credit.hazard-rate.interpret, credit.survival-from-constant-hazard.calculate, credit.loss-given-default.calculate, probability.expectation-by-partition.calculate, finance.present-value.calculate, finance.risk-neutral-value.calculate - Calculate a CDS position's quote sensitivity
cds.quote-sensitivity.calculateCalculate a CDS position's signed value change for a one-basis-point rise in the liquid tenor's market-standard quote by re-solving the flat hazard rate and revaluing the position for its own side.
Requires: cds.upfront-amount.calculate, cds.quote-upfront-conversion.calculate, cds.market-standard-quote.interpret - Calculate a CDS quote from upfront
cds.quote-upfront-conversion.calculateCalculate the market-standard quote implied by a signed upfront amount under the lesson's simplified flat-hazard conversion.
Requires: cds.upfront-amount.calculate, credit.hazard-rate.interpret, credit.survival-from-constant-hazard.calculate - Calculate a CDS upfront amount
cds.upfront-amount.calculateCalculate the signed upfront amount that makes protection-buyer inception value zero for an input quote-implied premium annuity and fixed running coupon.
Requires: cds.market-standard-quote.interpret, cds.premium-leg.calculate, cds.protection-leg.calculate - Calculate default probability from survival
credit.default-probability-from-survival.calculateCalculate time-zero cumulative or interval default probability from survival probabilities at stated times.
Requires: credit.survival-probability.interpret - Interpret a hazard rate
credit.hazard-rate.interpretInterpret a hazard rate as an instantaneous conditional default intensity, measured per unit of time, among names that have survived to that time.
Requires: probability.conditional-probability.calculate, credit.survival-probability.interpret - Calculate loss given default
credit.loss-given-default.calculateCalculate loss given default as one minus the recovery rate in the lesson's fractional recovery-of-par model.
Requires: credit.recovery-rate.interpret - Interpret recovery of par
credit.recovery-rate.interpretInterpret the recovery rate as the fraction of par paid at maturity after default in the lesson's one-period recovery-of-par model.
Requires: finance.cash-flow-perspective.apply - Calculate one-period risky present value
credit.risky-present-value.calculateCalculate the time-zero present value of a one-period recovery-of-par claim by probability-weighting its survival and default payoffs at maturity and applying the stated discount factor.
Requires: probability.expectation-by-partition.calculate, finance.present-value.calculate, finance.risk-neutral-value.calculate, credit.default-probability-from-survival.calculate, credit.loss-given-default.calculate - Calculate survival from constant hazard
credit.survival-from-constant-hazard.calculateCalculate survival probability as S(0,t) = exp(-lambda t) under a stated non-negative constant hazard rate and consistent time units.
Requires: credit.hazard-rate.interpret - Interpret a survival probability
credit.survival-probability.interpretInterpret survival probability as the modeled probability, conditional on survival at valuation time, of no default through a stated future time.
Requires: probability.events.interpret, finance.cash-flow-timeline.interpret, finance.risk-neutral-measure.interpret - Interpret a forward contract
derivatives.forward-contract.interpretInterpret the long and short obligations, delivery time, delivery price, and signed expiry payoff of a forward contract.
Requires: finance.cash-flow-perspective.apply, finance.law-of-one-price.explain - Calculate a fair forward delivery price
derivatives.forward-delivery-price.calculateCalculate the fair delivery price of a newly struck forward from spot value, present value of deterministic income before delivery, and the delivery-date discount factor.
Requires: derivatives.forward-contract.interpret, finance.present-value.calculate, rates.discount-factor.calculate - Calculate an existing forward's value
derivatives.forward-value.calculateCalculate the signed value to the long of an existing forward from the current forward price, its fixed delivery price, quantity, and the delivery-date discount factor.
Requires: derivatives.forward-delivery-price.calculate - Calculate value by backward induction
finance.backward-induction.calculateCalculate node values on an input multi-period recombining pricing lattice by risk-neutral expectation and one-period node discounting.
Requires: options.one-period-binomial-value.calculate, finance.risk-neutral-value.calculate - Apply a cash-flow sign perspective
finance.cash-flow-perspective.applyAssign positive and negative signs to cash flows from an explicitly stated perspective.
Requires: finance.cash-flow-timeline.interpret - Interpret a cash-flow timeline
finance.cash-flow-timeline.interpretRead the amount and timing of each cash flow from a stated valuation-time timeline.
Entry competency: no declared prerequisites. - Explain the law of one price
finance.law-of-one-price.explainExplain why two portfolios with identical dated state-contingent cash flows must have the same value under the lesson's no-arbitrage assumptions.
Requires: finance.cash-flow-perspective.apply, finance.present-value.interpret - Calculate present value
finance.present-value.calculateDiscount and add dated deterministic cash flows to calculate present value.
Requires: finance.present-value.interpret - Interpret present value
finance.present-value.interpretExplain present value as the valuation-time sum of discounted cash flows under stated assumptions.
Requires: finance.cash-flow-perspective.apply, rates.discount-factor.calculate - Calculate value from a replicating portfolio
finance.replicating-portfolio-value.calculateCalculate a claim's no-arbitrage value from the current values and signed quantities of a portfolio that exactly replicates its future cash flows.
Requires: finance.law-of-one-price.explain - Interpret a risk-neutral measure
finance.risk-neutral-measure.interpretInterpret risk-neutral probabilities as no-arbitrage pricing weights rather than real-world forecasts.
Requires: finance.present-value.interpret, probability.expectation-by-partition.calculate, finance.law-of-one-price.explain - Calculate a risk-neutral value
finance.risk-neutral-value.calculateCalculate time-zero value from finite-state risk-neutral probabilities, signed terminal payoffs, and a deterministic discount factor.
Requires: finance.present-value.calculate, finance.risk-neutral-measure.interpret - Calculate a one-period replicating hedge
options.binomial-hedge.calculateCalculate the underlying units and risk-free cash position that replicate a claim's two one-period state payoffs.
Requires: finance.replicating-portfolio-value.calculate, options.payoff.calculate - Interpret a European option contract
options.european-contract.interpretIdentify the underlying, call or put right, holder and writer, strike, expiry, and settlement perspective of a European option.
Requires: finance.cash-flow-perspective.apply - Calculate a one-period binomial option value
options.one-period-binomial-value.calculateCalculate a European option's one-period binomial value using model-implied risk-neutral weights and deterministic discounting.
Requires: finance.risk-neutral-value.calculate, options.payoff.calculate, finance.replicating-portfolio-value.calculate - Calculate a European option payoff
options.payoff.calculateCalculate the expiry payoff of a long or short European call or put from the underlying expiry value, strike, and quantity.
Requires: options.european-contract.interpret - Calculate a value from put-call parity
options.put-call-parity.calculateCalculate a missing European call or put value from the other option value, prepaid forward value, strike, and expiry discount factor.
Requires: options.put-call-parity.explain, derivatives.forward-delivery-price.calculate - Explain European put-call parity
options.put-call-parity.explainExplain European put-call parity by matching the expiry cash flows of a call-minus-put portfolio and a forward-style position under stated income and discounting assumptions.
Requires: finance.law-of-one-price.explain, derivatives.forward-contract.interpret, options.payoff.calculate - Distinguish option value, payoff, premium, and profit
options.value-payoff-profit.distinguishDistinguish an option's current value or premium from its expiry payoff and from profit after accounting for the premium under a stated financing convention.
Requires: options.european-contract.interpret, finance.present-value.interpret - Calculate conditional probability
probability.conditional-probability.calculateCalculate the probability of one event conditional on another positive-probability event.
Requires: probability.events.interpret - Interpret events and partitions
probability.events.interpretIdentify events and a disjoint exhaustive partition in a stated probability model.
Entry competency: no declared prerequisites. - Calculate expectation by partition
probability.expectation-by-partition.calculateCalculate a finite expected value from event probabilities and either event values or conditional event means.
Requires: probability.events.interpret, probability.conditional-probability.calculate - Convert basis points
rates.basis-points.convertConvert rate changes among decimal, percentage-point, and basis-point units.
Requires: rates.nominal-rate-quote.interpret - Interpret a deterministic discount curve
rates.discount-curve.interpretInterpret a dated set of positive valuation-time discount factors as a deterministic curve, including its interpolation and no-extrapolation conventions.
Requires: rates.discount-factor.interpret - Calculate a discount factor
rates.discount-factor.calculateCalculate D(0,T) = (1+j^(m)/m)^(-mT) from a nominal annual rate j^(m) compounded m times per year.
Requires: rates.discount-factor.interpret, rates.periodic-rate.calculate - Interpret a discount factor
rates.discount-factor.interpretExplain a discount factor as today's value of one unit paid at a future date.
Entry competency: no declared prerequisites. - Calculate a forward discount factor
rates.forward-discount-factor.calculateCalculate the deterministic discount factor between two future model times from their valuation-time discount factors.
Requires: rates.discount-curve.interpret, rates.discount-factor.calculate - Interpret a nominal annual rate quote
rates.nominal-rate-quote.interpretInterpret a nominal annual rate together with its stated compounding frequency.
Entry competency: no declared prerequisites. - Calculate a periodic rate
rates.periodic-rate.calculateCalculate the per-period rate j^(m)/m from a nominal annual rate j^(m) compounded m times per year.
Requires: rates.nominal-rate-quote.interpret