Skip to content

Singapore Savings Bonds (SSB) Calculation and Determination of the next iteration of SSB through SGS references and spline interpolation

License

Notifications You must be signed in to change notification settings

TuWeile/SSB-Determinator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues LinkedIn


Logo

Singapore Savings Bonds (SSB) Calculator

SSB calculation and determination of next month's SSB through SGS bond references, spline interpolation, and step-up adjustments
Explore the docs »

Documentation · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Illustration of SSB Bond Yield Website

This repository serves to provide an estimation to determine for the next month's average return per year (%) through obtaining the simple moving average of the daily SGS benchmark yields (1Y, 2Y, 5Y, 10Y) from the current month. Inspired by the MAS calculations and technical specifications and further independent research on the determination of the valuation of Singapore Savings Bonds and another similar report on the estimation of effective SSB rates from SGS benchmark yields, it is hoped that the optimization of the step-up adjustments and the basis application into Python / C++ libraries will be able to contribute further into developing future predictions and estimations into the upcoming SSB bond yield model.

Once I have taken the time to complete up the writings, documentation and its specific details can be found here on Medium.

(back to top)

Built With

  • Python

(back to top)

Getting Started

In order to get the project running locally within your computer, follow these prerequisites below:

Prerequisites

  • List of Python packages to install
    numpy
    pandas
    configparser

Installation

  1. Determine the month of the SSB bond you want to estimate. If you want to estimate for the December SSB bond, you will need to obtain the data for the month of October SGS reference yields. This is because it takes a month to bid for the SSB (Nov 1 to Nov 25) after collecting the data from October, and it is only issued on the first day of the next month after the bidding period is over (Dec 1, hence the term "December SSB bond").

  2. Download the data from the SGS Prices and Yields - Benchmark Issues here, with the specifications that:

    Frequency: Daily
    
    Average Buying Rates of Govt Securities Dealers: [1-Year T-Bill Yield, 2-Year Bond Yield, 5-Year Bond Yield, 10-Year Bond Yield]

    You may refer to the above gif illustration to download the data as shown above.

  3. Clone the repo and place the data you have downloaded in the /data directory. You may find sample data as shown within the directory specified. Once completed, configure the config.ini file such that the data variable is pointing to the file added.

  4. Start up your IDE (PyCharm), and configure the working directory within the configuration to point towards the /path/to/SSB-Determiantor directory. Once completed, you can run main.py to execute the script.

(back to top)

Usage

When using this repository, it is generally advisable to execute the repository on the last working day of the calendar month for the best results as the SGS Prices and Yields - Benchmark Issues is updated daily. I will eventually consider adding in new features to predict and forecast acceptable daily bond yields ahead of time, but at the moment this would require research as multiple parameters will need to be considered for such an evaluation.

Furthermore, when running this repository, please keep into consideration of the CME FedWatch Tool as the SGS Bond Yields closely follows the U.S. Fed interest rates and can serve as an important guidance in forecasting future bond yields.

As for the adjustments within the technical specifications, please do allow for the adjustments of the coupons to differ by up to ±0.06%. While this is not within the acceptable range of ±0.03% from the technical specifications, nevertheless I do intend to optimize the calculations further to meet with the rounding of the computation of the step-up coupons.

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the BSD 3-Clause "New" License. See LICENSE for more information.

(back to top)

Contact

Tu Weile - LinkedIn - tuweile.sg@gmail.com

Project Link: https://github.com/TuWeile/SSB-Determinator

(back to top)

Acknowledgments

(back to top)

About

Singapore Savings Bonds (SSB) Calculation and Determination of the next iteration of SSB through SGS references and spline interpolation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages