Trigger with rolling rate

A trigger can be setup against a rolling pool performance rate, like Last 3 Month Average Default Rate

from absbox import API,EnginePath,unifyTs

import pandas as pd
pd.set_option('display.max_rows', None)

localAPI = API(EnginePath.DEV, lang='english', check=False)
from absbox.examples import trigger03
Connecting engine server -> https://absbox.org/api/dev
/home/docs/checkouts/readthedocs.org/user_builds/absbox-doc/envs/stable/lib/python3.11/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'absbox.org'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  warnings.warn(
✅Connected, local lib:0.52.3, server:0.52.3

Here is couple things we can use to set up rolling default rate in trigger

  • Using ratio formula : ("cumPoolDefaultedRate",n)

  • Using average formula : ("avg", <Formula>, <Formula>, ...)

trigger03.trigger['AfterCollect']
{'defaultRateTrigger': {'condition': [('avg',
    ('cumPoolDefaultedRate',),
    ('cumPoolDefaultedRateTill', -1),
    ('cumPoolDefaultedRateTill', -2)),
   '>',
   0.05],
  'effects': ('newStatus', 'Accelerated'),
  'status': False,
  'curable': False}}
avgDefaultRate = ("avg"
                    , ("cumPoolDefaultedRate",)
                    , ("cumPoolDefaultedRateTill",-1,)
                    , ("cumPoolDefaultedRateTill",-2,)
                    )

r = localAPI.run(trigger03
                 ,poolAssump = ("Pool",("Mortgage",{"CDR":0.03},None,None,None)
                                       ,None
                                       ,None)
                 ,runAssump = [("inspect",("MonthFirst",("trigger", "AfterCollect" ,"defaultRateTrigger"))
                                         ,("MonthFirst",("cumPoolDefaultedRate",))
                                         ,("MonthFirst",("cumPoolDefaultedRateTill",-1,))
                                         ,("MonthFirst",("cumPoolDefaultedRateTill",-2,))
                                         ,("MonthFirst",avgDefaultRate))
                               ]
                 ,read=True
                 ,showWarning=False)
/home/docs/checkouts/readthedocs.org/user_builds/absbox-doc/envs/stable/lib/python3.11/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'absbox.org'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  warnings.warn(

Result

The trigger status will be fired at month 2022-10-01 ,as the average default rate in last 3 periods exceeds the threshold 5%

unifyTs(r['result']['inspect'].values())
<Avg:<CumulativePoolDefaultedRate>,<CumulativePoolDefaultedRateTill:<-1>,<None>>,<CumulativePoolDefaultedRateTill:<-2>,<None>>> <CumulativePoolDefaultedRate> <CumulativePoolDefaultedRateTill:<-1>,<None>> <CumulativePoolDefaultedRateTill:<-2>,<None>> <TriggersStatus:<EndCollectionWF>,<defaultRateTrigger>>
Date
2021-10-01 0.033333 0.033333 0.033333 0.033333 False
2021-11-01 0.034893 0.038013 0.033333 0.033333 False
2021-12-01 0.037128 0.04004 0.038013 0.033333 False
2022-01-01 0.04 0.041946 0.04004 0.038013 False
2022-02-01 0.041882 0.04366 0.041946 0.04004 False
2022-03-01 0.043548 0.04504 0.04366 0.041946 False
2022-04-01 0.045024 0.046373 0.04504 0.04366 False
2022-05-01 0.046297 0.04748 0.046373 0.04504 False
2022-06-01 0.047428 0.048433 0.04748 0.046373 False
2022-07-01 0.048362 0.049173 0.048433 0.04748 False
2022-08-01 0.049117 0.049746 0.049173 0.048433 False
2022-09-01 0.049682 0.050126 0.049746 0.049173 False
2022-10-01 0.05006 0.050306 0.050126 0.049746 True
2022-11-01 0.050246 0.050306 0.050306 0.050126 True
2022-12-01 0.050306 0.050306 0.050306 0.050306 True
2023-01-01 0.050306 0.050306 0.050306 0.050306 True
2023-02-01 0.050306 0.050306 0.050306 0.050306 True
2023-03-01 0.050306 0.050306 0.050306 0.050306 True
2023-04-01 0.050306 0.050306 0.050306 0.050306 True
2023-05-01 0.050306 0.050306 0.050306 0.050306 True
2023-06-01 0.050306 0.050306 0.050306 0.050306 True
2023-07-01 0.050306 0.050306 0.050306 0.050306 True
2023-08-01 0.050306 0.050306 0.050306 0.050306 True
2023-09-01 0.050306 0.050306 0.050306 0.050306 True
2023-10-01 0.050306 0.050306 0.050306 0.050306 True
2023-11-01 0.050306 0.050306 0.050306 0.050306 True
2023-12-01 0.050306 0.050306 0.050306 0.050306 True
2024-01-01 0.050306 0.050306 0.050306 0.050306 True
2024-02-01 0.050306 0.050306 0.050306 0.050306 True
2024-03-01 0.050306 0.050306 0.050306 0.050306 True
2024-04-01 0.050306 0.050306 0.050306 0.050306 True
2024-05-01 0.050306 0.050306 0.050306 0.050306 True
2024-06-01 0.050306 0.050306 0.050306 0.050306 True
2024-07-01 0.050306 0.050306 0.050306 0.050306 True
2024-08-01 0.050306 0.050306 0.050306 0.050306 True
2024-09-01 0.050306 0.050306 0.050306 0.050306 True
2024-10-01 0.050306 0.050306 0.050306 0.050306 True
2024-11-01 0.050306 0.050306 0.050306 0.050306 True
2024-12-01 0.050306 0.050306 0.050306 0.050306 True
2025-01-01 0.050306 0.050306 0.050306 0.050306 True
2025-02-01 0.050306 0.050306 0.050306 0.050306 True
2025-03-01 0.050306 0.050306 0.050306 0.050306 True
2025-04-01 0.050306 0.050306 0.050306 0.050306 True
2025-05-01 0.050306 0.050306 0.050306 0.050306 True
2025-06-01 0.050306 0.050306 0.050306 0.050306 True
2025-07-01 0.050306 0.050306 0.050306 0.050306 True
2025-08-01 0.050306 0.050306 0.050306 0.050306 True
2025-09-01 0.050306 0.050306 0.050306 0.050306 True
2025-10-01 0.050306 0.050306 0.050306 0.050306 True
2025-11-01 0.050306 0.050306 0.050306 0.050306 True
2025-12-01 0.050306 0.050306 0.050306 0.050306 True
2026-01-01 0.050306 0.050306 0.050306 0.050306 True
2026-02-01 0.050306 0.050306 0.050306 0.050306 True
2026-03-01 0.050306 0.050306 0.050306 0.050306 True
2026-04-01 0.050306 0.050306 0.050306 0.050306 True
2026-05-01 0.050306 0.050306 0.050306 0.050306 True
2026-06-01 0.050306 0.050306 0.050306 0.050306 True
2026-07-01 0.050306 0.050306 0.050306 0.050306 True
2026-08-01 0.050306 0.050306 0.050306 0.050306 True
2026-09-01 0.050306 0.050306 0.050306 0.050306 True
2026-10-01 0.050306 0.050306 0.050306 0.050306 True
2026-11-01 0.050306 0.050306 0.050306 0.050306 True
2026-12-01 0.050306 0.050306 0.050306 0.050306 True
2027-01-01 0.050306 0.050306 0.050306 0.050306 True
2027-02-01 0.050306 0.050306 0.050306 0.050306 True
2027-03-01 0.050306 0.050306 0.050306 0.050306 True
2027-04-01 0.050306 0.050306 0.050306 0.050306 True
2027-05-01 0.050306 0.050306 0.050306 0.050306 True
2027-06-01 0.050306 0.050306 0.050306 0.050306 True
2027-07-01 0.050306 0.050306 0.050306 0.050306 True
2027-08-01 0.050306 0.050306 0.050306 0.050306 True
2027-09-01 0.050306 0.050306 0.050306 0.050306 True
2027-10-01 0.050306 0.050306 0.050306 0.050306 True
2027-11-01 0.050306 0.050306 0.050306 0.050306 True
2027-12-01 0.050306 0.050306 0.050306 0.050306 True
2028-01-01 0.050306 0.050306 0.050306 0.050306 True
2028-02-01 0.050306 0.050306 0.050306 0.050306 True
2028-03-01 0.050306 0.050306 0.050306 0.050306 True
2028-04-01 0.050306 0.050306 0.050306 0.050306 True
2028-05-01 0.050306 0.050306 0.050306 0.050306 True
2028-06-01 0.050306 0.050306 0.050306 0.050306 True
2028-07-01 0.050306 0.050306 0.050306 0.050306 True
2028-08-01 0.050306 0.050306 0.050306 0.050306 True
2028-09-01 0.050306 0.050306 0.050306 0.050306 True
2028-10-01 0.050306 0.050306 0.050306 0.050306 True
2028-11-01 0.050306 0.050306 0.050306 0.050306 True
2028-12-01 0.050306 0.050306 0.050306 0.050306 True
2029-01-01 0.050306 0.050306 0.050306 0.050306 True
2029-02-01 0.050306 0.050306 0.050306 0.050306 True
2029-03-01 0.050306 0.050306 0.050306 0.050306 True
2029-04-01 0.050306 0.050306 0.050306 0.050306 True
2029-05-01 0.050306 0.050306 0.050306 0.050306 True
2029-06-01 0.050306 0.050306 0.050306 0.050306 True
2029-07-01 0.050306 0.050306 0.050306 0.050306 True
2029-08-01 0.050306 0.050306 0.050306 0.050306 True
2029-09-01 0.050306 0.050306 0.050306 0.050306 True
2029-10-01 0.050306 0.050306 0.050306 0.050306 True
2029-11-01 0.050306 0.050306 0.050306 0.050306 True
2029-12-01 0.050306 0.050306 0.050306 0.050306 True
2030-01-01 0.050306 0.050306 0.050306 0.050306 True