AI-Native Financial Data Foundation (17) – PerformancePayout: Modelling Return-Based Products

AI-Native Financial Data Foundation (17) – PerformancePayout: Modelling Return-Based Products

The previous articles traced four extensions of PayoutBase

  • InterestRatePayout (scheduled)
  • CreditDefaultPayout (contingent)
  • OptionPayout (conditional)
  • SettlementPayout (deterministic).

This article covers the fifth: PerformancePayout (performance-based).

At its core, PerformancePayout models a payment determined by the observed performance of a market observable — the appreciation of a stock, the dividends paid by an index, the realised variance of a currency pair, the correlation within a basket. There is no fixed rate. No strike. No reference entity. The payment depends on what the market does between two dates.

An equity swap on Finsight Tech Corp will serve as the running example: Party A pays 3M SOFR + 25bp on USD 10M, Party B pays the total return on Finsight Tech Corp shares — price appreciation plus dividends — over quarterly periods.

The Shape of the Product

An equity swap follows the same compositional pattern we saw with the CDS: two payouts of different types. One is an InterestRatePayout — the financing leg, scheduled and formulaic. The other is a PerformancePayout — the asset leg, driven by market observation. Same parent infrastructure. Different economic logic on each side.

PerformancePayout — The Type Structure

type PerformancePayout extends PayoutBase:
observationTerms ObservationTerms (0..1)
valuationDates ValuationDates (1..1)
paymentDates PaymentDates (1..1)
underlier Underlier (0..1)
fxFeature FxFeature (0..*)
returnTerms ReturnTerms (0..1)
portfolioReturnTerms PortfolioReturnTerms (0..*)
initialValuationPrice PriceSchedule (0..*)
interimValuationPrice PriceSchedule (0..*)
finalValuationPrice PriceSchedule (0..*)

Ten direct attributes — second only to InterestRatePayout in complexity. But the complexity comes from a different source: not from a time structure of accrual periods and reset dates, but from the variety of return types and the valuation observation structure.

returnTerms is the heart of this type. A single attribute with five mutually exclusive choices. Exactly one must be present:

  • priceReturnTerms — the price appreciation of the underlier. returnType = Price means price only. returnType = Total means price plus dividends (and then dividendReturnTerms must also be present).
  • dividendReturnTerms — the dividends paid by the underlier. Used in dividend swaps where the payout is only the dividend stream.
  • varianceReturnTerms — the realised variance of the underlier’s price over the observation period. Inherits from ReturnTermsBase, which carries annualizationFactor (e.g., 252 for daily observations), expectedN (expected number of trading days), initialLevel, and meanAdjustment.
  • volatilityReturnTerms — the realised volatility. Same base structure as variance, different calculation at the end (square root).
  • correlationReturnTerms — the realised correlation between components of a basket underlier. Requires portfolioReturnTerms with multiple constituents.

valuationDates is mandatory (1..1). It defines the observation timeline — when performance is measured:

type ValuationDates:
initialValuationDate (0..1) // anchor — where performance starts from
interimValuationDate (0..1) // resets — quarterly, monthly observations
finalValuationDate (1..1) // close — where performance ends

finalValuationDate is mandatory. You must know when the performance period ends. initialValuationDate anchors the starting price — without it, performance is undefined. interimValuationDate handles resets: for a variance swap with quarterly observations, each interim date is a reset point where the period’s variance is computed and a payment may be triggered.

initialValuationPrice / finalValuationPrice are derived values — the actual observed prices at the start and end. Performance is:

Performance = (Final Price − Initial Price) / Initial Price

For a total return swap, dividends are added to this. For a variance swap, the squared daily log returns are summed and annualised. The type of return determines the formula, but the price observation structure is the same.

underlier is constrained to Observable only. The CDM enforces this: underlier → Observable exists. Performance is measured against a market observable — a stock price, an index level, a basket value — not against a contractual product definition.

paymentDates is mandatory (1..1) — unlike InterestRatePayout where it is optional. Performance payouts always involve scheduled payments tied to valuation periods. This is the one scheduling attribute PerformancePayout borrows from the time-structure world.

fxFeature handles quanto and composite conversions. An equity swap on Nikkei 225 where the performance is measured in JPY but payment is in USD. The performance leg observes the Nikkei in JPY. The FX feature converts to USD.

portfolioReturnTerms is the alternative to returnTerms. It allows multiple return types to be combined for basket products — for example, price return on constituent A plus dividend return on constituent B. The CDM enforces that if portfolioReturnTerms exists, it must have more than one entry — a single portfolio term would be redundant with returnTerms.

Economic Agreement — What Performance Is Being Traded?

The economic core of a performance payout answers two questions: the performance of what? and which aspect of performance?

Underlier:

  • For our equity swap: Observable → Asset → Instrument → Security { Finsight Tech Corp }.
  • For a dividend swap on the S&P 500: Observable → Index { SPX }.
  • For a variance swap on EUR/USD: Observable → Asset → Cash { EUR, USD }.
  • For a correlation swap: Observable → Basket.

Return type:

For our equity swap, returnType = Total — Party B pays Party A the price appreciation plus any dividends paid by Finsight Tech Corp during the period. If Finsight rises from USD 150 to USD 165 and pays a USD 2 dividend, the total return is (165 + 2 − 150) / 150 = 11.33%. On a USD 10M notional, Party B pays Party A USD 1,133,333.

If the return type were Price, dividends would be excluded. If it were Dividend, only the dividend payment would flow through. If it were Variance, the squared daily returns would determine the payment. The underlier can be the same; the return type changes the economics entirely.

Contractual Definition — When Is Performance Measured?

PerformancePayout has no CalculationPeriodDates. No ResetDates. Instead it has valuationDates — a different kind of time structure tailored to observation rather than accrual.

For our equity swap with quarterly periods:

ValuationDates {
initialValuationDate: PerformanceValuationDates {
determinationMethod: AgreedInitialPrice
valuationDate: AdjustableOrRelativeDate {
adjustableDate: AdjustableDate { unadjustedDate: 2026-03-15 }
}
valuationTime: BusinessCenterTime { hour: 16, minute: 0, businessCenter: USNY }
}
finalValuationDate: PerformanceValuationDates {
determinationMethod: ExchangeClose
valuationDate: AdjustableOrRelativeDate {
adjustableDate: AdjustableDate { unadjustedDate: 2026-06-15 }
}
valuationTimeType: Close
}
}

The initialValuationDate is the trade date — the price at which the position is deemed to have been entered. The finalValuationDate is three months later. Performance is measured between these two points.

For a variance swap with daily observations, the interimValuationDate carries the daily observation schedule. Each day’s closing price feeds into the variance calculation. The finalValuationDate triggers the final settlement.

The determinationMethod carries the convention: AgreedInitialPrice means the parties agreed on a specific starting price. ExchangeClose means the official exchange closing price is used. The valuationTime and valuationTimeType define the precise cutoff.

Value Determination — What the Market Produces

Value determination for PerformancePayout is not formulaic in the InterestRatePayout sense. There is no dayCountFraction, no compoundingMethod, no forecastAmount. Instead, performance is observed:

Equity total return:

Payment = Notional × ((Final Price + Dividends − Initial Price) / Initial Price)

Variance swap:

Payment = Notional × (Realised Variance − Variance Strike) × Vega Notional

Where realised variance is computed from daily log returns over the observation period, annualised using the annualizationFactor.

Volatility swap:

Payment = Notional × (√Realised Variance − Volatility Strike) × Vega Notional

Correlation swap:

Payment = Notional × (Realised Correlation − Correlation Strike)

The initialValuationPrice and finalValuationPrice on PerformancePayout carry the observed prices. The returnTerms carry the parameters (annualization factor, expected N, mean adjustment, dividend applicability). The calculation engine applies the formula. The model stores the inputs and the result, not the formula itself.

Settlement / Realisation — Payment Against Performance

PerformancePayout carries paymentDates as mandatory (1..1). For our equity swap, payments occur quarterly — at the end of each valuation period. Party B pays Party A the total return for the quarter.

This is the same PaymentDates type used by InterestRatePayout. The same settlementTerms inherited from PayoutBase. The same AssetFlow projection chain. PerformancePayout does not reinvent settlement. It reuses the infrastructure.

Product Examples

PerformancePayout appears in products where the payment is driven by the market performance of an observable. It almost always pairs with an InterestRatePayout — one leg carries the asset performance, the other carries the financing or premium.

Equity swap. Party A pays SOFR + spread. Party B pays the total return on Finsight Tech Corp. Quarterly resets. One InterestRatePayout (financing), one PerformancePayout (asset). The same structure as a CDS — two different payout types, one product.

Total return swap on a bond. Party A pays SOFR + spread. Party B pays the total return on the US Treasury 4.00% due 2030 — price change plus coupon. Used by funds to gain synthetic bond exposure without buying the bond.

Dividend swap. Party A pays a fixed premium. Party B pays the realised dividends on the S&P 500 during the contract year. One InterestRatePayout (fixed), one PerformancePayout (dividend). No price return component.

Variance swap. Party A pays a fixed variance strike (e.g., 0.04, representing 20% volatility squared). Party B pays the realised variance of the S&P 500, computed from daily closing prices over the observation period. If the market is more volatile than the strike, Party B pays. If less, Party A pays. One InterestRatePayout (fixed), one PerformancePayout (variance).

Volatility swap. Same structure as variance, but the payoff is linear in volatility rather than variance. Used by funds that want direct exposure to volatility levels rather than variance.

Correlation swap. Party A pays a fixed correlation strike (e.g., 0.50). Party B pays the realised average pairwise correlation of the constituents of a basket. If stocks in the basket become more correlated than expected, Party B pays. Used for dispersion trading — if correlation is high, dispersion is low, and vice versa.

Portfolio swap. A total return swap on a custom basket of equities. portfolioReturnTerms carries the individual return types for each constituent — some price return, some total return, some dividend only.

Conclusion

PerformancePayout completes the set. Five extensions of PayoutBase, five economic natures:

Payout typeEconomic logicTypical pairing
InterestRatePayoutScheduled interest-based obligationAnother IRP
CreditDefaultPayoutContingent credit-based obligationIRP (premium)
OptionPayoutConditional rightIRP (premium) or standalone
SettlementPayoutDeterministic forward commitmentStandalone
PerformancePayoutPerformance-based paymentIRP (financing or premium)

The compositional insight that began with the CDS — two different payout types, one product — is not an exception. It is the rule. An IRS is two IRPs. A CDS is IRP + CDP. An equity swap is IRP + PerformancePayout. The product is the composition. The label is just the label.

Leave a comment