{
"cells": [
{
"cell_type": "markdown",
"id": "24af9d0c",
"metadata": {},
"source": [
"### Apply Assumption with Obligor info"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "6390f712",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
Connecting engine server -> https://absbox.org/api/dev\n",
"\n"
],
"text/plain": [
"Connecting engine server -> \u001b[4;94mhttps://absbox.org/api/dev\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"✅Connected, local lib:0.46.5, server:0.50.1\n",
"\n"
],
"text/plain": [
"✅Connected, local li\u001b[1;92mb:0\u001b[0m.\u001b[1;36m46.5\u001b[0m, server:\u001b[1;36m0.50\u001b[0m.\u001b[1;36m1\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from absbox import API,EnginePath\n",
"\n",
"localAPI = API(EnginePath.DEV,check=False,lang='english')"
]
},
{
"cell_type": "markdown",
"id": "f8ea0008",
"metadata": {},
"source": [
"#### Assets with obligor info\n",
"\n",
"Let's setup asset with different tags/ids, just plug a map call `obligor` to the asset\n",
"\n",
" * Asset 1\n",
" \n",
" * ID: \"1\"\n",
" * Tag:[\"A\",\"B\"]\n",
"\n",
" * Asset 2\n",
" \n",
" * ID: \"2\"\n",
" * Tag:[\"C\",\"B\"]"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "2ff8e928",
"metadata": {},
"outputs": [],
"source": [
"ob1 = {\n",
" \"id\":\"1\",\n",
" \"tag\":[\"A\",\"B\"]\n",
"} \n",
"\n",
"ob2 = {\n",
" \"id\":\"2\",\n",
" \"tag\":[\"C\",\"B\"]\n",
"} \n",
"\n",
"\n",
"myAsset1 = [\"Mortgage\"\n",
" ,{\"originBalance\": 12000.0\n",
" ,\"originRate\": [\"fix\",0.045]\n",
" ,\"originTerm\": 120\n",
" ,\"freq\": \"monthly\"\n",
" ,\"type\": \"level\"\n",
" ,\"originDate\": \"2021-02-01\"\n",
" ,\"obligor\":ob1\n",
" }\n",
" ,{\"currentBalance\": 2000.0\n",
" ,\"currentRate\": 0.075\n",
" ,\"remainTerm\": 80\n",
" ,\"status\": \"current\"}]\n",
"myAsset2 = [\"Mortgage\"\n",
" ,{\"originBalance\": 12000.0\n",
" ,\"originRate\": [\"fix\",0.045]\n",
" ,\"originTerm\": 120\n",
" ,\"freq\": \"monthly\"\n",
" ,\"type\": \"level\"\n",
" ,\"originDate\": \"2021-02-01\"\n",
" ,\"obligor\":ob2\n",
" }\n",
" ,{\"currentBalance\": 5000.0\n",
" ,\"currentRate\": 0.075\n",
" ,\"remainTerm\": 80\n",
" ,\"status\": \"current\"}]\n",
"\n",
"myPool = {'assets':[myAsset1,myAsset2],\n",
" 'cutoffDate':\"2022-03-01\"}\n",
"\n",
"ppyAssump = ((\"Mortgage\",None ,{\"CPR\":0.1}, None, None)\n",
" ,None\n",
" ,None)\n",
"defAssump = ((\"Mortgage\",{\"CDR\":0.2} ,None, None, None)\n",
" ,None\n",
" ,None)"
]
},
{
"cell_type": "markdown",
"id": "78719b5d",
"metadata": {},
"source": [
"#### \"ByObligor\"\n",
"\n",
"`ByObligor` is introduced `0.29.x` . It accepts a list of (`condition`, `assumptions` )."
]
},
{
"cell_type": "markdown",
"id": "0cd1c309",
"metadata": {},
"source": [
"#### assumption with obligor id"
]
},