{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Trigger with rolling rate\n", "\n", "A trigger can be setup against a rolling pool performance rate, like `Last 3 Month Average Default Rate`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from absbox import API,EnginePath,unifyTs\n", "\n", "import pandas as pd\n", "pd.set_option('display.max_rows', None)\n", "\n", "localAPI = API(EnginePath.DEV, lang='english', check=False)\n", "from absbox.examples import trigger03" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is couple things we can use to set up rolling default rate in trigger\n", "\n", "* Using ratio formula : `(\"cumPoolDefaultedRate\",n)`\n", "* Using average formula : `(\"avg\", , , ...)`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "trigger03.trigger['AfterCollect']" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "avgDefaultRate = (\"avg\"\n", " , (\"cumPoolDefaultedRate\",)\n", " , (\"cumPoolDefaultedRateTill\",-1,)\n", " , (\"cumPoolDefaultedRateTill\",-2,)\n", " )\n", "\n", "r = localAPI.run(trigger03\n", " ,poolAssump = (\"Pool\",(\"Mortgage\",{\"CDR\":0.03},None,None,None)\n", " ,None\n", " ,None)\n", " ,runAssump = [(\"inspect\",(\"MonthFirst\",(\"trigger\", \"AfterCollect\" ,\"defaultRateTrigger\"))\n", " ,(\"MonthFirst\",(\"cumPoolDefaultedRate\",))\n", " ,(\"MonthFirst\",(\"cumPoolDefaultedRateTill\",-1,))\n", " ,(\"MonthFirst\",(\"cumPoolDefaultedRateTill\",-2,))\n", " ,(\"MonthFirst\",avgDefaultRate))\n", " ]\n", " ,read=True\n", " ,showWarning=False)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Result\n", "\n", "The trigger status will be fired at month `2022-10-01` ,as the average default rate in last 3 periods exceeds the threshold 5%" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "unifyTs(r['result']['inspect'].values())" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 2 }