Sources and method
Everything on this site is derived from one workbook. The constructions in it were researched against the sources below; the formulas are tested; the decisions are listed.
Method
A build script parses the workbook: product names, codes, market expectations and constructions from the category sheets; parameters, marker lines and the per-block formulas from the "Payoff Data" sheet. The Excel formulas are transliterated mechanically into TypeScript functions, so nothing is retyped. A test suite reproduces the workbook's "Checks" sheet: for each of the 57 product/scenario combinations the sum of the building blocks is compared with the independent product formula over a grid from 0 % to 200 % with the default parameters and two perturbed sets, plus hand-computed key points for every product.
Product and category texts are written for this site. Names and category codes follow the SSPA Swiss Derivative Map so that readers can cross-reference the official classification.
Modelling decisions
From the workbook's "Notes" sheet.
| # | Topic | Decision |
|---|---|---|
| 1 | Scope and naming | All 24 SSPA product types are covered. Bull/Bear, Call/Put and Long/Short variants are separate blocks (Tracker, Warrant, Spread Warrant, Warrant with Knock-Out, Mini-Future, Constant Leverage). Titles follow the pattern "<Name> (<SSPA code>)" with the variant before the code, e.g. "Mini-Future - Long (2210)". The English names are the ones used in the task; the official SSPA English names differ slightly (e.g. "Barrier Discount Certificate", "Conditional Coupon Reverse Convertible", "Twin Win Certificate"). |
| 2 | Typo fixes in the existing sheet | Only obvious typos were corrected: Volatiltiy -> Volatility (B7, B17); "Short Call- OTM" -> "Short Call - OTM" (B23); donw -> down (A37); Caüotaö -> Capital (A38); swingsof -> swings of (B42); "Long put" -> "Long Put" (B50); Expextation -> Expectation (A54); "Cash or Noting Option ... maturites" -> "Cash or Nothing Options ... maturities" (B60); ilustrate -> illustrate (A61). Nothing else in the existing text, order or formatting was changed. The block "Capped Capital Protection note with participation" has no SSPA code in the original and was left as it is (it is a capped variant of 1100). The three grey instruction notes (rows 37, 38 and 61 of the original) were kept, as asked, and have been implemented. |
| 3 | Units used in all charts | The underlying at maturity is shown in % of its initial level (0% to 200%, 201 points). Investment products are shown as redemption in % of nominal (nominal = 100); leverage products as value per unit in % of the initial underlying level (ratio 1). Coupons are shown as if paid at maturity together with the nominal; the timing of intermediate coupon payments is ignored in the payoff charts. |
| 4 | Scenario series for barrier products | Barrier products are path dependent, so each barrier (or credit) scenario has its own series. In a "barrier never touched" series the formula still has to return a value for underlying levels beyond the barrier, where that scenario is impossible; there the series shows the knocked-out/knocked-in payoff (the barrier must have been touched to get there). The legends state the scenario; for double-barrier products all four combinations are shown. |
| 5 | Discount Certificate (1200) - hypothesis confirmed | Long Underlying + Short Call at the cap is the standard replication (Vontobel, fCertificates). Via put-call parity it equals Zero Bond (face = cap) + Short Put at the cap; both are listed. The chart uses the first version. Redemption is shown in % of the initial underlying level; the "yield" of the product comes from buying below that level (the discount), which does not appear in a payoff-at-maturity chart. |
| 6 | Discount Certificate with Barrier (1210) - hypothesis confirmed | Zero Bond (face = cap) + Short Down-and-In Put with strike at the cap reproduces: cap if the barrier is never touched, min(underlying, cap) if touched (= plain discount certificate). Note that the strike of the knock-in put is the cap, which is above the barrier (and usually above spot), so the put is in the money at inception. |
| 7 | Reverse Convertible (1220) and Barrier Reverse Convertible (1230) - hypotheses confirmed | Zero Bond (face = nominal + coupon) + Short Put ATM (1220) / Short Down-and-In Put ATM (1230) (Wikipedia; SIX know-how states the economics equal those of discount certificates). The short put is scaled to nominal/strike units so that delivery below the strike equals nominal x S/strike. |
| 8 | Conditional coupon products (1255, 1260) - hypothesis refined | The conditional coupon is modelled as a long cash-or-nothing call with strike = coupon trigger paying the coupon, one per observation date; only the final one appears in the maturity payoff. The autocall is path dependent and is NOT in the static replication: the chart is the payoff at the final fixing given that the product was never called. A static decomposition can capture (a) the bond, (b) the short (knock-in) put at maturity and (c) each coupon digital conditional on reaching that date; it cannot capture the early termination of all later blocks when the autocall trigger is hit, nor memory coupons. Valuation needs a path-dependent model. |
| 9 | Tracker (1300) - hypothesis confirmed, Bear tracker specified | Bull tracker = Long Underlying (zero-strike call). The Bear tracker is modelled as a long put with strike at the reverse level (default 2 x initial level), i.e. payoff = max(reverse level - underlying, 0); this equals Zero Bond (face = reverse level) + Short Underlying with a floor at zero. Fees and dividend treatment are ignored. |
| 10 | Outperformance (1310) - hypothesis confirmed | Long Underlying + (participation - 1) x Long Call ATM (Vontobel, fCertificates). Default participation 150%. |
| 11 | Bonus (1320) and Bonus Outperformance (1330) - hypotheses confirmed, one refinement | Bonus = Long Underlying + Long Down-and-Out Put with strike at the bonus level (Vontobel, fCertificates). For 1330 the bonus level parameter is separate from the strike; with bonus level above the strike the two features overlap (bonus floor plus outperformance), and the sum of blocks is max(S, bonus) + (p-1) x max(S - strike, 0). The default follows the SIX example where bonus level = strike. |
| 12 | Twin-Win (1340) - hypothesis confirmed | Long Underlying + 2 x Long Down-and-Out Put ATM (fCertificates). The market expectation makes the difference to the capital-protected Twin-Win (1135) explicit: no capital protection, tracker payoff once the barrier is touched, no upper knock-out. |
| 13 | Credit Linked Note (1400) - hypothesis confirmed, chart axis changed | Bond + short CDS (investor sells protection). Because the payoff does not depend on an equity underlying, the x-axis of the 1400 charts is the recovery value of the reference bond after a credit event (0% to 100% of nominal), with one series for "no credit event" (nominal + coupon) and one for "credit event" (recovery value). The coupon is shown as a single amount at maturity. |
| 14 | Products 1410, 1420, 1430 - defined as asked | Each is a synthetic reference bond (Zero Bond + Short CDS on the reference entity) plus the option structure of the matching base product: Long Call ATM (1410, conditional capital protection), Short Put ATM with coupon (1420, reverse-convertible type; a barrier variant is mentioned), Long Call ATM + Short Put ATM = synthetic forward (1430, tracker type). Simplification: after a credit event the product is assumed to terminate and pay only the recovery value (default 40%); the option legs are treated as void. In practice issuers pay the market value of the reference bond and may settle the derivative part separately. For 1430 keep participation <= 1, otherwise the unfloored payoff could become negative for very low underlying levels. |
| 15 | Warrants (2100) and Spread Warrants (2110) - hypotheses confirmed | Single long call / long put; spread = long call ATM + short call at the cap (bull) or long put ATM + short put at the floor (bear) (Borsa Italiana education). Values are intrinsic values at expiry; time value and ratio are ignored. |
| 16 | Warrant with Knock-Out (2200) - hypothesis confirmed, parameterised | Long Down-and-Out Call (call) / Long Up-and-Out Put (put). In the classic version the knock-out level equals the strike (SIX know-how); with a stop-loss version the level sits above (call) / below (put) the strike and a residual may be paid. A rebate parameter (default 0) covers both cases. Default strike 90 (call) / 110 (put), so the options are in the money at inception, as is typical. |
| 17 | Mini-Future (2210) - hypothesis confirmed and made precise | Value = underlying - financing level (long) or financing level - underlying (short); the issuer finances the financing level, so the position is Long Underlying + Short Zero Bond (face = financing level). The stop-loss sits between spot and financing level; when it is hit the issuer unwinds and pays the residual value, approximated here as |stop-loss - financing level| (SIX, UBS, Swissquote). In the "stop-loss not hit" series the third block (stop-loss mechanism) equals max(stop-loss - underlying, 0) for the long version, i.e. it converts the position into the residual value below the stop-loss; in the "stop-loss hit" series only the residual value remains. Equivalent view: a down-and-out call (long) / up-and-out put (short) with strike = financing level, barrier = stop-loss and rebate = residual value. The product is open-ended and the financing level is adjusted daily, so the chart is the value at a given date rather than a maturity payoff. |
| 18 | Constant Leverage Certificate (2300) - no static replication | The value follows V(t) = V(t-1) x (1 + L x daily return) less financing (BNP Paribas, Vontobel). The exposure is re-levered every day, so there is no static replication and the result depends on the path. The chart shows (a) a single-period approximation, 100 + L x (S - 100), floored at zero to represent the intraday reset/adjustment mechanism, decomposed as L x underlying - (L-1) x zero bond (financing) + floor; and (b) an illustrative two-step path (first an interim move of -10% long / +10% short, then to the level shown) to make the path dependency visible. Both are marked as approximations in the chart title. |
| 19 | Capital Protection with Knock-Out - Bear (1130) and Double Knock-Out (1130) | Bear version (row-37 note): Zero Bond + Down-and-Out Long Put ATM + Digital Barrier Long Put (rebate paid if the lower barrier is touched). Double knock-out version (row-38 note): Zero Bond + Double Knock-Out Long Call ATM (knocked out if either barrier is touched) + Digital Barrier Long Call (rebate paid if the upper barrier is touched); four scenario series. Both are classified under code 1130 (capital protection with barrier). |
| 20 | Capital Protection with Coupon (1140) chart | The existing construction ("combination of cash-or-nothing options with different maturities and strikes") is charted at maturity with a single coupon digital (coupon paid if the underlying is at or above the coupon trigger at the final fixing). Earlier coupons depend on earlier fixings and are not shown. |
| 21 | Parameters and chart mechanics | Every product has its own parameter cells in "Payoff Data" (blue on yellow). All block, sum, payoff and marker series are formulas referring to those cells and to the x grid; no chart value is hard-coded. The x grid is 0 to 200 in steps of 1 (0 to 100 in steps of 0.5 for 1400). Kinks are drawn exactly when parameter levels are multiples of the step; otherwise the nearest grid points are connected by a straight line. Marker lines (initial level, strike, cap, barrier, protection level) are two-point series driven by the same parameter cells. |
| 22 | Colours and line styles | Building-block colours are the same on every sheet: zero bond grey, underlying/zero-strike call teal, calls blue, puts orange, digitals/rebates purple, credit default swap red, mechanisms (stop-loss residual, reset floor) brown; the sum is bold black. Short positions are dashed, knocked/alternative-scenario variants dotted. In the payoff charts the base scenario is dark blue, further scenarios red dashed, grey dotted and orange dash-dot. Barrier/knock-out/stop-loss markers are red dotted, the initial level grey dashed, other levels dark grey dashed. |
| 23 | Technical note on the file | The workbook was rebuilt with openpyxl from a copy of the original. The original contained an empty Office web-extension (task pane) reference, which openpyxl does not carry over; it has no effect on content or formatting. The file is set to recalculate fully when opened, so all formula values appear immediately in Excel. |
| 24 | Checks | Sheet "Checks" lists 57 product/scenario combinations; all pass in Python (default and two perturbed parameter sets) and the live Excel columns repeat the comparison. The workbook was recalculated with LibreOffice and contains no formula errors. |
| 25 | Rows inserted in "Capital Protection Products" | To make room for the charts, empty rows were inserted below existing blocks at these (original) row positions: 6 row(s) before original row 14; 4 row(s) before original row 26; 3 row(s) before original row 39; 5 row(s) before original row 53. No existing text, order or cell formatting was changed. |
Sources
| # | Source | Publisher | What it supported |
|---|---|---|---|
| 1 | SSPA Swiss Derivative Map 2026 (German PDF supplied with the task) | Swiss Structured Products Association | Product universe, SSPA codes, market-expectation themes and the list of additional features (skeleton only; no wording reused). |
| 2 | SSPA products page - categorisation with English product names | Swiss Structured Products Association | Official English names and codes for all 24 product types (1100-1140, 1200-1260, 1300-1340, 1400-1430, 2100-2300). |
| 3 | Discount certificates - how they work | Vontobel (markets.vontobel.com) | Discount certificate = zero-strike call (LEPO) + short call at the cap; source of the discount; cap mechanics. |
| 4 | DiscountCertificate: valuation by duplication (R package fCertificates) | R-Forge / rdrr.io | Discount certificate replication: long stock (zero-strike call) + short call with strike = cap. |
| 5 | Put-call parity | Wikipedia | Equivalence long stock + short call = zero bond + short put (alternative discount-certificate construction). |
| 6 | Barrier discount certificates | SIX Structured Products (know-how) | Barrier discount payoff: cap if the barrier is never touched; converts into a plain discount certificate once touched. |
| 7 | Reverse convertible securities | Wikipedia | Reverse convertible = note + short ATM put; barrier version = short ATM down-and-in put; typical knock-in levels; payoff at maturity. |
| 8 | (Barrier) Reverse Convertibles | SIX Structured Products (know-how) | Economics identical to discount certificates but with coupons; barrier reverts the product to a plain reverse convertible. |
| 9 | Autocallables 101: path dependency | Numerix blog | Why autocallable/conditional-coupon notes are path dependent; autocall triggers, coupon barriers, multiple observation dates. |
| 10 | Tracker certificates - how they work | Vontobel (markets.vontobel.com) | Tracker = 1:1 replication of the underlying without leverage, cap or protection; open-end vs fixed term. |
| 11 | Outperformance certificates - how they work | Vontobel (markets.vontobel.com) | Outperformance = zero-strike call (LEPO) + additional call struck at the initial fixing; participation; capped variant. |
| 12 | OutperformanceCertificate: valuation by duplication (fCertificates) | R-Forge / rdrr.io | Outperformance replication: long stock + long call at strike X scaled by the participation factor. |
| 13 | Bonus certificates - how they work | Vontobel (markets.vontobel.com) | Bonus = zero-strike call + down-and-out put with strike = bonus level and barrier = product barrier; behaviour after a barrier touch. |
| 14 | BonusCertificate: valuation by duplication (fCertificates) | R-Forge / rdrr.io | Bonus replication: long stock + long down-and-out put (strike = bonus level, barrier = safety level). |
| 15 | Outperformance bonus certificate | SIX Structured Products (know-how) | Bonus outperformance payoff scenarios; example with bonus level = strike, participation 150%, barrier below. |
| 16 | TwinWinCertificate: valuation by duplication (fCertificates) | R-Forge / rdrr.io | Twin-Win replication: long stock + two long down-and-out puts. |
| 17 | Twin-win certificate | SIX Structured Products (know-how) | Twin-Win payoff: gains in both directions while the barrier holds; 1:1 tracker once touched. |
| 18 | Credit-Linked Note (CLN) | Financial Edge Training | CLN = funded note + embedded CDS; investor sells protection; loss on a credit event tied to recovery. |
| 19 | Credit-linked notes explained | Learnsignal | CLN mechanics: collateral, embedded CDS, write-down on a credit event, enhanced coupon, two credit exposures. |
| 20 | Reference entity certificates | SIX Structured Products (know-how) | Products with additional credit risk: combination with a reference bond, early termination and payment of the reference bond market value after a credit event, better terms (higher coupons/participation). |
| 21 | Warrants | SIX Structured Products (know-how) | Call/put warrant intrinsic value, time value, ratio, leverage, break-even. |
| 22 | Product types: Call Spread / Put Spread covered warrants, Stop Loss Bull/Bear | Borsa Italiana (education) | Spread warrant = long call (low strike) + short call (higher strike), put spread analogously; stop-loss bull = underlying financed by borrowing the strike with a stop-loss barrier. |
| 23 | Knock-out warrants | SIX Structured Products (know-how) | Knock-out level equals the strike in the classic version; stop-loss versions with residual value; little volatility influence; intrinsic value formula. |
| 24 | Mini-futures | SIX Structured Products (know-how) | Mini-future value = (underlying - financing level) x ratio; knock-out threshold; open-ended; residual value paid after knock-out. |
| 25 | What are mini futures? | UBS | Daily adjustment of the financing level, stop-loss above (long) / below (short) the financing level, residual value, comparison with warrants. |
| 26 | Mini-futures explained | Swissquote (Swiss DOTS blog) | Repayment after a stop-loss event = (financing level - stop-loss level) x ratio; daily financing adjustment. |
| 27 | Constant leverage certificates | SIX Structured Products (know-how) | Daily reset of the leverage, no knock-out, open-ended, no influence of implied volatility. |
| 28 | Constant leverage certificates - how they work | Vontobel (markets.vontobel.com) | Value formula with leverage and financing components, intraday reset threshold, path dependency. |
| 29 | Constant Leverage Certificates brochure (April 2025) | BNP Paribas Markets Switzerland | Daily value formula V(t) = V(t-1) x (1 + L x r) + financing, 0.5% floor, reset threshold mechanics, worked path-dependency examples. |
| 30 | Capital protection with coupon / knock-out (SIX know-how overview) | SIX Structured Products (know-how) | Capital protection with knock-out: participation up to the knock-out level, rebate version; capital protection with coupon depends on the underlying. |
| 31 | Capital protection with participation | SIX Structured Products (know-how) | Protection level, participation financed by forgone dividends, capped variant. |
| 32 | Foreign Exchange Options (encyclopedia article by Cekan, Wendel, Wystup) | MathFinance | Structured products as linear combinations of vanilla, barrier and digital options; European barrier options are statically replicable with vanillas and digitals; one-touch (rebate) options. |
| 33 | Options, Futures, and Other Derivatives (textbook) | John C. Hull, Pearson | Standard payoff definitions of calls, puts, barrier (knock-in/knock-out, in-out parity) and cash-or-nothing digital options; put-call parity; credit default swaps. |
| 34 | FX Options and Structured Products (textbook) | Uwe Wystup, Wiley | Exotic option building blocks (barrier, digital, one-touch) and their use in structured products. |