
{
"cell_type": "markdown",
"id": "ef6af022",
"metadata": {},
"source": [
"`ById` will catch assets with its `id` in the list and apply assumptions."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "0a778aca",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2024-06-01 | \n",
" 7000.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-07-01 | \n",
" 6915.22 | \n",
" 67.54 | \n",
" 43.64 | \n",
" 17.24 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 67.54 | \n",
" 17.24 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-08-01 | \n",
" 6829.94 | \n",
" 67.79 | \n",
" 43.10 | \n",
" 17.49 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 135.33 | \n",
" 34.73 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-09-01 | \n",
" 6744.73 | \n",
" 68.05 | \n",
" 42.57 | \n",
" 17.16 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 203.38 | \n",
" 51.89 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-10-01 | \n",
" 6660.12 | \n",
" 68.31 | \n",
" 42.04 | \n",
" 16.30 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 271.69 | \n",
" 68.19 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default Recovery Loss \\\n",
"Date \n",
"2024-06-01 7000.00 0.00 0.00 0.00 0 0 0 \n",
"2024-07-01 6915.22 67.54 43.64 17.24 0 0 0 \n",
"2024-08-01 6829.94 67.79 43.10 17.49 0 0 0 \n",
"2024-09-01 6744.73 68.05 42.57 17.16 0 0 0 \n",
"2024-10-01 6660.12 68.31 42.04 16.30 0 0 0 \n",
"\n",
" WAC BorrowerNum PrepayPenalty CumPrincipal CumPrepay \\\n",
"Date \n",
"2024-06-01 0.075 None None 0.00 0.00 \n",
"2024-07-01 0.075 None None 67.54 17.24 \n",
"2024-08-01 0.075 None None 135.33 34.73 \n",
"2024-09-01 0.075 None None 203.38 51.89 \n",
"2024-10-01 0.075 None None 271.69 68.19 \n",
"\n",
" CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2024-06-01 0 0 0 0 \n",
"2024-07-01 0 0 0 0 \n",
"2024-08-01 0 0 0 0 \n",
"2024-09-01 0 0 0 0 \n",
"2024-10-01 0 0 0 0 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AssetLevelAssumption = (\"ByObligor\"\n",
" ,(\"ById\",[\"1\"],ppyAssump)\n",
" #,(\"ByTag\",[\"C\"],\"TagSuperset\",defAssump)\n",
" )\n",
"\n",
"r = localAPI.runPool(myPool\n",
" ,poolAssump=AssetLevelAssumption\n",
" ,read=True)\n",
"\n",
"r['PoolConsol']['flow'].head()"
]
},
{
"cell_type": "markdown",
"id": "c35d4b12",
"metadata": {},
"source": [
"#### assumption with obligor tag\n",
"\n",
"There are couple way to apply assumption with tags:\n",
"\n",
"\n",
"* `TagEq` hit when asset tags equals to tags in the assumption\n",
"\n",
"* `TagSubset` hit when asset tags is a subset of the list\n",
"\n",
"* `TagSuperset` hit when asset tags is a superset of the list\n",
"\n",
"* `TagAny` hit when asset tags has any intersetion with tags in assumption"
]
},