A Division of Andrew Kalotay Associates, Inc.
BondOAS™ Library Overview

BondOAS™ is a rigorously developed, continuously enhanced, thoroughly tested valuation engine for the universe of fixed coupon bonds. These can be step coupon, callable, putable, amortizing, and pre-refunded securities as well as simple mortgages. Option types covered include American, Bermudan, European, and Canary (like Bermudan but can stop being callable before maturity). The structures can be sinking fund bonds with acceleration options (double-up, etc.) and delivery options (the ability of the issuer to buy below par and deliver in lieu of sinking at par).

The library contains a suite of internally consistent analytical routines, the primary ones being arbitrage-free valuation, conventional price/yield calculations, and scenario analysis. Its speed and accuracy makes it ideal for interactive applications or high volume processing.

BondOAS™ is widely used in trading, risk management, and pricing systems (including intra-day pricing of bond ETFs). Clients include major investment banks, exchanges, pricing services, risk management vendors, global financial information services, traders and portfolio managers, back office process vendors, and rating agencies.

BondOAS™ is released as both static and dynamic libraries for multiple architectures. In addition, Java and C# wrappers are available for each of these platforms.

Lattice calibration

BondOAS™ uses a proprietary tetranomial lattice model employing the Black-Karasinski interest rate process. The user can specify either a) the volatility of the short-term rate and a mean reversion factor (which together determine the long-rate volatility) or b) the volatilities of the short and long rates (which together determine the mean reversion factor).


Bonds and embedded options are valued recursively on the calibrated interest rate lattice. Given an option-adjusted spread (OAS), BondOAS™ will shift the discount rate at each node on the lattice accordingly, apply it to the cash flow, check for option exercise if relevant, and report a price. Option values are extracted by taking the difference between the value of the underlying bullet bond and the value of the bond with embedded option(s).

Given a price, BondOAS™ uses an iterative process to calculate the OAS. A trial OAS is added to the discount rate at every node on the lattice. If the resulting price using recursive valuation on the lattice is too low, the next try is a lower OAS; if the resulting price is too high, a higher OAS is attempted. The process is highly optimized for rapid convergence.


All fixed rate bonds (single coupon and step-coupon bonds), including:

Lattice-based Calculations

Conventional Bond Calculations

Scenario Analysis and Stress Testing

Yield Curve Analysis



The following tables describe the performance of the principal BondOAS™ Library operations. The timings were conducted on our baseline machine which has a 3.6gHz CPU and is running Linux.

The benchmark program, distributed in the lib sub-directory of the release, reports the benchmark of the machine it runs on relative to our baseline machine. The performance on any machine will be the value reported below multiplied by the average of the values reported by the benchmark program.

Lattice calibrations per second from real world curves by source:

    ust 2005-2011   312
  swaps 2005-2011   312

Lattice calibrations per second by curve type and volatilty:

                     0%   10%   30%
             flat   429   333   300
      gentle rise   400   333   300
       sharp rise   400   316   300
     negative/low   429   333   333

Price computations per second by bond type and years to maturity:

                    1yr   2yr   5yr  10yr
           bullet 157895 136364 107143 85714
         callable 68182 53571 38462 25862
    call and sink 42857 30612 14851  6849

OAS computations per second by bond type and years to maturity:

                    1yr   2yr   5yr  10yr
           bullet 55556 43478 27027 19231
         callable  8929  6579  4630  4167
    call and sink  4854  3425  2463  1266

Programming Information

BondOAS™ is a thread-safe library written in C/C++. We provide both a C and C++ API. The API is documented in BondOAS API. The library is released as both static and dynamic libraries for multiple architectures including 32 and 64 bit Linux, Windows, and SunOS Solaris for x86 as well as Solaris for Sparc.

In addition to the libraries the release includes Java and C# APIs and wrapper libraries. The release also includes example code as well as compilation instructions for each architecture.