
{
"cell_type": "markdown",
"id": "4f51d329",
"metadata": {},
"source": [
"`TagEq`, only match tags Equals to asset's tag. Here ,there is not match"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "9b2035e6",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2024-06-01 | \n",
" 7000.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-07-01 | \n",
" 6932.30 | \n",
" 67.70 | \n",
" 43.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 67.70 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-08-01 | \n",
" 6864.16 | \n",
" 68.14 | \n",
" 43.31 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 135.84 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-09-01 | \n",
" 6795.60 | \n",
" 68.56 | \n",
" 42.89 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 204.40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-10-01 | \n",
" 6726.61 | \n",
" 68.99 | \n",
" 42.46 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 273.39 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default Recovery Loss \\\n",
"Date \n",
"2024-06-01 7000.00 0.00 0.00 0 0 0 0 \n",
"2024-07-01 6932.30 67.70 43.75 0 0 0 0 \n",
"2024-08-01 6864.16 68.14 43.31 0 0 0 0 \n",
"2024-09-01 6795.60 68.56 42.89 0 0 0 0 \n",
"2024-10-01 6726.61 68.99 42.46 0 0 0 0 \n",
"\n",
" WAC BorrowerNum PrepayPenalty CumPrincipal CumPrepay \\\n",
"Date \n",
"2024-06-01 0.075 None None 0.00 0 \n",
"2024-07-01 0.075 None None 67.70 0 \n",
"2024-08-01 0.075 None None 135.84 0 \n",
"2024-09-01 0.075 None None 204.40 0 \n",
"2024-10-01 0.075 None None 273.39 0 \n",
"\n",
" CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2024-06-01 0 0 0 0 \n",
"2024-07-01 0 0 0 0 \n",
"2024-08-01 0 0 0 0 \n",
"2024-09-01 0 0 0 0 \n",
"2024-10-01 0 0 0 0 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AssetLevelAssumption = (\"ByObligor\"\n",
" ,(\"ByTag\",[\"C\"],\"TagEq\",ppyAssump)\n",
" )\n",
"\n",
"r = localAPI.runPool(myPool\n",
" ,poolAssump=AssetLevelAssumption\n",
" ,read=True)\n",
"\n",
"r['PoolConsol']['flow'].head()"
]
},
{
"cell_type": "markdown",
"id": "44584b28",
"metadata": {},
"source": [
"This will match `Asset 2` "
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9c2045bb",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2024-06-01 | \n",
" 7000.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-07-01 | \n",
" 6889.61 | \n",
" 67.28 | \n",
" 43.48 | \n",
" 43.11 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 67.28 | \n",
" 43.11 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-08-01 | \n",
" 6778.59 | \n",
" 67.29 | \n",
" 42.77 | \n",
" 43.73 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 134.57 | \n",
" 86.84 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-09-01 | \n",
" 6668.41 | \n",
" 67.27 | \n",
" 42.09 | \n",
" 42.91 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 201.84 | \n",
" 129.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-10-01 | \n",
" 6560.38 | \n",
" 67.28 | \n",
" 41.41 | \n",
" 40.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 269.12 | \n",
" 170.50 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default Recovery Loss \\\n",
"Date \n",
"2024-06-01 7000.00 0.00 0.00 0.00 0 0 0 \n",
"2024-07-01 6889.61 67.28 43.48 43.11 0 0 0 \n",
"2024-08-01 6778.59 67.29 42.77 43.73 0 0 0 \n",
"2024-09-01 6668.41 67.27 42.09 42.91 0 0 0 \n",
"2024-10-01 6560.38 67.28 41.41 40.75 0 0 0 \n",
"\n",
" WAC BorrowerNum PrepayPenalty CumPrincipal CumPrepay \\\n",
"Date \n",
"2024-06-01 0.075 None None 0.00 0.00 \n",
"2024-07-01 0.075 None None 67.28 43.11 \n",
"2024-08-01 0.075 None None 134.57 86.84 \n",
"2024-09-01 0.075 None None 201.84 129.75 \n",
"2024-10-01 0.075 None None 269.12 170.50 \n",
"\n",
" CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2024-06-01 0 0 0 0 \n",
"2024-07-01 0 0 0 0 \n",
"2024-08-01 0 0 0 0 \n",
"2024-09-01 0 0 0 0 \n",
"2024-10-01 0 0 0 0 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AssetLevelAssumption = (\"ByObligor\"\n",
" ,(\"ByTag\",[\"C\",\"B\"],\"TagEq\",ppyAssump)\n",
" )\n",
"\n",
"r = localAPI.runPool(myPool\n",
" ,poolAssump=AssetLevelAssumption\n",
" ,read=True)\n",
"\n",
"r['PoolConsol']['flow'].head()"
]
},
{
"cell_type": "markdown",
"id": "799523b3",
"metadata": {},
"source": [
"`TagAny` will match if any interesection between match tags and asset tags "
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "374b0206",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2024-06-01 | \n",
" 7000.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-07-01 | \n",
" 6889.61 | \n",
" 67.28 | \n",
" 43.48 | \n",
" 43.11 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 67.28 | \n",
" 43.11 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-08-01 | \n",
" 6778.59 | \n",
" 67.29 | \n",
" 42.77 | \n",
" 43.73 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 134.57 | \n",
" 86.84 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-09-01 | \n",
" 6668.41 | \n",
" 67.27 | \n",
" 42.09 | \n",
" 42.91 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 201.84 | \n",
" 129.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-10-01 | \n",
" 6560.38 | \n",
" 67.28 | \n",
" 41.41 | \n",
" 40.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 269.12 | \n",
" 170.50 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default Recovery Loss \\\n",
"Date \n",
"2024-06-01 7000.00 0.00 0.00 0.00 0 0 0 \n",
"2024-07-01 6889.61 67.28 43.48 43.11 0 0 0 \n",
"2024-08-01 6778.59 67.29 42.77 43.73 0 0 0 \n",
"2024-09-01 6668.41 67.27 42.09 42.91 0 0 0 \n",
"2024-10-01 6560.38 67.28 41.41 40.75 0 0 0 \n",
"\n",
" WAC BorrowerNum PrepayPenalty CumPrincipal CumPrepay \\\n",
"Date \n",
"2024-06-01 0.075 None None 0.00 0.00 \n",
"2024-07-01 0.075 None None 67.28 43.11 \n",
"2024-08-01 0.075 None None 134.57 86.84 \n",
"2024-09-01 0.075 None None 201.84 129.75 \n",
"2024-10-01 0.075 None None 269.12 170.50 \n",
"\n",
" CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2024-06-01 0 0 0 0 \n",
"2024-07-01 0 0 0 0 \n",
"2024-08-01 0 0 0 0 \n",
"2024-09-01 0 0 0 0 \n",
"2024-10-01 0 0 0 0 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AssetLevelAssumption = (\"ByObligor\"\n",
" ,(\"ByTag\",[\"C\"],\"TagAny\",ppyAssump)\n",
" )\n",
"\n",
"r = localAPI.runPool(myPool\n",
" ,poolAssump=AssetLevelAssumption\n",
" ,read=True)\n",
"\n",
"r['PoolConsol']['flow'].head()"
]
},
{
"cell_type": "markdown",
"id": "8a4ff67b",
"metadata": {},
"source": [
"`TagSubset` will match if asset tags is subset of matching tags"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "3b77cdbc",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2024-06-01 | \n",
" 7000.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-07-01 | \n",
" 6932.30 | \n",
" 67.70 | \n",
" 43.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 67.70 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-08-01 | \n",
" 6864.16 | \n",
" 68.14 | \n",
" 43.31 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 135.84 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-09-01 | \n",
" 6795.60 | \n",
" 68.56 | \n",
" 42.89 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 204.40 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-10-01 | \n",
" 6726.61 | \n",
" 68.99 | \n",
" 42.46 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 273.39 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default Recovery Loss \\\n",
"Date \n",
"2024-06-01 7000.00 0.00 0.00 0 0 0 0 \n",
"2024-07-01 6932.30 67.70 43.75 0 0 0 0 \n",
"2024-08-01 6864.16 68.14 43.31 0 0 0 0 \n",
"2024-09-01 6795.60 68.56 42.89 0 0 0 0 \n",
"2024-10-01 6726.61 68.99 42.46 0 0 0 0 \n",
"\n",
" WAC BorrowerNum PrepayPenalty CumPrincipal CumPrepay \\\n",
"Date \n",
"2024-06-01 0.075 None None 0.00 0 \n",
"2024-07-01 0.075 None None 67.70 0 \n",
"2024-08-01 0.075 None None 135.84 0 \n",
"2024-09-01 0.075 None None 204.40 0 \n",
"2024-10-01 0.075 None None 273.39 0 \n",
"\n",
" CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2024-06-01 0 0 0 0 \n",
"2024-07-01 0 0 0 0 \n",
"2024-08-01 0 0 0 0 \n",
"2024-09-01 0 0 0 0 \n",
"2024-10-01 0 0 0 0 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AssetLevelAssumption = (\"ByObligor\"\n",
" ,(\"ByTag\",[\"C\"],\"TagSubset\",ppyAssump)\n",
" )\n",
"\n",
"r = localAPI.runPool(myPool\n",
" ,poolAssump=AssetLevelAssumption\n",
" ,read=True)\n",
"\n",
"r['PoolConsol']['flow'].head()"
]
},
{
"cell_type": "markdown",
"id": "34abb710",
"metadata": {},
"source": [
"[\"C\",\"B\"] is a subset of match tag [\"C\",\"B\"] "
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "fc98af42",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2024-06-01 | \n",
" 7000.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-07-01 | \n",
" 6889.61 | \n",
" 67.28 | \n",
" 43.48 | \n",
" 43.11 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 67.28 | \n",
" 43.11 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-08-01 | \n",
" 6778.59 | \n",
" 67.29 | \n",
" 42.77 | \n",
" 43.73 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 134.57 | \n",
" 86.84 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-09-01 | \n",
" 6668.41 | \n",
" 67.27 | \n",
" 42.09 | \n",
" 42.91 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 201.84 | \n",
" 129.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-10-01 | \n",
" 6560.38 | \n",
" 67.28 | \n",
" 41.41 | \n",
" 40.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 269.12 | \n",
" 170.50 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default Recovery Loss \\\n",
"Date \n",
"2024-06-01 7000.00 0.00 0.00 0.00 0 0 0 \n",
"2024-07-01 6889.61 67.28 43.48 43.11 0 0 0 \n",
"2024-08-01 6778.59 67.29 42.77 43.73 0 0 0 \n",
"2024-09-01 6668.41 67.27 42.09 42.91 0 0 0 \n",
"2024-10-01 6560.38 67.28 41.41 40.75 0 0 0 \n",
"\n",
" WAC BorrowerNum PrepayPenalty CumPrincipal CumPrepay \\\n",
"Date \n",
"2024-06-01 0.075 None None 0.00 0.00 \n",
"2024-07-01 0.075 None None 67.28 43.11 \n",
"2024-08-01 0.075 None None 134.57 86.84 \n",
"2024-09-01 0.075 None None 201.84 129.75 \n",
"2024-10-01 0.075 None None 269.12 170.50 \n",
"\n",
" CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2024-06-01 0 0 0 0 \n",
"2024-07-01 0 0 0 0 \n",
"2024-08-01 0 0 0 0 \n",
"2024-09-01 0 0 0 0 \n",
"2024-10-01 0 0 0 0 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AssetLevelAssumption = (\"ByObligor\"\n",
" ,(\"ByTag\",[\"C\",\"B\"],\"TagSubset\",ppyAssump)\n",
" )\n",
"\n",
"r = localAPI.runPool(myPool\n",
" ,poolAssump=AssetLevelAssumption\n",
" ,read=True)\n",
"\n",
"r['PoolConsol']['flow'].head()"
]
},
{
"cell_type": "markdown",
"id": "05ec0f5b",
"metadata": {},
"source": [
"`TagSuperset` will match if asset tags is superset of matching tags"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "106d5eeb",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2024-06-01 | \n",
" 7000.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-07-01 | \n",
" 6889.61 | \n",
" 67.28 | \n",
" 43.48 | \n",
" 43.11 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 67.28 | \n",
" 43.11 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-08-01 | \n",
" 6778.59 | \n",
" 67.29 | \n",
" 42.77 | \n",
" 43.73 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 134.57 | \n",
" 86.84 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-09-01 | \n",
" 6668.41 | \n",
" 67.27 | \n",
" 42.09 | \n",
" 42.91 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 201.84 | \n",
" 129.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-10-01 | \n",
" 6560.38 | \n",
" 67.28 | \n",
" 41.41 | \n",
" 40.75 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 269.12 | \n",
" 170.50 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default Recovery Loss \\\n",
"Date \n",
"2024-06-01 7000.00 0.00 0.00 0.00 0 0 0 \n",
"2024-07-01 6889.61 67.28 43.48 43.11 0 0 0 \n",
"2024-08-01 6778.59 67.29 42.77 43.73 0 0 0 \n",
"2024-09-01 6668.41 67.27 42.09 42.91 0 0 0 \n",
"2024-10-01 6560.38 67.28 41.41 40.75 0 0 0 \n",
"\n",
" WAC BorrowerNum PrepayPenalty CumPrincipal CumPrepay \\\n",
"Date \n",
"2024-06-01 0.075 None None 0.00 0.00 \n",
"2024-07-01 0.075 None None 67.28 43.11 \n",
"2024-08-01 0.075 None None 134.57 86.84 \n",
"2024-09-01 0.075 None None 201.84 129.75 \n",
"2024-10-01 0.075 None None 269.12 170.50 \n",
"\n",
" CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2024-06-01 0 0 0 0 \n",
"2024-07-01 0 0 0 0 \n",
"2024-08-01 0 0 0 0 \n",
"2024-09-01 0 0 0 0 \n",
"2024-10-01 0 0 0 0 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AssetLevelAssumption = (\"ByObligor\"\n",
" ,(\"ByTag\",[\"C\"],\"TagSuperset\",ppyAssump)\n",
" )\n",
"\n",
"r = localAPI.runPool(myPool\n",
" ,poolAssump=AssetLevelAssumption\n",
" ,read=True)\n",
"\n",
"r['PoolConsol']['flow'].head()"
]
},
{
"cell_type": "markdown",
"id": "56b5416e",
"metadata": {},
"source": [
"`('not',)` will match with negated"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "e2caa44d",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2024-06-01 | \n",
" 7000.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-07-01 | \n",
" 6915.22 | \n",
" 67.54 | \n",
" 43.64 | \n",
" 17.24 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 67.54 | \n",
" 17.24 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-08-01 | \n",
" 6829.94 | \n",
" 67.79 | \n",
" 43.10 | \n",
" 17.49 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 135.33 | \n",
" 34.73 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-09-01 | \n",
" 6744.73 | \n",
" 68.05 | \n",
" 42.57 | \n",
" 17.16 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 203.38 | \n",
" 51.89 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-10-01 | \n",
" 6660.12 | \n",
" 68.31 | \n",
" 42.04 | \n",
" 16.30 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 271.69 | \n",
" 68.19 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default Recovery Loss \\\n",
"Date \n",
"2024-06-01 7000.00 0.00 0.00 0.00 0 0 0 \n",
"2024-07-01 6915.22 67.54 43.64 17.24 0 0 0 \n",
"2024-08-01 6829.94 67.79 43.10 17.49 0 0 0 \n",
"2024-09-01 6744.73 68.05 42.57 17.16 0 0 0 \n",
"2024-10-01 6660.12 68.31 42.04 16.30 0 0 0 \n",
"\n",
" WAC BorrowerNum PrepayPenalty CumPrincipal CumPrepay \\\n",
"Date \n",
"2024-06-01 0.075 None None 0.00 0.00 \n",
"2024-07-01 0.075 None None 67.54 17.24 \n",
"2024-08-01 0.075 None None 135.33 34.73 \n",
"2024-09-01 0.075 None None 203.38 51.89 \n",
"2024-10-01 0.075 None None 271.69 68.19 \n",
"\n",
" CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2024-06-01 0 0 0 0 \n",
"2024-07-01 0 0 0 0 \n",
"2024-08-01 0 0 0 0 \n",
"2024-09-01 0 0 0 0 \n",
"2024-10-01 0 0 0 0 "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AssetLevelAssumption = (\"ByObligor\"\n",
" ,(\"ByTag\",[\"C\"],(\"not\",\"TagSuperset\"),ppyAssump)\n",
" )\n",
"\n",
"r = localAPI.runPool(myPool\n",
" ,poolAssump=AssetLevelAssumption\n",
" ,read=True)\n",
"\n",
"r['PoolConsol']['flow'].head()"
]
},
{
"cell_type": "markdown",
"id": "f2cc3665",
"metadata": {},
"source": [
"#### Asset missed by rule\n",
"\n",
"The `ByDefault` will catch every asset not being captured by previous rules"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b700641c",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xiaoyu/repo/AbsBox/lib/python3.13/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\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Balance | \n",
" Principal | \n",
" Interest | \n",
" Prepayment | \n",
" Default | \n",
" Recovery | \n",
" Loss | \n",
" WAC | \n",
" BorrowerNum | \n",
" PrepayPenalty | \n",
" CumPrincipal | \n",
" CumPrepay | \n",
" CumDelinq | \n",
" CumDefault | \n",
" CumRecovery | \n",
" CumLoss | \n",
"
\n",
" \n",
" | Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2024-06-01 | \n",
" 7000.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 0.00 | \n",
" 0.00 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-07-01 | \n",
" 6872.53 | \n",
" 67.12 | \n",
" 43.37 | \n",
" 60.35 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 67.12 | \n",
" 60.35 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-08-01 | \n",
" 6744.37 | \n",
" 66.94 | \n",
" 42.56 | \n",
" 61.22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 134.06 | \n",
" 121.57 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-09-01 | \n",
" 6617.54 | \n",
" 66.76 | \n",
" 41.77 | \n",
" 60.07 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 200.82 | \n",
" 181.64 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2024-10-01 | \n",
" 6493.89 | \n",
" 66.60 | \n",
" 40.99 | \n",
" 57.05 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0.075 | \n",
" None | \n",
" None | \n",
" 267.42 | \n",
" 238.69 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Balance Principal Interest Prepayment Default Recovery Loss \\\n",
"Date \n",
"2024-06-01 7000.00 0.00 0.00 0.00 0 0 0 \n",
"2024-07-01 6872.53 67.12 43.37 60.35 0 0 0 \n",
"2024-08-01 6744.37 66.94 42.56 61.22 0 0 0 \n",
"2024-09-01 6617.54 66.76 41.77 60.07 0 0 0 \n",
"2024-10-01 6493.89 66.60 40.99 57.05 0 0 0 \n",
"\n",
" WAC BorrowerNum PrepayPenalty CumPrincipal CumPrepay \\\n",
"Date \n",
"2024-06-01 0.075 None None 0.00 0.00 \n",
"2024-07-01 0.075 None None 67.12 60.35 \n",
"2024-08-01 0.075 None None 134.06 121.57 \n",
"2024-09-01 0.075 None None 200.82 181.64 \n",
"2024-10-01 0.075 None None 267.42 238.69 \n",
"\n",
" CumDelinq CumDefault CumRecovery CumLoss \n",
"Date \n",
"2024-06-01 0 0 0 0 \n",
"2024-07-01 0 0 0 0 \n",
"2024-08-01 0 0 0 0 \n",
"2024-09-01 0 0 0 0 \n",
"2024-10-01 0 0 0 0 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AssetLevelAssumption = (\"ByObligor\"\n",
" ,(\"ByDefault\",ppyAssump)\n",
" )\n",
"\n",
"r = localAPI.runPool(myPool\n",
" ,poolAssump=AssetLevelAssumption\n",
" ,read=True)\n",
"\n",
"r['PoolConsol']['flow'].head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3a42fa41-39c8-4e6c-8766-3f81f3aacd99",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}