diff --git a/Salary_Analytics_Task.ipynb b/Salary_Analytics_Task.ipynb
new file mode 100644
index 0000000..319bbce
--- /dev/null
+++ b/Salary_Analytics_Task.ipynb
@@ -0,0 +1,5091 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "provenance": [],
+ "collapsed_sections": [
+ "pvZF9BMSzAQ7"
+ ]
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ },
+ "language_info": {
+ "name": "python"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## 1. Setup and Data Connection"
+ ],
+ "metadata": {
+ "id": "3y-QjCv8KJoo"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### 1.1 Database Connection Setup"
+ ],
+ "metadata": {
+ "id": "pvZF9BMSzAQ7"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "XuJLa6e8BKn5",
+ "outputId": "209a2064-b797-4ccb-bbb0-8cc14dcb8eb1"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.0/3.0 MB\u001b[0m \u001b[31m15.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install sqlalchemy psycopg2-binary -qq"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from sqlalchemy import create_engine, text\n",
+ "\n",
+ "# database credentials\n",
+ "DB_USER = \"salaryloan\"\n",
+ "DB_PASSWORD = \"salaryloan\"\n",
+ "DB_HOST = \"dev-data.simbrellang.net\"\n",
+ "DB_PORT = \"10532\"\n",
+ "DB_NAME = \"salaryloan\"\n",
+ "\n",
+ "# SQLAlchemy connection URL\n",
+ "DATABASE_URL = f\"postgresql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}\"\n",
+ "\n",
+ "# Create the database engine\n",
+ "engine = create_engine(DATABASE_URL)\n",
+ "\n",
+ "# Test the connection\n",
+ "try:\n",
+ " with engine.connect() as conn:\n",
+ " result = conn.execute(text(\"SELECT version();\"))\n",
+ " print(\"Connected successfully!\")\n",
+ " print(result.fetchone()) # Print PostgreSQL version\n",
+ "except Exception as e:\n",
+ " print(\"Error connecting to database:\", e)\n"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "B9tkEDTDBNQW",
+ "outputId": "a7986644-80e4-488f-97ae-0d9d9dee3eb5"
+ },
+ "execution_count": 2,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Connected successfully!\n",
+ "('PostgreSQL 16.8 (Ubuntu 16.8-0ubuntu0.24.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, 64-bit',)\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### 1.2 Data Loading\n"
+ ],
+ "metadata": {
+ "id": "gWncpI3TzU1t"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore')\n",
+ "import calendar\n",
+ "from datetime import datetime\n",
+ "\n",
+ "table_name = \"customer_account_transaction_hx\"\n",
+ "\n",
+ "# Load data into a Pandas DataFrame\n",
+ "df = pd.read_sql(f\"SELECT * FROM {table_name}\", engine)\n",
+ "\n",
+ "# Display the first few rows\n",
+ "display(df.head(20))"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "id": "XTThey6EB0U1",
+ "outputId": "fc3db25e-e988-4e42-fe6a-ceca293b8bfa"
+ },
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " id accountid trx_start_date trx_end_date amount d1 d2 d3 \\\n",
+ "0 1335300 1945204013 2024-06-12 2024-06-12 54.0 T BI D \n",
+ "1 1335301 1945204013 2024-06-16 2024-06-16 52500.0 T BI C \n",
+ "2 1335302 1945204013 2024-06-15 2024-06-15 505.0 T BI D \n",
+ "3 1335303 1945204013 2024-06-17 2024-06-17 5350.0 T CI C \n",
+ "4 1335304 1945204013 2024-06-13 2024-06-13 10000.0 T CI D \n",
+ "5 1335305 2184939014 2024-06-17 2024-06-17 45150.0 T CI C \n",
+ "6 1335306 2184939014 2024-06-16 2024-06-16 2160.0 T CI C \n",
+ "7 1335307 2184939014 2024-06-13 2024-06-13 55640.0 T BI C \n",
+ "8 1335308 2184939014 2024-06-12 2024-06-12 53.5 T BI D \n",
+ "9 1335309 2184939014 2024-06-12 2024-06-12 10100.0 T CI D \n",
+ "10 1335310 2184939014 2024-06-14 2024-06-14 20800.0 T CI D \n",
+ "11 1335311 2184939014 2024-06-12 2024-06-12 21600.0 T CI D \n",
+ "12 1335312 2184939014 2024-06-15 2024-06-15 21000.0 T CI D \n",
+ "13 1335313 1757258011 2024-06-13 2024-06-13 104.0 T CI D \n",
+ "14 1335314 1757258011 2024-06-15 2024-06-15 330.0 T CI D \n",
+ "15 1335315 1757258011 2024-06-16 2024-06-16 107.0 T CI D \n",
+ "16 1335316 1757258011 2024-06-13 2024-06-13 105.0 T CI D \n",
+ "17 1335317 1757258011 2024-06-15 2024-06-15 108.0 T CI D \n",
+ "18 1335318 1757258011 2024-06-13 2024-06-13 109.0 T CI D \n",
+ "19 1335319 1757258011 2024-06-15 2024-06-15 106.0 T CI D \n",
+ "\n",
+ " description d4 \n",
+ "0 CBN Stamp Duty Charge 1945204 \n",
+ "1 MTHLY ALLO MAR 2018. 1945204 \n",
+ "2 WELFARE MAR. 2018 1945204 \n",
+ "3 Online : blessfyne 1945204 \n",
+ "4 ATM WD @ FCMB Trans-Amadi 2 ATM1PortHarcourt RVNG 1945204 \n",
+ "5 web:abdulai 2184939 \n",
+ "6 CSH DEPOSIT BY : ROTIMI OLUWATOBI 2184939 \n",
+ "7 MTHLY ALLO MAR 2018. 2184939 \n",
+ "8 CBN Stamp Duty Charge 2184939 \n",
+ "9 ATM WD @ FCMB ONIPANU-2 IKORODU RD, LAGOS LANG 2184939 \n",
+ "10 368837107 BILL PAY @ 12141451/2184939014 2184939 \n",
+ "11 ATM WD @ FCMB ONIPANU-3 IKORODU RD, LAGOS LANG 2184939 \n",
+ "12 ATM WD @ FCMB ONIPANU-3 IKORODU RD, LAGOS LANG 2184939 \n",
+ "13 QR/Q10009078250/Airtime Top-up/2347037279970 1757258 \n",
+ "14 1019323435/WEB PURCHASE @ 3IWPDNRB/ww.nairabet... 1757258 \n",
+ "15 QR/Q10009079949/Airtime Top-up/2347037279970 1757258 \n",
+ "16 QR/Q10009036640/Airtime Top-up/2347037279970 1757258 \n",
+ "17 QR/Q10008928860/Airtime Top-up/2347037279970 1757258 \n",
+ "18 1013759550/WEB PURCHASE @ 3IWPDNRB/ww.nairabet... 1757258 \n",
+ "19 QR/Q10008860487/Airtime Top-up/2347037279970 1757258 "
+ ],
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " id | \n",
+ " accountid | \n",
+ " trx_start_date | \n",
+ " trx_end_date | \n",
+ " amount | \n",
+ " d1 | \n",
+ " d2 | \n",
+ " d3 | \n",
+ " description | \n",
+ " d4 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1335300 | \n",
+ " 1945204013 | \n",
+ " 2024-06-12 | \n",
+ " 2024-06-12 | \n",
+ " 54.0 | \n",
+ " T | \n",
+ " BI | \n",
+ " D | \n",
+ " CBN Stamp Duty Charge | \n",
+ " 1945204 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1335301 | \n",
+ " 1945204013 | \n",
+ " 2024-06-16 | \n",
+ " 2024-06-16 | \n",
+ " 52500.0 | \n",
+ " T | \n",
+ " BI | \n",
+ " C | \n",
+ " MTHLY ALLO MAR 2018. | \n",
+ " 1945204 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1335302 | \n",
+ " 1945204013 | \n",
+ " 2024-06-15 | \n",
+ " 2024-06-15 | \n",
+ " 505.0 | \n",
+ " T | \n",
+ " BI | \n",
+ " D | \n",
+ " WELFARE MAR. 2018 | \n",
+ " 1945204 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1335303 | \n",
+ " 1945204013 | \n",
+ " 2024-06-17 | \n",
+ " 2024-06-17 | \n",
+ " 5350.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " Online : blessfyne | \n",
+ " 1945204 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1335304 | \n",
+ " 1945204013 | \n",
+ " 2024-06-13 | \n",
+ " 2024-06-13 | \n",
+ " 10000.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " ATM WD @ FCMB Trans-Amadi 2 ATM1PortHarcourt RVNG | \n",
+ " 1945204 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 1335305 | \n",
+ " 2184939014 | \n",
+ " 2024-06-17 | \n",
+ " 2024-06-17 | \n",
+ " 45150.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " web:abdulai | \n",
+ " 2184939 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 1335306 | \n",
+ " 2184939014 | \n",
+ " 2024-06-16 | \n",
+ " 2024-06-16 | \n",
+ " 2160.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " CSH DEPOSIT BY : ROTIMI OLUWATOBI | \n",
+ " 2184939 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 1335307 | \n",
+ " 2184939014 | \n",
+ " 2024-06-13 | \n",
+ " 2024-06-13 | \n",
+ " 55640.0 | \n",
+ " T | \n",
+ " BI | \n",
+ " C | \n",
+ " MTHLY ALLO MAR 2018. | \n",
+ " 2184939 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 1335308 | \n",
+ " 2184939014 | \n",
+ " 2024-06-12 | \n",
+ " 2024-06-12 | \n",
+ " 53.5 | \n",
+ " T | \n",
+ " BI | \n",
+ " D | \n",
+ " CBN Stamp Duty Charge | \n",
+ " 2184939 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 1335309 | \n",
+ " 2184939014 | \n",
+ " 2024-06-12 | \n",
+ " 2024-06-12 | \n",
+ " 10100.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " ATM WD @ FCMB ONIPANU-2 IKORODU RD, LAGOS LANG | \n",
+ " 2184939 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " 1335310 | \n",
+ " 2184939014 | \n",
+ " 2024-06-14 | \n",
+ " 2024-06-14 | \n",
+ " 20800.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " 368837107 BILL PAY @ 12141451/2184939014 | \n",
+ " 2184939 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " 1335311 | \n",
+ " 2184939014 | \n",
+ " 2024-06-12 | \n",
+ " 2024-06-12 | \n",
+ " 21600.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " ATM WD @ FCMB ONIPANU-3 IKORODU RD, LAGOS LANG | \n",
+ " 2184939 | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " 1335312 | \n",
+ " 2184939014 | \n",
+ " 2024-06-15 | \n",
+ " 2024-06-15 | \n",
+ " 21000.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " ATM WD @ FCMB ONIPANU-3 IKORODU RD, LAGOS LANG | \n",
+ " 2184939 | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " 1335313 | \n",
+ " 1757258011 | \n",
+ " 2024-06-13 | \n",
+ " 2024-06-13 | \n",
+ " 104.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " QR/Q10009078250/Airtime Top-up/2347037279970 | \n",
+ " 1757258 | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " 1335314 | \n",
+ " 1757258011 | \n",
+ " 2024-06-15 | \n",
+ " 2024-06-15 | \n",
+ " 330.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " 1019323435/WEB PURCHASE @ 3IWPDNRB/ww.nairabet... | \n",
+ " 1757258 | \n",
+ "
\n",
+ " \n",
+ " | 15 | \n",
+ " 1335315 | \n",
+ " 1757258011 | \n",
+ " 2024-06-16 | \n",
+ " 2024-06-16 | \n",
+ " 107.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " QR/Q10009079949/Airtime Top-up/2347037279970 | \n",
+ " 1757258 | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " 1335316 | \n",
+ " 1757258011 | \n",
+ " 2024-06-13 | \n",
+ " 2024-06-13 | \n",
+ " 105.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " QR/Q10009036640/Airtime Top-up/2347037279970 | \n",
+ " 1757258 | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " 1335317 | \n",
+ " 1757258011 | \n",
+ " 2024-06-15 | \n",
+ " 2024-06-15 | \n",
+ " 108.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " QR/Q10008928860/Airtime Top-up/2347037279970 | \n",
+ " 1757258 | \n",
+ "
\n",
+ " \n",
+ " | 18 | \n",
+ " 1335318 | \n",
+ " 1757258011 | \n",
+ " 2024-06-13 | \n",
+ " 2024-06-13 | \n",
+ " 109.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " 1013759550/WEB PURCHASE @ 3IWPDNRB/ww.nairabet... | \n",
+ " 1757258 | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " 1335319 | \n",
+ " 1757258011 | \n",
+ " 2024-06-15 | \n",
+ " 2024-06-15 | \n",
+ " 106.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " D | \n",
+ " QR/Q10008860487/Airtime Top-up/2347037279970 | \n",
+ " 1757258 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "summary": "{\n \"name\": \"display(df\",\n \"rows\": 20,\n \"fields\": [\n {\n \"column\": \"id\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 5,\n \"min\": 1335300,\n \"max\": 1335319,\n \"num_unique_values\": 20,\n \"samples\": [\n 1335300,\n 1335317,\n 1335315\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"accountid\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"1945204013\",\n \"2184939014\",\n \"1757258011\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"trx_start_date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2024-06-12 00:00:00\",\n \"max\": \"2024-06-17 00:00:00\",\n \"num_unique_values\": 6,\n \"samples\": [\n \"2024-06-12 00:00:00\",\n \"2024-06-16 00:00:00\",\n \"2024-06-14 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"trx_end_date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2024-06-12 00:00:00\",\n \"max\": \"2024-06-17 00:00:00\",\n \"num_unique_values\": 6,\n \"samples\": [\n \"2024-06-12 00:00:00\",\n \"2024-06-16 00:00:00\",\n \"2024-06-14 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"amount\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 18415.714645431864,\n \"min\": 53.5,\n \"max\": 55640.0,\n \"num_unique_values\": 20,\n \"samples\": [\n 54.0,\n 108.0,\n 107.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"d1\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"T\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"d2\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"CI\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"d3\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"C\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"description\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 17,\n \"samples\": [\n \"CBN Stamp Duty Charge\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"d4\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"1945204\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### 1.3 Date Features Extraction"
+ ],
+ "metadata": {
+ "id": "Ej3ING67xp_M"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df[\"trx_start_date\"] = pd.to_datetime(df[\"trx_start_date\"])\n",
+ "df[\"year\"] = df[\"trx_start_date\"].dt.year\n",
+ "df[\"month\"] = df[\"trx_start_date\"].dt.month\n",
+ "df[\"day_of_month\"] = df[\"trx_start_date\"].dt.day"
+ ],
+ "metadata": {
+ "id": "ldpyVrNkB5mu"
+ },
+ "execution_count": 7,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## 2. Salary Transactions Identification Heuristics\n",
+ "**Heuristic Design Principles**\n",
+ "\n",
+ "**Meta Criteria:** Salary should be a credit, denoted as `\"C\"` in the `d3` column.\n",
+ "1. Mention of salary in the description. **Keywords**:\"salary\" \"payroll\" \"income\"\n",
+ "2. Investigate patterns in the confirmed salary transactions.\n",
+ "\n",
+ " **a. Time Period:** Significant difference in money received in \"salary_periods\" and remainder of the months.\n",
+ "\n",
+ " **b. Transaction types:** See if there are patterns in transaction type for verified salary transactions agianst others.\n",
+ "\n",
+ "3. Consistently recieve an outlier(large) but similar credit amount of money every month.\n",
+ "\n"
+ ],
+ "metadata": {
+ "id": "HMsJe_x6qEjK"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### H1: Salary in Description"
+ ],
+ "metadata": {
+ "id": "J2yi-nDm2TJJ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# look for transactions with salary in the description\n",
+ "df[\"H1\"] =0\n",
+ "\n",
+ "df.loc[((df[\"description\"].str.contains(\"salary\", case=False)) & (df[\"d3\"]== 'C')), \"H1\"] = 1\n",
+ "\n",
+ "salary_description_transactions = df[df[\"H1\"]==1]\n",
+ "\n",
+ "display(salary_description_transactions.head(20))\n",
+ "\n",
+ "print(f\"Identified {len(salary_description_transactions)} salary-like transactions\")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 766
+ },
+ "id": "knQcLweriJEQ",
+ "outputId": "2a651385-7e60-44aa-f692-a4baf1032544"
+ },
+ "execution_count": 9,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " id accountid trx_start_date trx_end_date amount d1 d2 d3 \\\n",
+ "1434 1336731 2083803018 2024-06-11 2024-06-11 39844.3416 T CI C \n",
+ "3939 1525237 2241150015 2024-06-14 2024-06-14 45900.0000 T BI C \n",
+ "6195 1341485 1411215013 2024-06-15 2024-06-15 111116.0052 T CI C \n",
+ "8416 1343700 1269970016 2024-06-16 2024-06-16 43261.0632 T CI C \n",
+ "10151 1345432 1947900010 2024-06-15 2024-06-15 9048.0000 T CI C \n",
+ "10831 1346111 1218765016 2024-06-12 2024-06-12 40457.1054 T CI C \n",
+ "10977 1346257 1275044015 2024-06-13 2024-06-13 135318.8824 T CI C \n",
+ "11764 1347043 2253348011 2024-06-14 2024-06-14 25721.5286 T CI C \n",
+ "11805 1347084 1957221017 2024-06-12 2024-06-12 11391.1928 T CI C \n",
+ "12956 1348237 1155907018 2024-06-12 2024-06-12 81146.8245 T CI C \n",
+ "14929 1350209 1543039017 2024-06-07 2024-06-07 47321.8595 T I C \n",
+ "15470 1350750 2131439013 2024-06-12 2024-06-12 118615.8665 T CI C \n",
+ "15473 1350753 2131439013 2024-06-14 2024-06-14 115290.1880 T CI C \n",
+ "15543 1350823 1516029010 2024-06-16 2024-06-16 146963.9806 T CI C \n",
+ "16794 1352075 1989415019 2024-06-14 2024-06-14 126280.1904 T CI C \n",
+ "17771 1353052 1998110015 2024-06-12 2024-06-12 13851.0000 T CI C \n",
+ "18041 1353322 1259062019 2024-06-10 2024-06-10 27510.5322 T CI C \n",
+ "19668 1354949 2020313017 2024-06-10 2024-06-10 5500.0000 T CI C \n",
+ "22009 1357281 2117066019 2024-06-13 2024-06-13 42059.3670 T CI C \n",
+ "25213 1360480 0897678011 2024-06-10 2024-06-10 55141.2663 T CI C \n",
+ "\n",
+ " description d4 year \\\n",
+ "1434 IMSG MARCH SALARY 2083803 2024 \n",
+ "3939 SALARY PAYMENTS 2241150 2024 \n",
+ "6195 IMSG MARCH SALARY 1411215 2024 \n",
+ "8416 IMSG MARCH 2018 SALARY 1269970 2024 \n",
+ "10151 SALARY MAR. 2018 1947900 2024 \n",
+ "10831 IMSG MARCH 2018 SALARY 1218765 2024 \n",
+ "10977 106/MAR2018 Salary/3152861/ LANG 1275044 2024 \n",
+ "11764 N-10022682239/OYIGBO LOC-FEB 2018 SALARY - OYI 2253348 2024 \n",
+ "11805 MARCH 2018 SALARY BAPTIST HIGH SCH 11 1957221 2024 \n",
+ "12956 IMSG MARCH SALARY 1155907 2024 \n",
+ "14929 FEB SALARY=DESOPADEC 1543039 2024 \n",
+ "15470 R-215105337/UNIVE:JANUARY2018NETSALARY:CBN:215 2131439 2024 \n",
+ "15473 R-215063626/UNIVE:DECEMBER2017NETSALARY:CBN:21 2131439 2024 \n",
+ "15543 N-10022787984/MAR 18 Salary:CITI:: 1516029 2024 \n",
+ "16794 R-214329984/TRANS:SALARY:CBN:88829762-65070-:2 1989415 2024 \n",
+ "17771 STAFF SALARY MAR 2018 1998110 2024 \n",
+ "18041 COP08DPSS960249;54469074;NSUK FEB 2018 SALARY-NSU 1259062 2024 \n",
+ "19668 web:Upfront salary payment 2020313 2024 \n",
+ "22009 IMSG MARCH 2018 SALARY 2117066 2024 \n",
+ "25213 IMSG MARCH SALARY 0897678 2024 \n",
+ "\n",
+ " month day_of_month H1 \n",
+ "1434 6 11 1 \n",
+ "3939 6 14 1 \n",
+ "6195 6 15 1 \n",
+ "8416 6 16 1 \n",
+ "10151 6 15 1 \n",
+ "10831 6 12 1 \n",
+ "10977 6 13 1 \n",
+ "11764 6 14 1 \n",
+ "11805 6 12 1 \n",
+ "12956 6 12 1 \n",
+ "14929 6 7 1 \n",
+ "15470 6 12 1 \n",
+ "15473 6 14 1 \n",
+ "15543 6 16 1 \n",
+ "16794 6 14 1 \n",
+ "17771 6 12 1 \n",
+ "18041 6 10 1 \n",
+ "19668 6 10 1 \n",
+ "22009 6 13 1 \n",
+ "25213 6 10 1 "
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " id | \n",
+ " accountid | \n",
+ " trx_start_date | \n",
+ " trx_end_date | \n",
+ " amount | \n",
+ " d1 | \n",
+ " d2 | \n",
+ " d3 | \n",
+ " description | \n",
+ " d4 | \n",
+ " year | \n",
+ " month | \n",
+ " day_of_month | \n",
+ " H1 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1434 | \n",
+ " 1336731 | \n",
+ " 2083803018 | \n",
+ " 2024-06-11 | \n",
+ " 2024-06-11 | \n",
+ " 39844.3416 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " IMSG MARCH SALARY | \n",
+ " 2083803 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 11 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 3939 | \n",
+ " 1525237 | \n",
+ " 2241150015 | \n",
+ " 2024-06-14 | \n",
+ " 2024-06-14 | \n",
+ " 45900.0000 | \n",
+ " T | \n",
+ " BI | \n",
+ " C | \n",
+ " SALARY PAYMENTS | \n",
+ " 2241150 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 14 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 6195 | \n",
+ " 1341485 | \n",
+ " 1411215013 | \n",
+ " 2024-06-15 | \n",
+ " 2024-06-15 | \n",
+ " 111116.0052 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " IMSG MARCH SALARY | \n",
+ " 1411215 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 15 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 8416 | \n",
+ " 1343700 | \n",
+ " 1269970016 | \n",
+ " 2024-06-16 | \n",
+ " 2024-06-16 | \n",
+ " 43261.0632 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " IMSG MARCH 2018 SALARY | \n",
+ " 1269970 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 16 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 10151 | \n",
+ " 1345432 | \n",
+ " 1947900010 | \n",
+ " 2024-06-15 | \n",
+ " 2024-06-15 | \n",
+ " 9048.0000 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " SALARY MAR. 2018 | \n",
+ " 1947900 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 15 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 10831 | \n",
+ " 1346111 | \n",
+ " 1218765016 | \n",
+ " 2024-06-12 | \n",
+ " 2024-06-12 | \n",
+ " 40457.1054 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " IMSG MARCH 2018 SALARY | \n",
+ " 1218765 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 12 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 10977 | \n",
+ " 1346257 | \n",
+ " 1275044015 | \n",
+ " 2024-06-13 | \n",
+ " 2024-06-13 | \n",
+ " 135318.8824 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " 106/MAR2018 Salary/3152861/ LANG | \n",
+ " 1275044 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 13 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 11764 | \n",
+ " 1347043 | \n",
+ " 2253348011 | \n",
+ " 2024-06-14 | \n",
+ " 2024-06-14 | \n",
+ " 25721.5286 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " N-10022682239/OYIGBO LOC-FEB 2018 SALARY - OYI | \n",
+ " 2253348 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 14 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 11805 | \n",
+ " 1347084 | \n",
+ " 1957221017 | \n",
+ " 2024-06-12 | \n",
+ " 2024-06-12 | \n",
+ " 11391.1928 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " MARCH 2018 SALARY BAPTIST HIGH SCH 11 | \n",
+ " 1957221 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 12 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 12956 | \n",
+ " 1348237 | \n",
+ " 1155907018 | \n",
+ " 2024-06-12 | \n",
+ " 2024-06-12 | \n",
+ " 81146.8245 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " IMSG MARCH SALARY | \n",
+ " 1155907 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 12 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 14929 | \n",
+ " 1350209 | \n",
+ " 1543039017 | \n",
+ " 2024-06-07 | \n",
+ " 2024-06-07 | \n",
+ " 47321.8595 | \n",
+ " T | \n",
+ " I | \n",
+ " C | \n",
+ " FEB SALARY=DESOPADEC | \n",
+ " 1543039 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 7 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 15470 | \n",
+ " 1350750 | \n",
+ " 2131439013 | \n",
+ " 2024-06-12 | \n",
+ " 2024-06-12 | \n",
+ " 118615.8665 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " R-215105337/UNIVE:JANUARY2018NETSALARY:CBN:215 | \n",
+ " 2131439 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 12 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 15473 | \n",
+ " 1350753 | \n",
+ " 2131439013 | \n",
+ " 2024-06-14 | \n",
+ " 2024-06-14 | \n",
+ " 115290.1880 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " R-215063626/UNIVE:DECEMBER2017NETSALARY:CBN:21 | \n",
+ " 2131439 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 14 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 15543 | \n",
+ " 1350823 | \n",
+ " 1516029010 | \n",
+ " 2024-06-16 | \n",
+ " 2024-06-16 | \n",
+ " 146963.9806 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " N-10022787984/MAR 18 Salary:CITI:: | \n",
+ " 1516029 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 16 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 16794 | \n",
+ " 1352075 | \n",
+ " 1989415019 | \n",
+ " 2024-06-14 | \n",
+ " 2024-06-14 | \n",
+ " 126280.1904 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " R-214329984/TRANS:SALARY:CBN:88829762-65070-:2 | \n",
+ " 1989415 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 14 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 17771 | \n",
+ " 1353052 | \n",
+ " 1998110015 | \n",
+ " 2024-06-12 | \n",
+ " 2024-06-12 | \n",
+ " 13851.0000 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " STAFF SALARY MAR 2018 | \n",
+ " 1998110 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 12 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 18041 | \n",
+ " 1353322 | \n",
+ " 1259062019 | \n",
+ " 2024-06-10 | \n",
+ " 2024-06-10 | \n",
+ " 27510.5322 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " COP08DPSS960249;54469074;NSUK FEB 2018 SALARY-NSU | \n",
+ " 1259062 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 10 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 19668 | \n",
+ " 1354949 | \n",
+ " 2020313017 | \n",
+ " 2024-06-10 | \n",
+ " 2024-06-10 | \n",
+ " 5500.0000 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " web:Upfront salary payment | \n",
+ " 2020313 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 10 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 22009 | \n",
+ " 1357281 | \n",
+ " 2117066019 | \n",
+ " 2024-06-13 | \n",
+ " 2024-06-13 | \n",
+ " 42059.3670 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " IMSG MARCH 2018 SALARY | \n",
+ " 2117066 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 13 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 25213 | \n",
+ " 1360480 | \n",
+ " 0897678011 | \n",
+ " 2024-06-10 | \n",
+ " 2024-06-10 | \n",
+ " 55141.2663 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " IMSG MARCH SALARY | \n",
+ " 0897678 | \n",
+ " 2024 | \n",
+ " 6 | \n",
+ " 10 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "summary": "{\n \"name\": \"print(f\\\"Identified {len(salary_description_transactions)} salary-like transactions\\\")\",\n \"rows\": 20,\n \"fields\": [\n {\n \"column\": \"id\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 39725,\n \"min\": 1336731,\n \"max\": 1525237,\n \"num_unique_values\": 20,\n \"samples\": [\n 1336731,\n 1354949,\n 1353052\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"accountid\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 19,\n \"samples\": [\n \"2083803018\",\n \"1218765016\",\n \"2131439013\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"trx_start_date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2024-06-07 00:00:00\",\n \"max\": \"2024-06-16 00:00:00\",\n \"num_unique_values\": 8,\n \"samples\": [\n \"2024-06-14 00:00:00\",\n \"2024-06-13 00:00:00\",\n \"2024-06-11 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"trx_end_date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2024-06-07 00:00:00\",\n \"max\": \"2024-06-16 00:00:00\",\n \"num_unique_values\": 8,\n \"samples\": [\n \"2024-06-14 00:00:00\",\n \"2024-06-13 00:00:00\",\n \"2024-06-11 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"amount\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 46542.19951227044,\n \"min\": 5500.0,\n \"max\": 146963.9806,\n \"num_unique_values\": 20,\n \"samples\": [\n 39844.3416,\n 5500.0,\n 13851.000000000002\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"d1\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"T\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"d2\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"CI\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"d3\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"C\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"description\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 15,\n \"samples\": [\n \"R-215063626/UNIVE:DECEMBER2017NETSALARY:CBN:21\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"d4\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 19,\n \"samples\": [\n \"2083803\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"year\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 1,\n \"samples\": [\n 2024\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"month\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 1,\n \"samples\": [\n 6\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"day_of_month\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 8,\n \"samples\": [\n 14\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"H1\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 1,\n \"max\": 1,\n \"num_unique_values\": 1,\n \"samples\": [\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Identified 4228 salary-like transactions\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "NB: Some accounts receive multiple salaries in the same month. e.g accountid, \"0551610021\" which received 28 salary described transactions within the space of 12 months. The amounts were not always the same, meaning it wasn't duplicate/bounced transactions, it was infact multi-salaries. Current fix: Use max salary received in a month, to get the monthly received salary for the month.\n",
+ "Alternative: Sum all salries in a month."
+ ],
+ "metadata": {
+ "id": "_6UsJNKUaGZL"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### H2: Investigate patterns in transaction types and dates for known salary transactions."
+ ],
+ "metadata": {
+ "id": "Jw4vszdwdc78"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "#### Days of Month"
+ ],
+ "metadata": {
+ "id": "BT7H2p8p4gLr"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Calculate and display frequency of salary payments by day of month\n",
+ "print(\"Salary Payment Day Frequency:\")\n",
+ "print(salary_description_transactions.day_of_month.value_counts())\n",
+ "\n",
+ "# Create histogram to visualize distribution of payment days\n",
+ "ax = salary_description_transactions.day_of_month.plot(\n",
+ " kind=\"hist\",\n",
+ " bins=31,\n",
+ " edgecolor='black',\n",
+ " figsize=(10, 6),\n",
+ " title=\"Distribution of Salary Payment Days\\n(Frequency by Day of Month)\",\n",
+ " xlabel=\"Day of Month\",\n",
+ " ylabel=\"Number of Salary Payments\",\n",
+ " color='#1f77b4'\n",
+ ")\n",
+ "\n",
+ "# Add grid for better readability\n",
+ "ax.grid(axis='y', alpha=0.3)\n",
+ "\n",
+ "\n",
+ "# Calculate percentage of salaries paid in top 7 most common days\n",
+ "top_days_coverage = (\n",
+ " salary_description_transactions.day_of_month\n",
+ " .value_counts()\n",
+ " .nlargest(7)\n",
+ " .sum() / salary_description_transactions.shape[0]\n",
+ ") * 100 # Convert to percentage\n",
+ "\n",
+ "print(f\"\\nTop 7 payment days account for {top_days_coverage:.1f}% of all salary transactions\")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "id": "3zTsFcAmn8RU",
+ "outputId": "ac4bc872-1bdc-4668-d0e7-25ec2a1dcc73"
+ },
+ "execution_count": 10,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Salary Payment Day Frequency:\n",
+ "day_of_month\n",
+ "20 226\n",
+ "21 206\n",
+ "19 194\n",
+ "18 193\n",
+ "22 180\n",
+ "17 174\n",
+ "23 163\n",
+ "16 146\n",
+ "25 146\n",
+ "24 144\n",
+ "15 142\n",
+ "13 135\n",
+ "12 133\n",
+ "29 133\n",
+ "11 129\n",
+ "28 126\n",
+ "2 126\n",
+ "14 125\n",
+ "6 125\n",
+ "3 123\n",
+ "30 121\n",
+ "7 119\n",
+ "27 115\n",
+ "10 112\n",
+ "5 112\n",
+ "1 111\n",
+ "9 108\n",
+ "26 107\n",
+ "4 105\n",
+ "8 97\n",
+ "31 52\n",
+ "Name: count, dtype: int64\n",
+ "\n",
+ "Top 7 payment days account for 31.6% of all salary transactions\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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Fi5caDP2ypUrWrJkiTp16iRPT8+b9pCTq0EyMDBQ58+f18cff6wmTZrozTff1Lhx43Tq1Cm1bNnSek2RxWJR9+7dtXLlSp0+fdqm1tdff63z58+re/fuNssnTpyo1atX66WXXlLfvn21bNkyPfPMM+rbt6/+/PNPjRs3Th07dtTs2bP15ptv2jz39ddfV8+ePVW+fHlNmTJFQ4YM0bp16/Tggw9mO1p45swZRUdHq2bNmpo8ebIqVaqkF198UStXrpRk/n2dGzn9LFi7dq3++usv9enTR9OnT1eXLl30+eefq1WrVtY/LDRp0kTh4eGKjY3NVjM2NlblypWzHiHs1KmTvvjiC/Xp00fvv/++Bg8erAsXLig+Pv62+waQzxkA4KRmzZplSDJ++umnG47x9fU1ateubX08duxY49offe+8844hyTh16tQNa/z000+GJGPWrFnZ1jVu3NiQZMycOTPHdY0bN7Y+3rBhgyHJKFGihHH+/Hnr8kWLFhmSjHfffde6LCIiwujVq9cta96st169ehkRERHWx8uXLzckGa+99prNuEcffdSwWCzGgQMHrMskGe7u7jbLfv31V0OSMX369GzbutbUqVMNSca8efOsy65cuWI0aNDA8PHxsXntERERRuvWrW9azzAMIysry/q9DgkJMbp27WrMmDHD+Pvvv7ONvXTpUrZl27ZtMyQZn332mXXZ1f2xYcOGmz534sSJhsVisdlWr169DEnGSy+9lG18gwYNjHr16tksW7ZsWbZt5eTq+3Pfvn3GqVOnjEOHDhn//e9/DQ8PDyMkJMS4ePGikZGRYaSlpdk878yZM0ZISIjRt29f67J9+/YZkowPPvjAZmy7du2M0qVLG1lZWTbfh2rVqhlXrlyxjuvatathsViMmJiYbK/v2vfV4cOHDVdXV+P111+3Gffbb78ZhQoVsll+dR9eux/S0tKM0NBQo1OnTtZlN3tf5+R2fhbktK8XLFhgSDI2b95sXTZq1CjDw8PDOHv2rHVZYmKiUahQIWPs2LGGYfzz/ZdkvPXWW7nqF0DBwBEpAAWaj4/PTWfs8vPzkyR9+eWXtz0xg4eHh/r06ZPr8T179lSRIkWsjx999FEVL15c33777W1tP7e+/fZbubq6avDgwTbLhw8fLsMwrEcErmrevLnKlStnfVyjRg0VLVpUf/311y23Exoa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I4afn5/h6+trPPbYY8bx48cNSdZpza+VlpZm+Pv7G76+vsbly5dt1iUlJRkDBw40KlWqZHh7exu+vr5GvXr1jEWLFt2wZwDOz2IY+eCqYQAACphff/1VtWrV0meffZbjLHl309ChQ/XJJ58oISFBhQsXztNenFVGRobCwsLUtm1bffLJJ3ndDoB8gGukAABwgI8++kg+Pj7q2LFjnvaRmpqqefPmqVOnToSoO7B8+XKdOnXKZiISAPc2rpECAMCOvv76a+3Zs0cffvihBg0aZJ044W5LTEzUd999pyVLlig5OVnPP/98nvTh7Hbs2KHdu3fr1VdfVe3atW9rshQABRNBCgAAO3ruued08uRJtWrVSuPHj8+zPvbs2aNu3bopODhY06ZNs85GCXM++OADzZs3T7Vq1dLs2bPzuh0A+QjXSAEAAACASVwjBQAAAAAmEaQAAAAAwCSCFADcpkmTJqlSpUrKysrK61buOYcPH5bFYtHbb7+d163keydPntSjjz6qwMBAWSwWTZ06Na9buiO9e/eWj4/PLcclJyfL29tb33777V3oCsC9iCAFALfh/PnzevPNN/Xiiy/KxeX/fpRaLJYcv0JDQ/OwW9yu2bNn2+xHT09PhYWFqWXLlpo2bZouXLiQ1y3e0tChQ7V69WqNGjVKc+fOVXR09A3HXn2dTz75ZI7rX375ZeuYpKQkR7WsS5cuady4cdq4ceNt1wgMDNSTTz6p0aNH268xALgGs/YBwG349NNPlZGRoa5du2Zb16JFi2z3mvHy8rpbrcEBJkyYoDJlyig9PV0JCQnauHGjhgwZoilTpuirr75SjRo18rrFG1q/fr3at2+vESNG5Gq8p6enli5dqvfff1/u7u426xYsWCBPT0+lpqY6olWrS5cuWWc8bNKkyW3XeeaZZzRt2jStX79eTZs2tVN3APAPghQA3IZZs2apXbt28vT0zLauQoUK6t69e67qGIah1NRUglY+FxMTozp16lgfjxo1SuvXr1ebNm3Url07xcXF5dt9mJiYKD8/v1yPj46O1ldffaWVK1eqffv21uVbt27VoUOH1KlTJy1dutQBndpf5cqVVa1aNc2ePZsgBcDuOLUPAEw6dOiQdu/erebNm5t+bunSpdWmTRutXr1aderUkZeXl/773/9Kks6ePashQ4YoPDxcHh4eioyM1JtvvpntGqyzZ8+qd+/e8vX1lZ+fn3r16qVdu3bJYrHY3OemSZMmOf41v3fv3ipdurTNsqysLE2dOlVVq1aVp6enQkJC9PTTT+vMmTM59v/DDz+obt268vT0VNmyZfXZZ59l287Zs2c1dOhQlS5dWh4eHipZsqR69uyppKQkpaSkyNvbO8ebxB49elSurq6aOHFirr6n77zzjiIiIuTl5aXGjRvr999/t66bNWuWLBaL/ve//2V73n/+8x+5urrq2LFjudrO9Zo2barRo0fr77//1rx586zLd+/erd69e6ts2bLy9PRUaGio+vbtq+TkZOuYDRs2yGKx6IsvvshWd/78+bJYLNq2bdtNt//XX3/pscceU0BAgAoXLqz69evrm2++sa6/elqiYRiaMWOG9ZS8WylRooQefPBBzZ8/32Z5bGysqlevrmrVquX4vMWLFysqKkpeXl4KCgpS9+7ds31vr17fdOzYMXXo0EE+Pj4qVqyYRowYoczMTEn/XP9WrFgxSdL48eOtfY8bN86m1s1qXKtFixb6+uuvxd1eANgbQQoATNq6dask6b777stxfWpqqpKSkmy+0tLSrOv37dunrl27qkWLFnr33XdVq1YtXbp0SY0bN9a8efPUs2dPTZs2TQ888IBGjRqlYcOGWZ9rGIbat2+vuXPnqnv37nrttdd09OhR9erV645e09NPP62RI0fqgQce0Lvvvqs+ffooNjZWLVu2VHp6us3YAwcO6NFHH1WLFi00efJk+fv7q3fv3vrjjz+sY1JSUtSoUSNNnz5dDz/8sN59910988wz2rt3r44ePSofHx898sgjWrhwYbZffhcsWCDDMNStW7db9v3ZZ59p2rRpGjhwoEaNGqXff/9dTZs21cmTJyVJjz76qLy8vBQbG5vtubGxsWrSpIlKlChxO98ySVKPHj0kSWvWrLEuW7t2rf766y/16dNH06dPV5cuXfT555+rVatW1l/mmzRpovDw8Bv2Va5cOTVo0OCG2z158qTuv/9+rV69Ws8++6xef/11paamql27dtZw9uCDD2ru3LmS/gkTc+fOtT6+lSeeeEJff/21UlJSJEkZGRlavHixnnjiiRzHz549W48//rg1APfv31/Lli1Tw4YNdfbsWZuxmZmZatmypQIDA/X222+rcePGmjx5sj788ENJUrFixfTBBx9Ikh555BFr3x07dsx1jWtFRUXp7NmzNu9PALALAwBgyiuvvGJIMi5cuJBtnaQcv2bNmmUYhmFEREQYkoxVq1bZPO/VV181vL29jT///NNm+UsvvWS4uroa8fHxhmEYxvLlyw1JxqRJk6xjMjIyjEaNGtlsxzAMo3Hjxkbjxo2z9dirVy8jIiLC+vj77783JBmxsbE241atWpVt+dX+N2/ebF2WmJhoeHh4GMOHD7cuGzNmjCHJWLZsWbbtZ2VlGYZhGKtXrzYkGStXrrRZX6NGjRz7vtahQ4cMSYaXl5dx9OhR6/IdO3YYkoyhQ4dal3Xt2tUICwszMjMzrct++eWXbN+vnMyaNcuQZPz00083HOPr62vUrl3b+vjSpUvZxixYsCDb923UqFGGh4eHcfbsWeuyxMREo1ChQsbYsWNv2teQIUMMScb3339vXXbhwgWjTJkyRunSpW1eqyRj4MCBN613/djTp08b7u7uxty5cw3DMIxvvvnGsFgsxuHDh42xY8cakoxTp04ZhmEYV65cMYKDg41q1aoZly9fttZasWKFIckYM2aMdVmvXr0MScaECRNstlu7dm0jKirK+vjUqVOGpBy/D7mtcdXWrVsNScbChQtz9T0AgNziiBQAmJScnKxChQrdcArm9u3ba+3atTZfLVu2tK4vU6aMzWPpn9OiGjVqJH9/f5sjWc2bN1dmZqY2b94sSfr2229VqFAhDRgwwPpcV1dXPffcc7f9ehYvXixfX1+1aNHCZttRUVHy8fHRhg0bbMZXqVJFjRo1sj4uVqyYKlasqL/++su6bOnSpapZs6YeeeSRbNu7enpZ8+bNFRYWZnNU5vfff9fu3btzfY1Zhw4dbI4o1a1bV/Xq1bOZ8rpnz546fvy4zeuIjY2Vl5eXOnXqlKvt3IyPj4/N7H3XXit19ehk/fr1JUm//PKLTV9paWlasmSJddnChQuVkZFxy9f/7bffqm7dumrYsKFNH0899ZQOHz6sPXv23NFr8vf3V3R0tBYsWCDpn9MN77//fkVERGQb+/PPPysxMVHPPvuszTWDrVu3VqVKlWxON7zqmWeesXncqFEjm/dPbuS2hr+/vyQ5dJZBAPcmghQA2FnJkiXVvHlzm6/ixYtb15cpUybbc/bv369Vq1apWLFiNl9Xr8NKTEyUJP39998qXrx4thBXsWLF2+53//79OnfunIKDg7NtPyUlxbrtq0qVKpWthr+/v831VAcPHrzhtTRXubi4qFu3blq+fLkuXbok6Z+A4+npqcceeyxXvZcvXz7bsgoVKujw4cPWxy1atFDx4sWtgS0rK0sLFixQ+/btVaRIkVxt52ZSUlJs6pw+fVrPP/+8QkJC5OXlpWLFiln3+blz56zjKlWqpH/96182QTI2Nlb169dXZGTkTbf5999/57jPK1eubF1/p5544gmtXbtW8fHxWr58+Q1P67u6rZz6qVSpUrZePD09rddAXXX9++dWzNQw/v/plLm5PgwAzGDWPgAwKTAwUBkZGbpw4cJt/SKe0+xuWVlZatGihV544YUcn1OhQgXT27k60cD1rr8mKSsrS8HBwTleryMp2y+srq6uOY7LaVu30rNnT7311ltavny5unbtqvnz56tNmzby9fU1XetGXF1d9cQTT+ijjz7S+++/ry1btuj48eO5Pup1M0ePHtW5c+dsgs/jjz+urVu3auTIkapVq5Z8fHyUlZWl6OjobBOH9OzZU88//7yOHj2qtLQ0bd++Xe+9994d92UP7dq1k4eHh3r16qW0tDQ9/vjjdql7o/ePo2pcDVdBQUF3vF0AuBZBCgBMqlSpkqR/Zu+z1/2DypUrp5SUlFvOBBgREaF169YpJSXF5qjUvn37so319/fP8VSn648QlCtXTt99950eeOABu03hXa5cOZvZ826kWrVqql27tmJjY1WyZEnFx8dr+vTpud7O/v37sy37888/s81K2LNnT02ePFlff/21Vq5cqWLFimU7vfJ2XJ284WqtM2fOaN26dRo/frzGjBlz0z4lqUuXLho2bJgWLFigy5cvy83NTZ07d77ldiMiInLc53v37rWuv1NeXl7q0KGD5s2bp5iYmBsGkavb2rdvX7Ypxvft23dbvdjz6NGhQ4ck/d/ROgCwF07tAwCTrs6m9vPPP9ut5uOPP65t27Zp9erV2dadPXtWGRkZkqRWrVopIyPDOquZ9M8RppzCR7ly5bR3716dOnXKuuzXX3/Vli1bsm07MzNTr776arYaGRkZ2WZdy41OnTrp119/zXF67+uPXPXo0UNr1qzR1KlTFRgYqJiYmFxvZ/ny5TZTbP/444/asWNHtho1atRQjRo19PHHH2vp0qXq0qWLChW6s78lrl+/Xq+++qrKlCljnWHw6pGS61/j1KlTc6wR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VaxYUQMGDFBycnJetwQTzp07J0kKCAiQJO3cuVPp6ek2n9VKlSqpVKlSfFadyPX79arY2FgFBQWpWrVqGjVqlC5dupQX7cGkzMxMff7557p48aIaNGjA5zQHhfK6AWeRlJSkzMxMhYSE2CwPCQnR3r1786gr3Kl69epp9uzZqlixok6cOKHx48erUaNG+v3331WkSJG8bg93KCEhQZJy/NxeXQfnEx0drY4dO6pMmTI6ePCg/v3vfysmJkbbtm2Tq6trXreHW8jKytKQIUP0wAMPqFq1apL++ay6u7vLz8/PZiyfVeeR036VpCeeeEIREREKCwvT7t279eKLL2rfvn1atmxZHnaLm/ntt9/UoEEDpaamysfHR1988YWqVKmiXbt28Tm9DkEK97SYmBjrv2vUqKF69eopIiJCixYtUr9+/fKwMwA30qVLF+u/q1evrho1aqhcuXLauHGjmjVrloedITcGDhyo33//netRC5gb7dennnrK+u/q1aurePHiatasmQ4ePKhy5crd7TaRCxUrVtSuXbt07tw5LVmyRL169dKmTZvyuq18iVP7cikoKEiurq7ZZiY5efKkQkND86gr2Jufn58qVKigAwcO5HUrsIOrn00+twVb2bJlFRQUxOfWCQwaNEgrVqzQhg0bVLJkSevy0NBQXblyRWfPnrUZz2fVOdxov+akXr16ksTnNR9zd3dXZGSkoqKiNHHiRNWsWVPvvvsun9McEKRyyd3dXVFRUVq3bp11WVZWltatW6cGDRrkYWewp5SUFB08eFDFixfP61ZgB2XKlFFoaKjN5/b8+fPasWMHn9sC5OjRo0pOTuZzm48ZhqFBgwbpiy++0Pr161WmTBmb9VFRUXJzc7P5rO7bt0/x8fF8VvOxW+3XnOzatUuS+Lw6kaysLKWlpfE5zQGn9pkwbNgw9erVS3Xq1FHdunU1depUXbx4UX369Mnr1nCbRowYobZt2yoiIkLHjx/X2LFj5erqqq5du+Z1a8illJQUm79sHjp0SLt27VJAQIBKlSqlIUOG6LXXXlP58uVVpkwZjR49WmFhYerQoUPeNY2butk+DQgI0Pjx49WpUyeFhobq4MGDeuGFFxQZGamWLVvmYde4mYEDB2r+/Pn68ssvVaRIEev1FL6+vvLy8pKvr6/69eunYcOGKSAgQEWLFtVzzz2nBg0aqH79+nncPW7kVvv14MGDmj9/vlq1aqXAwEDt3r1bQ4cO1YMPPqgaNWrkcffIyahRoxQTE6NSpUrpwoULmj9/vjZu3KjVq1fzOc1JXk8b6GymT59ulCpVynB3dzfq1q1rbN++Pa9bwh3o3LmzUbx4ccPd3d0oUaKE0blzZ+PAgQN53RZM2LBhgyEp21evXr0Mw/hnCvTRo0cbISEhhoeHh9GsWTNj3759eds0bupm+/TSpUvGww8/bBQrVsxwc3MzIiIijP79+xsJCQl53TZuIqf9KcmYNWuWdczly5eNZ5991vD39zcKFy5sPPLII8aJEyfyrmnc0q32a3x8vPHggw8aAQEBhoeHhxEZGWmMHDnSOHfuXN42jhvq27evERERYbi7uxvFihUzmjVrZqxZs8a6ns+pLYthGMbdDG4AAAAA4Oy4RgoAAAAATCJIAQAAAIBJBCkAAAAAMIkgBQAAAAAmEaQAAAAAwCSCFAAAAACYRJACAAAAAJMIUgCAe9KWLVtUvXp1ubm5qUOHDnndzk0dPnxYFotFu3btyutWAAD/H0EKAGB3vXv3lsVikcVikZubm0JCQtSiRQt9+umnysrKyuv2JEnDhg1TrVq1dOjQIc2ePTvHMU2aNJHFYtEbb7yRbV3r1q1lsVg0btw4u/bVu3fvfB/sAAAEKQCAg0RHR+vEiRM6fPiwVq5cqYceekjPP/+82rRpo4yMjLxuTwcPHlTTpk1VsmRJ+fn53XBceHh4tqB17NgxrVu3TsWLF3dskwCAfIsgBQBwCA8PD4WGhqpEiRK677779O9//1tffvmlVq5caRNMpkyZourVq8vb21vh4eF69tlnlZKSIkm6ePGiihYtqiVLltjUXr58uby9vXXhwoUct52WlqbBgwcrODhYnp6eatiwoX766SdJ/3eaXHJysvr27SuLxXLDI1KS1KZNGyUlJWnLli3WZXPmzNHDDz+s4OBgm7FnzpxRz5495e/vr8KFCysmJkb79++3rp89e7b8/Py0evVqVa5cWT4+PtbAKUnjxo3TnDlz9OWXX1qP6G3cuNH6/L/++ksPPfSQChcurJo1a2rbtm033gEAAIciSAEA7pqmTZuqZs2aWrZsmXWZi4uLpk2bpj/++ENz5szR+vXr9cILL0iSvL291aVLF82aNcumzqxZs/Too4+qSJEiOW7nhRde0NKlSzVnzhz98ssvioyMVMuWLXX69GmFh4frxIkTKlq0qKZOnaoTJ06oc+fON+zZ3d1d3bp1s+lh9uzZ6tu3b7axvXv31s8//6yvvvpK27Ztk2EYatWqldLT061jLl26pLfffltz587V5s2bFR8frxEjRkiSRowYoccff9wark6cOKH777/f+tyXX35ZI0aM0K5du1ShQgV17do1XxzdA4B7EUEKAHBXVapUSYcPH7Y+HjJkiB566CGVLl1aTZs21WuvvaZFixZZ1z/55JNavXq19ahNYmKivv322xyDjPTPUawPPvhAb731lmJiYlSlShV99NFH8vLy0ieffCJXV1eFhobKYrHI19dXoaGh8vLyumnPffv21aJFi3Tx4kVt3rxZ586dU5s2bWzG7N+/X1999ZU+/vhjNWrUSDVr1lRsbKyOHTum5cuXW8elp6dr5syZqlOnju677z4NGjRI69atkyT5+PjIy8vLejQvNDRU7u7u1ueOGDFCrVu3VoUKFTR+/Hj9/fffOnDgQK6+7wAA+yJIAQDuKsMwZLFYrI+/++47NWvWTCVKlFCRIkXUo0cPJScn69KlS5KkunXrqmrVqpozZ44kad68eYqIiNCDDz6YY/2DBw8qPT1dDzzwgHWZm5ub6tatq7i4uNvquWbNmipfvryWLFmiTz/9VD169FChQoVsxsTFxalQoUKqV6+edVlgYKAqVqxos93ChQurXLly1sfFixdXYmJirvqoUaOGzfMk5fq5AAD7IkgBAO6quLg4lSlTRtI/1yu1adNGNWrU0NKlS7Vz507NmDFDknTlyhXrc5588knrdUyzZs1Snz59bMLY3dC3b1/NmDFDS5YsueHRsNxwc3OzeWyxWGQYhunnXn39+WUWRAC41xCkAAB3zfr16/Xbb7+pU6dOkqSdO3cqKytLkydPVv369VWhQgUdP3482/O6d++uv//+W9OmTdOePXvUq1evG26jXLlycnd3t5kcIj09XT/99JOqVKly270/8cQT+u2331StWrUc61SuXFkZGRnasWOHdVlycrL27dtnarvu7u7KzMy87T4BAHdHoVsPAQDAvLS0NCUkJCgzM1MnT57UqlWrNHHiRLVp00Y9e/aUJEVGRio9PV3Tp09X27ZttWXLFs2cOTNbLX9/f3Xs2FEjR47Uww8/rJIlS95wu97e3howYIBGjhypgIAAlSpVSpMmTdKlS5fUr1+/2349/v7+OnHiRLYjSleVL19e7du3V//+/fXf//5XRYoU0UsvvaQSJUqoffv2ud5O6dKltXr1au3bt0+BgYHy9fW97Z4BAI7DESkAgEOsWrVKxYsXV+nSpRUdHa0NGzZo2rRp+vLLL+Xq6irpn2uPpkyZojfffFPVqlVTbGysJk6cmGO9fv366cqVK7k6re6NN95Qp06d1KNHD9133306cOCAVq9eLX9//zt6TX5+fvL29r7h+lmzZikqKkpt2rRRgwYNZBiGvv322xuGr5z0799fFStWVJ06dVSsWDGbI2sAgPzDYuT2xGwAAPLQ3LlzNXToUB0/ftxmJjsAAPICp/YBAPK1S5cu6cSJE3rjjTf09NNPE6IAAPkCp/YBAPK1SZMmqVKlSgoNDdWoUaPyuh0AACRxah8AAAAAmMYRKQAAAAAwiSAFAAAAACYRpAAAAADAJIIUAAAAAJhEkAIAAAAAkwhSAAAAAGASQQoAAAAATCJIAQAAAIBJBCkAAAAAMOn/ARljj7sEsN1jAAAAAElFTkSuQmCC\n"
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "#### Transaction Types"
+ ],
+ "metadata": {
+ "id": "5IoiWOIH4lbU"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "# for all transaction type columns, d1-d3, print difference in proportion between confirmed salaries and unconfirmed.\n",
+ "def calculate_proportion_differences(column):\n",
+ " # Calculate proportions for salary vs non-salary\n",
+ " props = df.groupby('H1')[column].value_counts(normalize=True).unstack().fillna(0)\n",
+ "\n",
+ " # Calculate absolute percentage point differences\n",
+ " prop_diff = (props.loc[1] - props.loc[0]).abs().sort_values(ascending=False)\n",
+ "\n",
+ " # Format results\n",
+ " results = pd.concat([\n",
+ " props.loc[1].rename('Salary%'),\n",
+ " props.loc[0].rename('Non-Salary%'),\n",
+ " prop_diff.rename('Difference (pp)')\n",
+ " ], axis=1)\n",
+ "\n",
+ " return results.sort_values('Difference (pp)', ascending=False)\n",
+ "\n",
+ "# Analyze all transaction type columns\n",
+ "transaction_cols = ['d1', 'd2', 'd3']\n",
+ "\n",
+ "\n",
+ "def plot_component_bars(results_df, col, top_n=10):\n",
+ " # Filter top N categories with largest differences\n",
+ " top_categories = results_df.head(top_n).index\n",
+ "\n",
+ " # Get proportions for these categories\n",
+ " salary_props = results_df.loc[top_categories, 'Salary%']\n",
+ " non_salary_props = results_df.loc[top_categories, 'Non-Salary%']\n",
+ "\n",
+ " # Create figure\n",
+ " fig, ax = plt.subplots(figsize=(12, 6))\n",
+ "\n",
+ " # Set positions and width\n",
+ " x = np.arange(len(top_categories))\n",
+ " width = 0.35\n",
+ "\n",
+ " # Plot bars\n",
+ " rects1 = ax.bar(x - width/2, salary_props*100, width,\n",
+ " label='Salary Transactions', color='#1f77b4')\n",
+ " rects2 = ax.bar(x + width/2, non_salary_props*100, width,\n",
+ " label='Non-Salary Transactions', color='#ff7f0e')\n",
+ "\n",
+ " # Add labels and title\n",
+ " ax.set_ylabel('Percentage (%)')\n",
+ " ax.set_title(f'Transaction Type Composition: {col}')\n",
+ " ax.set_xticks(x)\n",
+ " ax.set_xticklabels(top_categories, rotation=45, ha='right')\n",
+ " ax.legend()\n",
+ "\n",
+ " # Add value labels\n",
+ " def autolabel(rects):\n",
+ " for rect in rects:\n",
+ " height = rect.get_height()\n",
+ " ax.annotate(f'{height:.1f}%',\n",
+ " xy=(rect.get_x() + rect.get_width() / 2, height),\n",
+ " xytext=(0, 3), # 3 points vertical offset\n",
+ " textcoords=\"offset points\",\n",
+ " ha='center', va='bottom', fontsize=8)\n",
+ "\n",
+ " autolabel(rects1)\n",
+ " autolabel(rects2)\n",
+ "\n",
+ " plt.tight_layout()\n",
+ " plt.show()\n",
+ "\n",
+ "# Analyze all transaction type columns\n",
+ "transaction_cols = ['d1', 'd2', 'd3']\n",
+ "\n",
+ "for col in transaction_cols:\n",
+ " print(f\"\\n\\033[1mTransaction Type Analysis: {col}\\033[0m\")\n",
+ " print(f\"Categories in salary transactions: {df[df['H1']==1][col].nunique()}\")\n",
+ "\n",
+ " diff_df = calculate_proportion_differences(col)\n",
+ " display(diff_df.head(10))\n",
+ "\n",
+ " # Plot component bar chart\n",
+ " plot_component_bars(diff_df, col, top_n=10)"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "id": "h20OR7Moz-XB",
+ "outputId": "2a1f35dd-e294-4968-8278-c5e25525f165"
+ },
+ "execution_count": 15,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "\n",
+ "\u001b[1mTransaction Type Analysis: d1\u001b[0m\n",
+ "Categories in salary transactions: 1\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " Salary% Non-Salary% Difference (pp)\n",
+ "d1 \n",
+ "T 1.0 0.989452 0.010548\n",
+ "C 0.0 0.010221 0.010221\n",
+ "L 0.0 0.000327 0.000327"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Salary% | \n",
+ " Non-Salary% | \n",
+ " Difference (pp) | \n",
+ "
\n",
+ " \n",
+ " | d1 | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | T | \n",
+ " 1.0 | \n",
+ " 0.989452 | \n",
+ " 0.010548 | \n",
+ "
\n",
+ " \n",
+ " | C | \n",
+ " 0.0 | \n",
+ " 0.010221 | \n",
+ " 0.010221 | \n",
+ "
\n",
+ " \n",
+ " | L | \n",
+ " 0.0 | \n",
+ " 0.000327 | \n",
+ " 0.000327 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "summary": "{\n \"name\": \" plot_component_bars(diff_df, col, top_n=10)\",\n \"rows\": 3,\n \"fields\": [\n {\n \"column\": \"d1\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"T\",\n \"C\",\n \"L\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Salary%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.5773502691896258,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 2,\n \"samples\": [\n 0.0,\n 1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Non-Salary%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.5682367466566406,\n \"min\": 0.0003270979736934726,\n \"max\": 0.9894517445443329,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.9894517445443329,\n 0.010221157481973631\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Difference (pp)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.005809065715314987,\n \"min\": 0.0003270979736934726,\n \"max\": 0.010548255455667066,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.010548255455667066,\n 0.010221157481973631\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYstJREFUeJzt3XdcVvX///HnBchQlhIKLkDFrThzlbsszRWV2nBkjty5rcStqWmujLRCLS13WX1yoVaSmXvnSkRTMDHBkYJwfn/49fp1iRoonAvxcb/duN087/M+7+t1DheX+uR93sdiGIYhAAAAAAAAwEQO9i4AAAAAAAAAjx5CKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAkG117NhRgYGB9i4DD5F58+bJYrEoOjr6P/tu2rRJFotFmzZtyvK6HkR0dLQsFovmzZtn71IAAMhUhFIAANiZxWJJ11d2/4/z/Tpz5oxGjhyp3bt327sUSVL9+vXT9f0YOXKkvUtNY9OmTXr++efl5+cnZ2dn5c+fX82bN9eKFSvsXZpdzZ49O8cFOmfPntXQoUPVoEEDeXh45OjPCABAzmUxDMOwdxEAADzKvvjiC5vtBQsWaN26dfr8889t2p966ikVKFDAzNJMsX37dlWvXl0RERHq2LGjzb7k5GSlpqbKxcXFtHrWrVunuLg46/a2bds0Y8YMvf322ypTpoy1vWLFiqpYsaJpdf2XESNGaPTo0QoODla7du0UEBCg+Ph4/e9//9OmTZu0cOFCvfzyy/YuM8ulpKQoOTlZLi4uslgskqTy5cvrscceSxPapKamKikpSc7OznJwyL6/q42OjlZQUJDNz8imTZvUoEEDBQcH67HHHtOWLVu0ceNG1a9f3661AgCQEU72LgAAgEfdq6++arP966+/at26dWnab3f16lXlzp07K0uzu1y5cpn+mk899ZTNtqurq2bMmKGnnnoq2/6Hf9myZRo9erReeOEFLVq0yOa6DRo0SGvWrFFycrIdKzSPo6OjHB0d09XXwcFBrq6uWVxR1qhatari4+OVL18+LVu2TC+++KK9SwIAIMOy76+EAACAVf369VW+fHnt2LFDdevWVe7cufX2229Lkr755hs1a9ZMBQsWlIuLi4oXL64xY8YoJSXljmMcPHhQDRo0UO7cuVWoUCFNmjQpzevNnDlT5cqVU+7cuZU3b15Vq1ZNixYtsu4/efKkevTooVKlSsnNzU0+Pj568cUX77iOz8WLF/XWW28pMDBQLi4uKly4sNq3b6/z589r06ZNql69uiSpU6dO1lvjbt1qdac1pa5cuaIBAwaoSJEicnFxUalSpfT+++/r9snfFotFvXr10tdff63y5cvLxcVF5cqV0+rVqzN6+W1ERETIYrFo165dafaNHz9ejo6O+vPPPyXZft9q164tNzc3BQUFKTw8PM2x169f14gRI1SiRAm5uLioSJEiGjx4sK5fv/6fNQ0fPlz58uXTZ599dscgr0mTJnruuees2+fOnVPnzp1VoEABubq6KiQkRPPnz7c55tY6Ru+//74+/PBDFStWTLlz59bTTz+tU6dOyTAMjRkzRoULF5abm5tatmypCxcu2IwRGBio5557TmvXrlWlSpXk6uqqsmXL3vF2wj/++EMvvvii8uXLp9y5c6tmzZr6/vvv0/T7r/fm7WtKBQYG6sCBA/rxxx+t769b4eLd1pRaunSpqlatKjc3Nz322GN69dVXrd/TWzp27Ch3d3f9+eefatWqldzd3eXr66uBAwem+dk7e/asfv/993QFgxcvXlTHjh3l5eUlb29vdejQQRcvXkzTz8PDQ/ny5fvP8QAAyM6YKQUAwEMiPj5ezz77rNq2batXX33VeivfvHnz5O7urv79+8vd3V0bNmxQWFiYEhMTNXnyZJsx/v77bz3zzDN6/vnn9dJLL2nZsmUaMmSIKlSooGeffVaSNHfuXPXp00cvvPCC+vbtq2vXrmnv3r3aunWr9favbdu26ZdfflHbtm1VuHBhRUdH66OPPlL9+vV18OBB6wyuy5cv68knn9ShQ4f0+uuvq0qVKjp//rxWrVql06dPq0yZMho9erTCwsLUtWtXPfnkk5Kk2rVr3/EaGIahFi1aaOPGjercubMqVaqkNWvWaNCgQfrzzz/1wQcf2PTfvHmzVqxYoR49esjDw0MzZsxQaGioYmJi5OPjc1/fhxdeeEE9e/bUwoULVblyZZt9CxcuVP369VWoUCGba960aVO99NJLateunZYsWaI333xTzs7Oev311yXdvI2sRYsW2rx5s7p27aoyZcpo3759+uCDD3TkyBF9/fXXd63n6NGj+v333/X666/Lw8PjP+v/559/VL9+fR07dky9evVSUFCQli5dqo4dO+rixYvq27dvmnNKSkpS7969deHCBU2aNEkvvfSSGjZsqE2bNmnIkCE6duyYZs6cqYEDB+qzzz5LU1+bNm3UvXt3dejQQREREXrxxRe1evVq66y0uLg41a5dW1evXlWfPn3k4+Oj+fPnq0WLFlq2bJlat24tKX3vzdtNmzZNvXv3lru7u9555x1JuudtsPPmzVOnTp1UvXp1TZgwQXFxcZo+fbqioqK0a9cueXt7W/umpKSoSZMmqlGjht5//32tX79eU6ZMUfHixfXmm29a+w0bNkzz58/XiRMn7rlwv2EYatmypTZv3qzu3burTJkyWrlypTp06HDXYwAAeKgZAAAgW+nZs6dx+1/R9erVMyQZ4eHhafpfvXo1TVu3bt2M3LlzG9euXUszxoIFC6xt169fN/z8/IzQ0FBrW8uWLY1y5crds8Y7veaWLVvSjB8WFmZIMlasWJGmf2pqqmEYhrFt2zZDkhEREZGmT4cOHYyAgADr9tdff21IMsaOHWvT74UXXjAsFotx7Ngxa5skw9nZ2aZtz549hiRj5syZ9zy/f1u6dKkhydi4caO1rV27dkbBggWNlJQUa9vOnTvTnMetaz5lyhRr2/Xr141KlSoZ+fPnN5KSkgzDMIzPP//ccHBwMH7++Web1w4PDzckGVFRUXet75tvvjEkGR988EG6zmfatGmGJOOLL76wtiUlJRm1atUy3N3djcTERMMwDOPEiROGJMPX19e4ePGite+wYcMMSUZISIiRnJxsc02cnZ1t3nMBAQGGJGP58uXWtoSEBMPf39+oXLmyta1fv36GJJvzv3TpkhEUFGQEBgZar3N63psRERGGJOPEiRPWtnLlyhn16tVL03fjxo0239ukpCQjf/78Rvny5Y1//vnH2u+7774zJBlhYWHWtg4dOhiSjNGjR9uMWblyZaNq1ao2bbf6/rumO7n1/p40aZK17caNG8aTTz55158Rw7jzexQAgIcBt+8BAPCQcHFxUadOndK0u7m5Wf986dIlnT9/Xk8++aSuXr2q33//3aavu7u7zVpVzs7Oevzxx/XHH39Y27y9vXX69Glt27btrrX8+zWTk5MVHx+vEiVKyNvbWzt37rTuW758uUJCQqwzXf7t1iLUGfG///1Pjo6O6tOnj037gAEDZBiGfvjhB5v2xo0bq3jx4tbtihUrytPT0+Z870f79u115swZbdy40dq2cOFCubm5KTQ01Kavk5OTunXrZt12dnZWt27ddO7cOe3YsUPSzdvFypQpo9KlS+v8+fPWr4YNG0qSzevcLjExUZLSNUtKunkN/fz81K5dO2tbrly51KdPH12+fFk//vijTf8XX3xRXl5e1u0aNWpIurkWmpOTk017UlJSmtvcChYsaPP99/T0VPv27bVr1y7FxsZaa3r88cf1xBNPWPu5u7ura9euio6O1sGDByWl7735ILZv365z586pR48eNmtNNWvWTKVLl77j7YTdu3e32X7yySfTvL/mzZsnwzDuOUtKunkdnJycbGZZOTo6qnfv3vdxNgAAZH+EUgAAPCQKFSokZ2fnNO0HDhxQ69at5eXlJU9PT/n6+lqDp4SEBJu+hQsXThMG5c2bV3///bd1e8iQIXJ3d9fjjz+u4OBg9ezZU1FRUTbH/PPPPwoLC7Ou6/TYY4/J19dXFy9etHnN48ePq3z58g987recPHlSBQsWTBPA3Hoq3smTJ23aixYtmmaM28/3fjz11FPy9/fXwoULJd28/e7LL79Uy5Yt09RWsGBB5cmTx6atZMmSkmRd9+jo0aM6cOCAfH19bb5u9Tt37txda/H09JR0M5BMj5MnTyo4ODjN0+bSew1vBVRFihS5Y/vt17ZEiRJp3nO3n//JkydVqlSpNLXeXlN63psP4tbr3KmW0qVLp7k2rq6u8vX1tWl7kPfXyZMn5e/vL3d3d5v2O9UDAEBOwJpSAAA8JP49O+mWixcvql69evL09NTo0aNVvHhxubq6aufOnRoyZIhSU1Nt+t/tqWTGvxYJL1OmjA4fPqzvvvtOq1ev1vLlyzV79myFhYVp1KhRkqTevXsrIiJC/fr1U61ateTl5SWLxaK2bdumeU17Ss/53u+4L7/8subOnavZs2crKipKZ86c+c8nJt5NamqqKlSooKlTp95x/+0B0L+VLl1akrRv3777eu3/crdrmFXX9l7S8940U3qf8gcAAO6MUAoAgIfYpk2bFB8frxUrVqhu3brW9hMnTjzQuHny5FGbNm3Upk0bJSUl6fnnn9e4ceM0bNgwubq6atmyZerQoYOmTJliPebatWtpnhJWvHhx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49q4caPmz5+vefPmWcOh7du3q0+fPho9erQOHz6s1atXq27dutZjr1y5ov79+2v79u2KjIyUg4ODWrdurdTUVOv1qVevnv7880+tWrVKe/bs0eDBg5Wamqo2bdpowIABKleunM6ePauzZ8+qTZs2ac7rypUratKkifLmzatt27Zp6dKlWr9+fZpQ70HOIyfi9j1kC926ddP333+v2NhYNWnSRB4eHjp27Jg+/vhjdezYUePHj5enp6ciIiKsx9xr3xtvvKEWLVqoRYsWKlasmEaNGmW9/7p+/frq1q2bzev37dtX06ZNk8VikZeXl15++WVVqFBB7u7uWrx4sTkXAWkcP35cPj4+1um+Tz75pGJiYrRz505ZLBZdvHhR0s2/AJydnZUvX740Y+zfv18VK1aUv7+/JKlp06Zq37694uPjrQvdS9LVq1fl7OysvXv36vfff9e4cePMOUkAAADg/zg5OWnevHnq0qWLwsPDVaVKFdWrV09t27ZVxYoVrf369etn/XNgYKDGjh2r7t27a/bs2XccNyQkRCEhIdbtMWPGaOXKlVq1apVNaNKwYUMNGDDAul2oUCH16tVL33zzjV566SVJNxdR79ixoywWy32d48svv6xOnTrZtN16ErokBQUFacuWLVqyZIn1NSUpb968mjVrlhwdHVW6dGk1a9ZMkZGR6tKli2JiYpQnTx4999xz8vDwUEBAgCpXrmw9NjQ01Ob1PvvsM/n6+urgwYMqX768Fi1apL/++kvbtm2z/p/i3xMe3N3d5eTkdM/b9RYtWqRr165pwYIFypMnjyRp1qxZat68uSZOnKgCBQo88HnkRMyUQrbw8ccf6/Tp07px44bi4uKsT9ErVaqUtmzZoiNHjmj79u2qUKGC9Zh77fvkk09sprd26dJFx48f1/Hjx/Xpp5+muW951apVKl26tHV75MiROnjwoH777TcFBQVl1WnjPwQHBys+Pl6//PKLpJvfp0uXLik6OloREREaPny4ihYtqpIlS2r8+PF3/EsiJCREO3fu1JEjRyTd/M2OYRg6efKknnrqKXl4eCgkJEReXl5q2LCh+vfvn2a6MAAAAGCW0NBQnTlzRqtWrdIzzzyjTZs2qUqVKtbZNJK0fv16NWrUSIUKFZKHh4dee+01xcfHW3/hervLly9r4MCBKlOmjLy9veXu7q5Dhw6lmSlV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kSLq0aOHLl++bN0/b948eXt7a9WqVSpbtqxcXFy0efNm5cqVS7GxsTZj9evXT08++WSa13B2dpafn5/1y83NTS4uLtbt8PBwPf744/rkk08UFBQkV1dXSdLq1av1xBNPyNvbWz4+Pnruued0/Phx67jR0dGyWCxasWKFGjRooNy5cyskJERbtmyx9jl58qSaN2+uvHnzKk+ePCpXrpz+97//SboZsHXu3FlBQUFyc3NTqVKlNH369DT1f/bZZ9bvp7+/v3r16iXp5vdRklq3bi2LxWLdvv32vdTUVI0ePVqFCxeWi4uLKlWqpNWrV2faeWQFQikAAAAAALIRR0dHjR8/XjNnztTp06fv2GfHjh166aWX1LZtW+3bt08jR47U8OHDNW/ePJt+U6ZMUbVq1bRr1y716NFDb775pg4fPnzX1/bz89OBAwe0f//+u/a5fPmymjZtqsjISO3atUvPPPOMmjdvrpiYmLse4+DgoBkzZujAgQOaP3++NmzYoMGDB9v0uXr1qiZOnKhPPvlEBw4cULVq1VSsWDF9/vnn1j7JyclauHChXn/99bu+1r0cO3ZMy5cv14oVK7R7925J0pUrV9S/f39t375dkZGRcnBwUOvWrZWammpz7DvvvKOBAwdq9+7dKlmypNq1a6cbN25Iknr27Knr16/rp59+0r59+zRx4kTrLKbU1FQVLlxYS5cu1cGDBxUWFqa3335bS5YssY790UcfqWfPnuratav27dunVatWqUSJEpKkbdu2SZIiIiJ09uxZ6/btpk+frilTpuj999/X3r171aRJE7Vo0UJHjx7NlPPICty+BwAAAABANtO6dWtVqlRJI0aM0Keffppm/9SpU9WoUSMNHz5cklSyZEkdPHhQkydPVseOHa39mjZtqh49ekiShgwZog8++EAbN25UqVKl7vi6vXv31s8//6wKFSooICBANWvW1NNPP61XXnlFLi4ukqSQkBCFhIRYjxkzZoxWrlypVatWWWf33K5fv37WPwcGBmrs2LHq3r27Zs+ebW1PTk7W7Nmzbcbu3LmzIiIiNGjQIEk3Z3Jdu3ZNL7300r0u310lJSVpwYIF8vX1tbaFhoba9Pnss8/k6+urgwcPqnz58tb2gQMHqlmzZpKkUaNGqVy5cjp27JhKly6tmJgYhYaGqkKFCpKkYsWKWY/LlSuXRo0aZd0OCgrSli1btGTJEut5jB07VgMGDFDfvn2t/apXry5J1lq9vb3l5+d313N7//33NWTIELVt21aSNHHiRG3cuFHTpk2zmel2v+eRFZgpBQAAAABANjRx4kTNnz9fhw4dSrPv0KFDqlOnjk1bnTp1dPToUaWkpFjbKlasaP2zxWKRn5+fzp07J0l69tlnresSlStXTpKUJ08eff/99zp27Jjeffddubu7a8CAAXr88cd19epVSTdnSg0cOFBlypSRt7e33N3ddejQoXvOlFq/fr0aNWqkQoUKycPDQ6+99pri4+OtY0o3b7/7d73SzYXfjx07pl9//VXSzdv8XnrpJeXJkydd1/B2AQEBNoGUJB09elTt2rVTsWLF5Onpab097vbz+Xdt/v7+kmS9ln369NHYsWNVp04djRgxQnv37rU59sMPP1TVqlXl6+srd3d3zZkzxzr+uXPndObMGTVq1Oi+zkmSEhMTdebMmTu+J25//zzIeWQ2QikAAAAAALKhunXrqkmTJho2bNh9j5ErVy6bbYvFYr0t7ZNPPtHu3bu1e/fuNOsGFS9eXG+88YY++eQT7dy5UwcPHtTixYsl3Zxps3LlSo0fP14///yzdu/erQoVKigpKemONURHR+u5555TxYoVtXz5cu3YscM6c+ffx7i5uclisdgcmz9/fjVv3lwRERGKi4vTDz/8cN+37km6Y5jVvHlzXbhwQXPnztXWrVu1devWNLVJttfyVp23ruUbb7yhP/74Q6+99pr27dunatWqaebMmZKkr776SgMHDlTnzp21du1a7d69W506dbKO7+bmdt/ncz/u9zyyArfvAQAAAACQTb333nuqVKlSmtvtypQpo6ioKJu2qKgolSxZUo6Ojukau1ChQunqFxgYqNy5c+vKlSvW1+nYsaNat24t6ebMqejo6Lsev2PHDqWmpmrKlCnWp+n9ez2l//LGG2+oXbt2Kly4sIoXL55mNtCDiI+P1+HDhzV37lzr4umbN2++r7GKFCmi7t27q3v37ho2bJjmzp2r3r17KyoqSrVr17beRinJZiF1Dw8PBQYGKjIyUg0aNLjj2Lly5bKZAXc7T09PFSxYUFFRUapXr561PSoqSo8//nimnEdWIJQCAAAAACCbqlChgl555RXNmDHDpn3AgAGqXr26xowZozZt2mjLli2aNWuWzRpN92PkyJG6evWqmjZtqoCAAF28eFEzZsxQcnKynnrqKUlScHCwVqxYoebNm8tisWj48OFpFgX/txIlSig5OVkzZ85U8+bNFRUVpfDw8HTX1KRJE3l6emrs2LEaPXr0A53f7fLmzSsfHx/NmTNH/v7+iomJ0dChQzM8Tr9+/fTss8+qZMmS+vvvv7Vx40aVKVNG0s3rtWDBAq1Zs0ZBQUH6/PPPtW3bNgUFBVmPHzlypLp37678+fPr2Wef1aVLlxQVFWUNg26FVnXq1JGLi4vy5s2bpoZBgwZpxIgRKl68uCpVqqSIiAjt3r1bCxcuzJTzyArcvgcAAAAAQDY2evToNKFPlSpVtGTJEn311VcqX768wsLCNHr0aJtFzu9HvXr19Mcff6h9+/YqXbq0nn32WcXGxmrt2rXW2VpTp05V3rx5Vbt2bTVv3lxNmjRRlSpV7jpmSEiIpk6dqokTJ6p8+fJauHChJkyYkO6aHBwc1LFjR6WkpKh9+/YPdH53Gvurr77Sjh07VL58eb311luaPHlyhsdJSUlRz549VaZMGT3zzDMqWbKkNSDs1q2bnn/+ebVp00Y1atRQfHy8zawpSerQoYOmTZum2bNnq1y5cnruuedsnpo3ZcoUrVu3TkWKFFHlypXvWEOfPn3Uv39/DRgwQBUqVNDq1au1atUqBQcHZ8p5ZAWLYRhGlo3+kEhMTJSXl5cSEhLk6elp73IeSODQ7+1dArKRaNeX7V0CsouRCfauAAAAwFTXrl3TiRMnFBQUJFdXV3uXgwfUuXNn/fXXX1q1apW9S8H/udfPWHpzFm7fAwAAAAAA2VJCQoL27dunRYsWEUjlQIRSAAAAAAAgW2rZsqV+++03de/e3bqmFXIOQikAAAAAAJAtbdq0yd4lIAux0DkAAAAAAABMRygFAAAAAAAA0xFKAQAAAAByLB44D2SN1NTUBx6DNaUAAAAAADlOrly5ZLFY9Ndff8nX11cWi8XeJQE5gmEYSkpK0l9//SUHBwc5Ozvf91iEUgAAAACAHMfR0VGFCxfW6dOnFR0dbe9ygBwnd+7cKlq0qBwc7v8mPEIpAAAAAECO5O7uruDgYCUnJ9u7FCBHcXR0lJOT0wPPQCSUAgAAAADkWI6OjnJ0dLR3GQDugIXOAQAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6bJ1KJWSkqLhw4crKChIbm5uKl68uMaMGSPDMKx9DMNQWFiY/P395ebmpsaNG+vo0aN2rBoAAAAAAAD/JVuHUhMnTtRHH32kWbNm6dChQ5o4caImTZqkmTNnWvtMmjRJM2bMUHh4uLZu3ao8efKoSZMmunbtmh0rBwAAAAAAwL042buAe/nll1/UsmVLNWvWTJIUGBioL7/8Ur/99pukm7Okpk2bpnfffVctW7aUJC1YsEAFChTQ119/rbZt29qtdgAAAAAAANxdtp4pVbt2bUVGRurIkSOSpD179mjz5s169tlnJUknTpxQbGysGjdubD3Gy8tLNWrU0JYtW+467vXr15WYmGjzBQAAAAAAAPNk65lSQ4cOVWJiokqXLi1HR0elpKRo3LhxeuWVVyRJsbGxkqQCBQrYHFegQAHrvjuZMGGCRo0alXWFAwAAAAAA4J6y9UypJUuWaOHChVq0aJF27typ+fPn6/3339f8+fMfaNxhw4YpISHB+nXq1KlMqhgAAAAAAADpka1nSg0aNEhDhw61rg1VoUIFnTx5UhMmTFCHDh3k5+cnSYqLi5O/v7/1uLi4OFWqVOmu47q4uMjFxSVLawcAAAAAAMDdZeuZUlevXpWDg22Jjo6OSk1NlSQFBQXJz89PkZGR1v2JiYnaunWratWqZWqtAAAAAAAASL9sPVOqefPmGjdunIoWLapy5cpp165dmjp1ql5//XVJksViUb9+/TR27FgFBwcrKChIw4cPV8GCBdWqVSv7Fg8AAAAAAIC7ytah1MyZMzV8+HD16NFD586dU8GCBdWtWzeFhYVZ+wwePFhXrlxR165ddfHiRT3xxBNavXq1XF1d7Vg5AAAAAAAA7sViGIZh7yLsLTExUV5eXkpISJCnp6e9y3kggUO/t3cJyEaiXV+2dwnILkYm2LsCAAAAAI+I9OYs2XpNKQAAAAAAAORMhFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwnVNGD7h+/bq2bt2qkydP6urVq/L19VXlypUVFBSUFfUBAAAAAAAgB0p3KBUVFaXp06fr22+/VXJysry8vOTm5qYLFy7o+vXrKlasmLp27aru3bvLw8MjK2sGAAAAAADAQy5dt++1aNFCbdq0UWBgoNauXatLly4pPj5ep0+f1tWrV3X06FG9++67ioyMVMmSJbVu3bqsrhsAAAAAAAAPsXTNlGrWrJmWL1+uXLly3XF/sWLFVKxYMXXo0EEHDx7U2bNnM7VIAAAAAAAA5CzpCqW6deuW7gHLli2rsmXL3ndBAAAAAAAAyPkyvND5v+3fv18//vijUlJSVKdOHVWtWjWz6gIAAAAAAEAOlq41pe7kww8/VKNGjfTjjz9q48aNatiwocaNG5eZtQEAAAAAACCHSvdMqVOnTqlIkSLW7VmzZunAgQN67LHHJElbtmxRixYt9M4772R+lQAAAAAAAMhR0j1TqnHjxpo+fboMw5Ak+fj4aPXq1bp+/bouXbqk9evXy9fXN8sKBQAAAAAAQM6R7lBq27ZtOnz4sGrUqKHdu3drzpw5+uCDD+Tm5iZvb28tXrxY8+fPz8paAQAAAAAAkEOkO5Ty9PTU7NmzNW3aNHXs2FGffPKJfv75ZyUkJCg+Pl779+9X9erVM73AP//8U6+++qp8fHzk5uamChUqaPv27db9hmEoLCxM/v7+cnNzU+PGjXX06NFMrwMAAAAAAACZJ8MLndeuXVvbt29X3rx5VblyZf3000/y9vbOgtKkv//+W3Xq1FGuXLn0ww8/6ODBg5oyZYry5s1r7TNp0iTNmDFD4eHh2rp1q/LkyaMmTZro2rVrWVITAAAAAAAAHpzFuLVI1H+4ceOG5syZo0OHDikkJESdOnXS8ePH1b17d/n4+GjWrFkqUKBAphY3dOhQRUVF6eeff77jfsMwVLBgQQ0YMEADBw6UJCUkJKhAgQKaN2+e2rZtm67XSUxMlJeXlxISEuTp6Zlp9dtD4NDv7V0CspFo15ftXQKyi5EJ9q4AAAAAwCMivTlLumdKde7cWbNmzVKePHkUERGht956SyVLltSGDRv0zDPPqFatWvroo48ypfhbVq1apWrVqunFF19U/vz5VblyZc2dO9e6/8SJE4qNjVXjxo2tbV5eXqpRo4a2bNmSqbUAAAAAAAAg86Q7lPrmm2+0fPlyvffee1q3bp2+//7/z8jp3Lmzfv3117vOaLpff/zxhz766CMFBwdrzZo1evPNN9WnTx/rguqxsbGSlGaGVoECBaz77uT69etKTEy0+QIAAAAAAIB50h1KFShQQGvXrlVSUpI2bNggHx8fm/358+fXokWLMrW41NRUValSRePHj1flypXVtWtXdenSReHh4Q807oQJE+Tl5WX9KlKkSCZVDAAAAAAAgPRIdyg1a9YsjRs3Tm5uburevbumTZuWhWXd5O/vr7Jly9q0lSlTRjExMZIkPz8/SVJcXJxNn7i4OOu+Oxk2bJgSEhKsX6dOncrkygEAAAAAAHAvTunt+NRTTykuLk7nz5+Xr69vVtZkVadOHR0+fNim7ciRIwoICJAkBQUFyc/PT5GRkapUqZKkm4tpbd26VW+++eZdx3VxcZGLi0uW1Q0AAAAAAIB7S3coJUkWi8W0QEqS3nrrLdWuXVvjx4/XSy+9pN9++01z5szRnDlzrPX069dPY8eOVXBwsIKCgjR8+HAVLFhQrVq1Mq1OAAAAAAAAZEy6bt975pln9Ouvv/5nv0uXLmnixIn68MMPH7gwSapevbpWrlypL7/8UuXLl9eYMWM0bdo0vfLKK9Y+gwcPVu/evdW1a1dVr15dly9f1urVq+Xq6popNQAAAAAAACDzWQzDMP6r06effqqwsDB5eXmpefPmqlatmgoWLChXV1f9/fffOnjwoDZv3qz//e9/atasmSZPnqyiRYuaUX+mSExMlJeXlxISEuTp6Wnvch5I4NDv/7sTHhnRri/buwRkFyMT7F0BAAAAgEdEenOWdN2+17lzZ7366qtaunSpFi9erDlz5igh4eZ/cCwWi8qWLasmTZpo27ZtKlOmTOacAQAAAAAAAHKsdK8p5eLioldffVWvvvqqJCkhIUH//POPfHx8lCtXriwrEAAAAAAAADlPhhY6/zcvLy95eXllZi0AAAAAAAB4RKRroXMAAAAAAAAgMxFKAQAAAAAAwHSEUgAAAAAAADAdoRQAAAAAAABMd1+h1MWLF/XJJ59o2LBhunDhgiRp586d+vPPPzO1OAAAAAAAAORMGX763t69e9W4cWN5eXkpOjpaXbp0Ub58+bRixQrFxMRowYIFWVEnAAAAAAAAcpAMz5Tq37+/OnbsqKNHj8rV1dXa3rRpU/3000+ZWhwAAAAAAABypgyHUtu2bVO3bt3StBcqVEixsbGZUhQAAAAAAABytgyHUi4uLkpMTEzTfuTIEfn6+mZKUQAAAAAAAMjZMhxKtWjRQqNHj1ZycrIkyWKxKCYmRkOGDFFoaGimFwgAAAAAAICcJ8Oh1JQpU3T58mXlz59f//zzj+rVq6cSJUrIw8ND48aNy4oaAQAAAAAAkMNk+Ol7Xl5eWrdunTZv3qy9e/fq8uXLqlKliho3bpwV9QEAAAAAACAHynAodcsTTzyhJ554IjNrAQAAAAAAwCMiw6HUjBkz7thusVjk6uqqEiVKqG7dunJ0dHzg4gAAAAAAAJAzZTiU+uCDD/TXX3/p6tWryps3ryTp77//Vu7cueXu7q5z586pWLFi2rhxo4oUKZLpBQMAAAAAAODhl+GFzsePH6/q1avr6NGjio+PV3x8vI4cOaIaNWpo+vTpiomJkZ+fn956662sqBcAAAAAAAA5QIZnSr377rtavny5ihcvbm0rUaKE3n//fYWGhuqPP/7QpEmTFBoamqmFAgAAAAAAIOfI8Eyps2fP6saNG2nab9y4odjYWElSwYIFdenSpQevDgAAAAAAADlShkOpBg0aqFu3btq1a5e1bdeuXXrzzTfVsGFDSdK+ffsUFBSUeVUCAAAAAAAgR8lwKPXpp58qX758qlq1qlxcXOTi4qJq1aopX758+vTTTyVJ7u7umjJlSqYXCwAAAAAAgJwhw2tK+fn5ad26dfr999915MgRSVKpUqVUqlQpa58GDRpkXoUAAAAAAADIcTIcSt1SunRplS5dOjNrAQAAAAAAwCPivkKp06dPa9WqVYqJiVFSUpLNvqlTp2ZKYQAAAAAAAMi5MhxKRUZGqkWLFipWrJh+//13lS9fXtHR0TIMQ1WqVMmKGgEAAAAAAJDDZHih82HDhmngwIHat2+fXF1dtXz5cp06dUr16tXTiy++mBU1AgAAAAAAIIfJcCh16NAhtW/fXpLk5OSkf/75R+7u7ho9erQmTpyY6QUCAAAAAAAg58lwKJUnTx7rOlL+/v46fvy4dd/58+czrzIAAAAAAADkWBleU6pmzZravHmzypQpo6ZNm2rAgAHat2+fVqxYoZo1a2ZFjQAAAAAAAMhhMhxKTZ06VZcvX5YkjRo1SpcvX9bixYsVHBzMk/cAAAAAAACQLhkOpYoVK2b9c548eRQeHp6pBQEAAAAAACDny/CaUsWKFVN8fHya9osXL9oEVgAAAAAAAMDdZDiUio6OVkpKSpr269ev688//8yUogAAAAAAAJCzpfv2vVWrVln/vGbNGnl5eVm3U1JSFBkZqcDAwEwtDgAAAAAAADlTukOpVq1aSZIsFos6dOhgsy9XrlwKDAzUlClTMrU4AAAAAAAA5EzpDqVSU1MlSUFBQdq2bZsee+yxLCsKAAAAAAAAOVuGn7534sSJrKgDAAAAAAAAj5AMh1KSFBkZqcjISJ07d846g+qWzz77LFMKAwAAAAAAQM6V4VBq1KhRGj16tKpVqyZ/f39ZLJasqAsAAAAAAAA5WIZDqfDwcM2bN0+vvfZaVtQDAAAAAACAR4BDRg9ISkpS7dq1s6IWAAAAAAAAPCIyHEq98cYbWrRoUVbUAgAAAAAAgEdEhm/fu3btmubMmaP169erYsWKypUrl83+qVOnZlpxAAAAAAAAyJkyHErt3btXlSpVkiTt37/fZh+LngMAAAAAACA9MhxKbdy4MSvqAAAAAAAAwCMkw2tK3XLs2DGtWbNG//zzjyTJMIxMKwoAAAAAAAA5W4ZDqfj4eDVq1EglS5ZU06ZNdfbsWUlS586dNWDAgEwvEAAAAAAAADlPhkOpt956S7ly5VJMTIxy585tbW/Tpo1Wr16dqcUBAAAAAAAgZ8rwmlJr167VmjVrVLhwYZv24OBgnTx5MtMKAwAAAAAAQM6V4ZlSV65csZkhdcuFCxfk4uKSKUUBAAAAAAAgZ8twKPXkk09qwYIF1m2LxaLU1FRNmjRJDRo0yNTiAAAAAAAAkDNl+Pa9SZMmqVGjRtq+fbuSkpI0ePBgHThwQBcuXFBUVFRW1AgAAAAAAIAcJsMzpcqXL68jR47oiSeeUMuWLXXlyhU9//zz2rVrl4oXL54VNQIAAAAAACCHyfBMKUny8vLSO++8k9m1AAAAAAAA4BGR4ZlSERERWrp0aZr2pUuXav78+ZlSFAAAAAAAAHK2DIdSEyZM0GOPPZamPX/+/Bo/fnymFAUAAAAAAICcLcOhVExMjIKCgtK0BwQEKCYmJlOKAgAAAAAAQM6W4VAqf/782rt3b5r2PXv2yMfHJ1OKAgAAAAAAQM6W4VCqXbt26tOnjzZu3KiUlBSlpKRow4YN6tu3r9q2bZsVNQIAAAAAACCHyfDT98aMGaPo6Gg1atRITk43D09NTVX79u1ZUwoAAAAAAADpkqFQyjAMxcbGat68eRo7dqx2794tNzc3VahQQQEBAVlVIwAAAAAAAHKYDIdSJUqU0IEDBxQcHKzg4OCsqgsAAAAAAAA5WIbWlHJwcFBwcLDi4+Ozqh4AAAAAAAA8AjK80Pl7772nQYMGaf/+/VlRDwAAAAAAAB4BGV7ovH379rp69apCQkLk7OwsNzc3m/0XLlzItOIAAAAAAACQM2U4lJo2bVoWlAEAAAAAAIBHSYZDqQ4dOmRFHQAAAAAAAHiEZHhNKUk6fvy43n33XbVr107nzp2TJP3www86cOBAphYHAAAAAACAnCnDodSPP/6oChUqaOvWrVqxYoUuX74sSdqzZ49GjBiR6QUCAAAAAAAg58lwKDV06FCNHTtW69atk7Ozs7W9YcOG+vXXXzO1OAAAAAAAAORMGQ6l9u3bp9atW6dpz58/v86fP58pRQEAAAAAACBny3Ao5e3trbNnz6Zp37VrlwoVKpQpRQEAAAAAACBny3Ao1bZtWw0ZMkSxsbGyWCxKTU1VVFSUBg4cqPbt22dFjQAAAAAAAMhhMhxKjR8/XqVLl1aRIkV0+fJllS1bVnXr1lXt2rX17rvvZkWNAAAAAAAAyGGcMnqAs7Oz5s6dq7CwMO3bt0+XL19W5cqVFRwcnBX1AQAAAAAAIAdKdyiVmpqqyZMna9WqVUpKSlKjRo00YsQIubm5ZWV9AAAAAAAAyIHSffveuHHj9Pbbb8vd3V2FChXS9OnT1bNnz6ysDQAAAAAAADlUukOpBQsWaPbs2VqzZo2+/vprffvtt1q4cKFSU1Ozsj4AAAAAAADkQOkOpWJiYtS0aVPrduPGjWWxWHTmzJksKQwAAAAAAAA5V7pDqRs3bsjV1dWmLVeuXEpOTs70ogAAAAAAAJCzpXuhc8Mw1LFjR7m4uFjbrl27pu7duytPnjzWthUrVmRuhQAAAAAAAMhx0h1KdejQIU3bq6++mqnFAAAAAAAA4NGQ7lAqIiIiK+sAAAAAAADAIyTda0oBAAAAAAAAmYVQCgAAAAAAAKYjlAIAAAAAAIDpHqpQ6r333pPFYlG/fv2sbdeuXVPPnj3l4+Mjd3d3hYaGKi4uzn5FAgAAAAAA4D89NKHUtm3b9PHHH6tixYo27W+99Za+/fZbLV26VD/++KPOnDmj559/3k5VAgAAAAAAID0eilDq8uXLeuWVVzR37lzlzZvX2p6QkKBPP/1UU6dOVcOGDVW1alVFRETol19+0a+//mrHigEAAAAAAHAvD0Uo1bNnTzVr1kyNGze2ad+xY4eSk5Nt2kuXLq2iRYtqy5YtZpcJAAAAAACAdHKydwH/5auvvtLOnTu1bdu2NPtiY2Pl7Owsb29vm/YCBQooNjb2rmNev35d169ft24nJiZmWr0AAAAAAAD4b9l6ptSpU6fUt29fLVy4UK6urpk27oQJE+Tl5WX9KlKkSKaNDQAAAAAAgP+WrUOpHTt26Ny5c6pSpYqcnJzk5OSkH3/8UTNmzJCTk5MKFCigpKQkXbx40ea4uLg4+fn53XXcYcOGKSEhwfp16tSpLD4TAAAAAAAA/Fu2vn2vUaNG2rdvn01bp06dVLp0aQ0ZMkRFihRRrly5FBkZqdDQUEnS4cOHFRMTo1q1at11XBcXF7m4uGRp7QAAAAAAALi7bB1KeXh4qHz58jZtefLkkY+Pj7W9c+fO6t+/v/LlyydPT0/17t1btWrVUs2aNe1RMgAAAAAAANIhW4dS6fHBBx/IwcFBoaGhun79upo0aaLZs2fbuywAAAAAAADcg8UwDMPeRdhbYmKivLy8lJCQIE9PT3uX80ACh35v7xKQjUS7vmzvEpBdjEywdwUAAAAAHhHpzVmy9ULnAAAAAAAAyJkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOmydSg1YcIEVa9eXR4eHsqfP79atWqlw4cP2/S5du2aevbsKR8fH7m7uys0NFRxcXF2qhgAAAAAAADpka1DqR9//FE9e/bUr7/+qnXr1ik5OVlPP/20rly5Yu3z1ltv6dtvv9XSpUv1448/6syZM3r++eftWDUAAAAAAAD+i5O9C7iX1atX22zPmzdP+fPn144dO1S3bl0lJCTo008/1aJFi9SwYUNJUkREhMqUKaNff/1VNWvWtEfZAAAAAAAA+A/ZeqbU7RISEiRJ+fLlkyTt2LFDycnJaty4sbVP6dKlVbRoUW3ZsuWu41y/fl2JiYk2XwAAAAAAADDPQxNKpaamql+/fqpTp47Kly8vSYqNjZWzs7O8vb1t+hYoUECxsbF3HWvChAny8vKyfhUpUiQrSwcAAAAAAMBtHppQqmfPntq/f7+++uqrBx5r2LBhSkhIsH6dOnUqEyoEAAAAAABAemXrNaVu6dWrl7777jv99NNPKly4sLXdz89PSUlJunjxos1sqbi4OPn5+d11PBcXF7m4uGRlyQAAAAAAALiHbD1TyjAM9erVSytXrtSGDRsUFBRks79q1arKlSuXIiMjrW2HDx9WTEyMatWqZXa5AAAAAAAASKdsPVOqZ8+eWrRokb755ht5eHhY14ny8vKSm5ubvLy81LlzZ/Xv31/58uWTp6enevfurVq1avHkPQAAAAAAgGwsW4dSH330kSSpfv36Nu0RERHq2LGjJOmDDz6Qg4ODQkNDdf36dTVp0kSzZ882uVIAAAAAAABkRLYOpQzD+M8+rq6u+vDDD/Xhhx+aUBEAAAAAAAAyQ7ZeUwoAAAAAAAA5E6EUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAAAAAATEcoBQAAAAAAANMRSgEAAAAAAMB0hFIAAAAAAAAwHaEUAAAA7KpPnz4KDAyUxWLR7t2779rv008/VXBwsIoXL64uXbooOTlZkrR9+3ZVqlRJZcuW1fz58639N2zYoG7dumV1+QAA4D4RSgEAAMCuXnjhBW3evFkBAQF37XPixAkNHz5cP//8s44dO6a4uDjNmTNHkvTee+9pxowZ2rZtm0aNGiVJ+ueffzRy5EhNnDjRlHMAAAAZRygFAAAAu6pbt64KFy58zz7Lli1TixYt5OfnJ4vFou7du+vLL7+UJOXKlUtXr17VtWvX5OjoKEkaOXKk+vbtK29v76wuHwAA3CcnexcAAAAA/JeYmBibmVSBgYGKiYmRJIWFhalbt266cuWKJk+erN27d+uPP/5glhQAANkcoRQAAAAeamXKlNFPP/0kSUpJSdHTTz+tzz//XF9++aWWLVsmT09PTZ06VXnz5rVzpQAA4N+4fQ8AANjF0aNHVbt2bZUsWVLVq1fXgQMH7tiPxa0hSUWLFtXJkyet29HR0SpatGiaftOmTdOLL74ob29vjRkzRosXL1bdunU1bdo0E6sFHl18tuMW3gtID0IpAABgF926dVPXrl115MgRDRkyRB07dkzTh8WtcUtoaKhWrVql2NhYGYah8PBwtW3b1qbPiRMntG7dOnXr1k3Jycm6ceOGLBaLHBwcdPnyZTtVDjxa+GzHLbwXkB6EUgAAwHTnzp3T9u3b9eqrr0q6GTicOnVKx44ds+nH4taPhm7duqlw4cI6ffq0mjRpohIlSkiS3njjDa1atUqSVKxYMY0aNUp16tRRiRIl5Ovrm+Y35X379tW0adNksVjk5eWll19+WRUqVNCHH36oXr16mX5ewKOGz3bcwnsB6cWaUgAAwHSnTp2Sv7+/nJxu/lPEYrGoaNGiiomJsQYSEotbPyo+/vjjO7Z/8sknNttdunRRly5d7jrOrQDrlpEjR2rkyJEPXB+A9OGzHbfwXkB6EUoBAICHEotbA0DOw2c7buG98Gjg9j0AAGC6IkWK6OzZs7px44YkyTAMxcTEpFm4msWtAeDhwWc7buG9gPQilAIAAKbLnz+/qlSpoi+++EKStHz5chUuXNhmSr/E4tYA8DDhsx238F5AenH7HgAAsIuPP/5YHTt21Pjx4+Xp6amIiAhJNxe3btGihVq0aGGzuLUk1a9fP92LW7u7u2vx4sWmnxcAPMr4bMctvBeQHhbDMAx7F2FviYmJ8vLyUkJCgjw9Pe1dzgMJHPq9vUtANhLt+rK9S0B2MTLB3hUAAAAAeESkN2dhphQAAMDDZKSXvStAdsEvHAAAD7kcs6bUhx9+qMDAQLm6uqpGjRr67bff7F0SAAAAAAAA7iJHhFKLFy9W//79NWLECO3cuVMhISFq0qSJzp07Z+/SAAAAAAAAcAc5IpSaOnWqunTpok6dOqls2bIKDw9X7ty59dlnn9m7NAAAAAAAANzBQ7+mVFJSknbs2KFhw4ZZ2xwcHNS4cWNt2bLljsdcv35d169ft24nJNy8Hz8xMTFrizVB6vWr9i4B2Uii5ZF/jgFuyQGfbwD+z3U+2/F/+GwHAGRTt/KV/3q23kMfSp0/f14pKSkqUKCATXuBAgX0+++/3/GYCRMmaNSoUWnaixQpkiU1AvbCUriweo93AwDkOHy2AwCyuUuXLsnL6+5/Xz30odT9GDZsmPr372/dTk1N1YULF+Tj4yOLxWLHyoDMk5iYqCJFiujUqVP3fAQnAODhwWc7AOQ8fLYjJzIMQ5cuXVLBggXv2e+hD6Uee+wxOTo6Ki4uzqY9Li5Ofn5+dzzGxcVFLi4uNm3e3t5ZVSJgV56envzlBgA5DJ/tAJDz8NmOnOZeM6RueegXOnd2dlbVqlUVGRlpbUtNTVVkZKRq1aplx8oAAAAAAABwNw/9TClJ6t+/vzp06KBq1arp8ccf17Rp03TlyhV16tTJ3qUBAAAAAADgDnJEKNWmTRv99ddfCgsLU2xsrCpVqqTVq1enWfwceJS4uLhoxIgRaW5VBQA8vPhsB4Cch892PMosxn89nw8AAAAAAADIZA/9mlIAAAAAAAB4+BBKAQAAAAAAwHSEUgAAAAAAADAdoRTwkLlx44a9SwAAAAAA4IERSgEPkQMHDmjChAm6dOmSvUsBAAAAAOCBEEoBD4k9e/aoQoUKypUrlzw8POxdDgAgE/3111/avn27duzYYe9SAAAATGMxDMOwdxEA7u3gwYOqVq2aBg8erJEjR9q7HABAJjp48KC6du0qDw8P5c6dW0uWLJGjo6O9ywIAAMhyhFJANrd//341aNBAvr6+OnjwoKSb60o5OTnZuTIAwIM6cOCAnnjiCfXo0UPdunVT4cKF5eDARHYAeJhdu3ZNrq6u9i4DeCjwrx4gG9uzZ49q1Kih8uXLKyEhQX379pUkOTk5KSUlxc7VAQAexIULF9S9e3e1b99e48aNU9GiReXg4CB+XwgAD68///xT7du318aNG+1dCvBQIJQCsqnt27erevXqGjx4sNavX68RI0Zo0aJF1mDK0dGRYAoAHmKxsbE6e/asQkNDlZqaam23WCySRDgFAA+h69ev6/Tp05oyZYqioqLsXQ6Q7RFKAdnU1atX9eabb2rEiBFydHRUmzZtNG7cOIIpAMghdu/erZMnT+rJJ5+Ug4ODTTAl3Qynrl69qu3bt9upQgBARhUrVkzz589XSkqKxowZYxNM/fuXDSkpKTp58qQ9SgSyFUIpIJuqW7eupk+fLunmX2BeXl5q27YtwRQA5BCBgYFycnLSihUrJOmOa0l99tlnevvtt5WUlGR2eQCA+xQcHKwZM2bIYrHYBFO3ZsImJSVp4MCBGjRokK5evWrPUgG7I5QCHgK3/gLz9PS0Cab69+8vSTylCQAeQgEBAfL09NSCBQtsflv+79+kR0dHq2rVqsqVK5c9SgQA3Ke7BVNJSUkaMGCAZs6cqbffflu5c+e2c6WAffH0PeAhlJiYqCVLlqhr164aMmSIJkyYYO+SAAD3YcWKFXr55Zf10ksvaejQoSpbtqykm7dwjx07VosWLdLatWtVsmRJO1cKALgfR48eVZ8+fWQYhoYOHaoffvhBM2fOVFRUlCpXrmzv8gC7I5QCHlIJCQn6+uuvVatWLf6zAgAPqdTUVM2dO1e9evVSiRIlVKtWLbm6uurPP//Ur7/+qtWrV/OfFgB4yB09elT9+/dXVFSUrly5oi1btqhKlSr2LgvIFgilgIeYYRjWW/sAAA+v3377TZMnT9axY8fk4eGh2rVrq3PnzgoODrZ3aQCATHD48GENHjxY48ePV7ly5exdDpBtEEoBAABkAykpKawRCAA5WHJyMmsEArchlAIAAMgG/j37lZmwAADgUUAoBQAAAAAAANM52LsAAAAAAAAAPHoIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACY7v8BB0ceHoDZQb0AAAAASUVORK5CYII=\n"
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "\n",
+ "\u001b[1mTransaction Type Analysis: d2\u001b[0m\n",
+ "Categories in salary transactions: 4\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " Salary% Non-Salary% Difference (pp)\n",
+ "d2 \n",
+ "BI 0.132450 0.201219 0.068769\n",
+ "I 0.069536 0.003271 0.066265\n",
+ "BS 0.052980 0.000076 0.052904\n",
+ "CI 0.745033 0.784823 0.039790\n",
+ "NR 0.000000 0.007102 0.007102\n",
+ "NP 0.000000 0.003119 0.003119\n",
+ "O 0.000000 0.000322 0.000322\n",
+ "SI 0.000000 0.000044 0.000044\n",
+ "IP 0.000000 0.000021 0.000021\n",
+ "SC 0.000000 0.000003 0.000003"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Salary% | \n",
+ " Non-Salary% | \n",
+ " Difference (pp) | \n",
+ "
\n",
+ " \n",
+ " | d2 | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | BI | \n",
+ " 0.132450 | \n",
+ " 0.201219 | \n",
+ " 0.068769 | \n",
+ "
\n",
+ " \n",
+ " | I | \n",
+ " 0.069536 | \n",
+ " 0.003271 | \n",
+ " 0.066265 | \n",
+ "
\n",
+ " \n",
+ " | BS | \n",
+ " 0.052980 | \n",
+ " 0.000076 | \n",
+ " 0.052904 | \n",
+ "
\n",
+ " \n",
+ " | CI | \n",
+ " 0.745033 | \n",
+ " 0.784823 | \n",
+ " 0.039790 | \n",
+ "
\n",
+ " \n",
+ " | NR | \n",
+ " 0.000000 | \n",
+ " 0.007102 | \n",
+ " 0.007102 | \n",
+ "
\n",
+ " \n",
+ " | NP | \n",
+ " 0.000000 | \n",
+ " 0.003119 | \n",
+ " 0.003119 | \n",
+ "
\n",
+ " \n",
+ " | O | \n",
+ " 0.000000 | \n",
+ " 0.000322 | \n",
+ " 0.000322 | \n",
+ "
\n",
+ " \n",
+ " | SI | \n",
+ " 0.000000 | \n",
+ " 0.000044 | \n",
+ " 0.000044 | \n",
+ "
\n",
+ " \n",
+ " | IP | \n",
+ " 0.000000 | \n",
+ " 0.000021 | \n",
+ " 0.000021 | \n",
+ "
\n",
+ " \n",
+ " | SC | \n",
+ " 0.000000 | \n",
+ " 0.000003 | \n",
+ " 0.000003 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "summary": "{\n \"name\": \" plot_component_bars(diff_df, col, top_n=10)\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"d2\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"IP\",\n \"I\",\n \"NP\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Salary%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.23100255836370376,\n \"min\": 0.0,\n \"max\": 0.7450331125827815,\n \"num_unique_values\": 5,\n \"samples\": [\n 0.0695364238410596,\n 0.0,\n 0.052980132450331126\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Non-Salary%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.24866465739362864,\n \"min\": 2.6167837895477805e-06,\n \"max\": 0.7848228035511251,\n \"num_unique_values\": 10,\n \"samples\": [\n 2.0934270316382244e-05,\n 0.0032709797369347257,\n 0.0031192062771409545\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Difference (pp)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.029593659578119966,\n \"min\": 2.6167837895477805e-06,\n \"max\": 0.06876894058959918,\n \"num_unique_values\": 10,\n \"samples\": [\n 2.0934270316382244e-05,\n 0.06626544410412487,\n 0.0031192062771409545\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABKYAAAJOCAYAAACN2Q8zAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAg9pJREFUeJzs3Xt8z/X///H7e+zEbGNhE7Y5z2mEnMo55MySQ2VEiAgp9GGEHCNnUhqKcpZOxEiShAw5RcwUm+M2M7bZXr8/fL1/vQ1tbF5vc7teLu/LZa/n6/l6vR6v1+s9m/uer+fbYhiGIQAAAAAAAOAhczC7AAAAAAAAADyeCKYAAAAAAABgCoIpAAAAAAAAmIJgCgAAAAAAAKYgmAIAAAAAAIApCKYAAAAAAABgCoIpAAAAAAAAmIJgCgAAAAAAAKYgmAIAAAAAAIApCKYAAIDd6Nq1q/z8/MwuA4+QhQsXymKxKCIi4j/7/vjjj7JYLPrxxx+zvK4HERERIYvFooULF5pdCgAAWY5gCgCAh8xisaTrZe//eb5fZ86c0ahRoxQeHm52KZKkevXqpet+jBo1yuxS0/jxxx/Vrl07eXt7y8nJSQUKFFDLli21evVqs0sz1Zw5c7JdqBMWFqZXX31VpUqVUq5cuVSsWDH16NFDZ8+eNbs0AAAeiMUwDMPsIgAAeJx8/vnnNsuLFy/Wxo0b9dlnn9m0P/fccypYsODDLO2h2L17t6pVq6bQ0FB17drVZl1ycrJSU1Pl7Oz80OrZuHGjoqOjrcu7du3SjBkz9O677yogIMDaXrFiRVWsWPGh1fVfRo4cqdGjR6tkyZLq1KmTfH19dfHiRX333Xf68ccftWTJEnXu3NnsMrNcSkqKkpOT5ezsLIvFIkkqX768nnjiiTThbmpqqpKSkuTk5CQHB/v9+2xERIT8/f1tvkeqVq2qS5cuqX379ipZsqROnDihWbNmKVeuXAoPD5e3t7e5RQMAcJ9yml0AAACPm5dfftlm+ddff9XGjRvTtN8uISFBuXLlysrSTOfo6PjQj/ncc8/ZLLu4uGjGjBl67rnnVK9evYdeT3qsXLlSo0eP1gsvvKClS5faXLe3335bGzZsUHJysokVPjw5cuRQjhw50tXXwcFBLi4uWVxR1pg6daqeeeYZm0CtadOmqlu3rmbNmqWxY8eaWB0AAPfPfv9UBADAY6xevXoqX7689uzZozp16ihXrlx69913JUlfffWVmjdvrkKFCsnZ2VnFixfXmDFjlJKScsd9HDp0SPXr11euXLn05JNPatKkSWmON3PmTJUrV065cuVS3rx5VbVqVS1dutS6/tSpU+rTp49Kly4tV1dXeXl5qX379nec1ycmJkYDBw6Un5+fnJ2dVbhwYXXp0kUXLlzQjz/+qGrVqkmSunXrZn1M7tZjV3eaY+rq1at66623VKRIETk7O6t06dL64IMPdPugb4vFojfeeENr165V+fLl5ezsrHLlymn9+vUZvfw2QkNDZbFYtHfv3jTrxo0bpxw5cuiff/6RZHvfatWqJVdXV/n7+2vevHlptk1MTNTIkSNVokQJOTs7q0iRInrnnXeUmJj4nzWNGDFC+fLl06effnrHMK9JkyZq0aKFdfncuXPq3r27ChYsKBcXFwUGBmrRokU229ya1+iDDz7Q7NmzVaxYMeXKlUuNGzfW6dOnZRiGxowZo8KFC8vV1VWtW7fWpUuXbPbh5+enFi1a6IcfflClSpXk4uKismXL3vHRwhMnTqh9+/bKly+fcuXKpRo1aujbb79N0++/3pu3zzHl5+engwcPauvWrdb3162A8W5zTK1YsUJVqlSRq6urnnjiCb388svWe3pL165d5ebmpn/++Udt2rSRm5ub8ufPr8GDB6f53jt79qyOHDmSrnAwJiZGXbt2lYeHhzw9PRUcHKyYmJg0/erUqZNmlFedOnWUL18+HT58+D+PAwCAvWLEFAAAdurixYt6/vnn1bFjR7388svWx/oWLlwoNzc3DRo0SG5ubtq8ebNCQkIUFxenyZMn2+zj8uXLatq0qdq1a6cXX3xRK1eu1JAhQ1ShQgU9//zzkqSPP/5Y/fv31wsvvKA333xT169f1/79+7Vz507ro2C7du3SL7/8oo4dO6pw4cKKiIjQ3LlzVa9ePR06dMg6kis+Pl7PPvusDh8+rFdffVVPPfWULly4oHXr1unvv/9WQECARo8erZCQEPXs2VPPPvusJKlWrVp3vAaGYahVq1basmWLunfvrkqVKmnDhg16++239c8//+jDDz+06f/zzz9r9erV6tOnj/LkyaMZM2YoKChIkZGR8vLyuq/78MILL6hv375asmSJKleubLNuyZIlqlevnp588kmba96sWTO9+OKL6tSpk5YvX67XX39dTk5OevXVVyXdfKSsVatW+vnnn9WzZ08FBATowIED+vDDD/Xnn39q7dq1d63n2LFjOnLkiF599VXlyZPnP+u/du2a6tWrp+PHj+uNN96Qv7+/VqxYoa5duyomJkZvvvlmmnNKSkpSv379dOnSJU2aNEkvvviiGjRooB9//FFDhgzR8ePHNXPmTA0ePFiffvppmvo6dOig3r17Kzg4WKGhoWrfvr3Wr19vHZ0WHR2tWrVqKSEhQf3795eXl5cWLVqkVq1aaeXKlWrbtq2k9L03bzdt2jT169dPbm5u+t///idJ93wkduHCherWrZuqVaum8ePHKzo6WtOnT9f27du1d+9eeXp6WvumpKSoSZMmql69uj744ANt2rRJU6ZMUfHixfX6669b+w0bNkyLFi3SyZMn7zmZv2EYat26tX7++Wf17t1bAQEBWrNmjYKDg++6zb/Fx8crPj5eTzzxRLr6AwBglwwAAGCqvn37Grf/SK5bt64hyZg3b16a/gkJCWnaevXqZeTKlcu4fv16mn0sXrzY2paYmGh4e3sbQUFB1rbWrVsb5cqVu2eNdzrmjh070uw/JCTEkGSsXr06Tf/U1FTDMAxj165dhiQjNDQ0TZ/g4GDD19fXurx27VpDkjF27Fibfi+88IJhsViM48ePW9skGU5OTjZt+/btMyQZM2fOvOf5/duKFSsMScaWLVusbZ06dTIKFSpkpKSkWNt+//33NOdx65pPmTLF2paYmGhUqlTJKFCggJGUlGQYhmF89tlnhoODg7Ft2zabY8+bN8+QZGzfvv2u9X311VeGJOPDDz9M1/lMmzbNkGR8/vnn1rakpCSjZs2ahpubmxEXF2cYhmGcPHnSkGTkz5/fiImJsfYdNmyYIckIDAw0kpOTba6Jk5OTzXvO19fXkGSsWrXK2hYbG2v4+PgYlStXtrYNGDDAkGRz/leuXDH8/f0NPz8/63VOz3szNDTUkGScPHnS2lauXDmjbt26afpu2bLF5t4mJSUZBQoUMMqXL29cu3bN2u+bb74xJBkhISHWtuDgYEOSMXr0aJt9Vq5c2ahSpYpN262+/67pTm69vydNmmRtu3HjhvHss8/e9Xvk38aMGWNIMsLCwu7ZDwAAe8ajfAAA2ClnZ2d169YtTburq6v16ytXrujChQt69tlnlZCQoCNHjtj0dXNzs5m7ysnJSU8//bROnDhhbfP09NTff/+tXbt23bWWfx8zOTlZFy9eVIkSJeTp6anff//dum7VqlUKDAy0jnj5t1sTU2fEd999pxw5cqh///427W+99ZYMw9D3339v096oUSMVL17culyxYkW5u7vbnO/96NKli86cOaMtW7ZY25YsWSJXV1cFBQXZ9M2ZM6d69eplXXZyclKvXr107tw57dmzR9LNR8cCAgJUpkwZXbhwwfpq0KCBJNkc53ZxcXGSlK7RUtLNa+jt7a1OnTpZ2xwdHdW/f3/Fx8dr69atNv3bt28vDw8P63L16tUl3ZwbLWfOnDbtSUlJaR55K1SokM39d3d3V5cuXbR3715FRUVZa3r66af1zDPPWPu5ubmpZ8+eioiI0KFDhySl7735IHbv3q1z586pT58+NnNPNW/eXGXKlLnjo4W9e/e2WX722WfTvL8WLlwowzDuOVpKunkdcubMaTPaKkeOHOrXr99/1v7TTz/pvffes45mAwDgUUUwBQCAnXryySfl5OSUpv3gwYNq27atPDw85O7urvz581vDp9jYWJu+hQsXThMI5c2bV5cvX7YuDxkyRG5ubnr66adVsmRJ9e3bV9u3b7fZ5tq1awoJCbHO8/TEE08of/78iomJsTnmX3/9pfLlyz/wud9y6tQpFSpUKE0Ic+vT8k6dOmXTXrRo0TT7uP1878dzzz0nHx8fLVmyRNLNR/G++OILtW7dOk1thQoVUu7cuW3aSpUqJUnWeZCOHTumgwcPKn/+/DavW/3OnTt311rc3d0l3Qwl0+PUqVMqWbJkmvmJ0nsNb4VURYoUuWP77de2RIkSad5zt5//qVOnVLp06TS13l5Tet6bD+LWce5US5kyZdJcGxcXF+XPn9+m7UHeX6dOnZKPj4/c3Nxs2u9Uz78dOXJEbdu2Vfny5fXJJ5/c17EBALAXzDEFAICd+vcopVtiYmJUt25dubu7a/To0SpevLhcXFz0+++/a8iQIUpNTbXpf7dPKzP+NXF4QECAjh49qm+++Ubr16/XqlWrNGfOHIWEhOi9996TJPXr10+hoaEaMGCAatasKQ8PD1ksFnXs2DHNMc2UnvO93/127txZH3/8sebMmaPt27frzJkz//lJineTmpqqChUqaOrUqXdcf3sI9G9lypSRJB04cOC+jv1f7nYNs+ra3kt63psPU3o//S8rnT59Wo0bN5aHh4e+++67dI+cAwDAXhFMAQDwCPnxxx918eJFrV69WnXq1LG2nzx58oH2mzt3bnXo0EEdOnRQUlKS2rVrp/fff1/Dhg2Ti4uLVq5cqeDgYE2ZMsW6zfXr19N8eljx4sX1xx9/3PNYGXmkz9fXV5s2bdKVK1ds/gN+65FFX1/fdO/rQXXp0kVTpkzR119/re+//1758+dXkyZN0vQ7c+aMrl69ajNq6s8//5Qk66NdxYsX1759+9SwYcMMP+JYqlQplS5dWl999ZWmT5+eZrTN7Xx9fbV//36lpqbajJrKqmt4/PhxGYZhc163n7+vr6+OHj2aZts71fRf7807Se81vXWco0ePpnkc7ujRo1n+/vL19VVYWJji4+Nt7uOdro108wMRGjdurMTERIWFhcnHxydL6wMA4GHgUT4AAB4ht0Zs/HuUSlJSkubMmXPf+7x48aLNspOTk8qWLSvDMKwfd58jR440I2NmzpyplJQUm7agoCDt27dPa9asSXOcW9vfCmxuD7XupFmzZkpJSdGsWbNs2j/88ENZLBbrJws+DBUrVlTFihX1ySefaNWqVerYsaPNnEu33LhxQx999JF1OSkpSR999JHy58+vKlWqSJJefPFF/fPPP/r444/TbH/t2jVdvXr1nrW89957unjxonr06KEbN26kWf/DDz/om2++kXTzGkZFRWnZsmU2Nc6cOVNubm6qW7du+i5AOp05c8bm/sfFxWnx4sWqVKmSvL29rTX99ttv2rFjh7Xf1atXNX/+fPn5+als2bKS0vfevJPcuXOn6/1VtWpVFShQQPPmzVNiYqK1/fvvv9fhw4fVvHnzdJ3z7c6ePasjR47cs0bp5nW4ceOG5s6da21LSUnRzJkz0/S9evWqmjVrpn/++UffffedSpYseV+1AQBgbxgxBQDAI6RWrVrKmzevgoOD1b9/f1ksFn322WcP9DhV48aN5e3trdq1a6tgwYI6fPiwZs2apebNm1tHKbVo0UKfffaZPDw8VLZsWe3YsUObNm2Sl5eXzb7efvttrVy5Uu3bt9err76qKlWq6NKlS1q3bp3mzZunwMBAFS9eXJ6enpo3b57y5Mmj3Llzq3r16vL3909TW8uWLVW/fn3973//U0REhAIDA/XDDz/oq6++0oABA2wmOn8YunTposGDB0vSXR/j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Rh988IF8fHzk5eWlvn372nwozJw5c1SyZEm5uLioYMGCeuGFF6zr1q9fr2eeeUaenp7y8vJSixYt9Ndff9kc4++//1anTp2UL18+5c6dW1WrVtXOnTu1cOFCvffee9q3b58sFossFosWLlwoKe2jfAcOHFCDBg3k6uoqLy8v9ezZ0+a+POh5ZFemBlNvv/22hg4dqo4dO6pChQp65ZVXNHDgQI0fP17S/08fo6OjbbaLjo6+azLp7Owsd3d3mxcAAJlt2bJlCgwMVJkyZSRJefPmVe7cubV582ZJN4OqnTt3qnz58mm2vXz5shISEiRJqampWrZsmSpXrmzTJzk5WUOGDLE+3n716lVZLBY5ODjc8xdPAADw6HJzc5Obm5vWrl1rM0XN7RwcHDRjxgwdPHhQixYt0ubNm/XOO+/ctX98fLyaNWumsLAw7d27V02bNlXLli0VGRlp0++DDz5QYGCg9u7dqxEjRqhHjx5aunSpTS2ff/65nnzySTVo0OC+znHUqFFq27atDhw4oFdffVWpqakqXLiwVqxYoUOHDikkJETvvvuuli9fbrPdli1b9Ndff2nLli1atGiRFi5caA2Idu/erf79+2v06NE6evSo1q9frzp16li3vXr1qgYNGqTdu3crLCxMDg4Oatu2rVJTU63Xp27duvrnn3+0bt067du3T++8845SU1PVoUMHvfXWWypXrpzOnj2rs2fPqkOHDmnO6+rVq2rSpIny5s2rXbt2acWKFdq0aVOaYO9BziO7MvVRvoSEBDk42GZjOXLksL45/P395e3trbCwMFWqVEnSzTmjdu7cqddff/1hlwsAgNWCBQv02muvWZdz5Mih5cuX6+2339aNGzeUnJysAQMGqGbNmpKkefPm6cyZMxo9erSOHDmiXr16yWKx6MaNG3rqqafS/GVw8uTJ6tKli/Vx9tGjR6tZs2bWdQAAIPvJmTOnFi5cqNdee03z5s3TU089pbp166pjx46qWLGitd+AAQOsX/v5+Wns2LHq3bu35syZc8f9BgYG2kwDMGbMGK1Zs0br1q2zCU4aNGigt956y7r85JNP6o033tBXX32lF198UdLNidW7du0qi8VyX+fYuXNndevWzabt39Px+Pv7a8eOHVq+fLn1mNLNPwLOmjVLOXLkUJkyZdS8eXOFhYXptddeU2RkpHLnzq0WLVooT5488vX1tfmjX1BQkM3xPv30U+XPn1+HDh1S+fLltXTpUp0/f167du2yfnBNiRIlrP3d3NyUM2fOez66t3TpUl2/fl2LFy9W7ty5JUmzZs1Sy5YtNXHiROvvdA9yHtmVqcFUy5Yt9f7776to0aIqV66c9u7dq6lTp1ofi7BYLBowYIDGjh2rkiVLyt/fXyNGjFChQoXUpk0bM0sHADzmfvnllzRtjRo10p49e+7Yv3fv3tava9asqf37999z/++++67NcosWLayTrAMAgOwrKChIzZs317Zt2/Trr7/q+++/16RJk/TJJ5+oa9eukqRNmzZp/PjxOnLkiOLi4nTjxg1dv35dCQkJypUrV5p9xsfHa9SoUfr222919uxZ3bhxQ9euXUszYqpq1ao2yy4uLnrllVf06aef6sUXX9Tvv/+uP/74Q+vWrbvv87v9GJI0e/Zsffrpp4qMjNS1a9eUlJRkHZxyS7ly5ZQjRw7rso+Pjw4cOCBJeu655+Tr66tixYqpadOmatq0qdq2bWu9FseOHVNISIh27typCxcuWAfDREZGqnz58goPD1flypUz/GnK/3b48GEFBgZaQylJql27tlJTU3X06FFrMPUg55Fdmfoo38yZM/XCCy+oT58+CggI0ODBg9WrVy+NGTPG2uedd95Rv3791LNnT1WrVk3x8fFav369XFxcTKwcAAAAAICs4eLioueee04jRozQL7/8oq5du2rkyJGSpIiICLVo0UIVK1bUqlWrtGfPHs2ePVuSrBOP327w4MFas2aNxo0bp23btik8PFwVKlRI0//focotPXr00MaNG/X3338rNDRUDRo0kK+v732f2+3H+PLLLzV48GB1795dP/zwg8LDw9WtW7c0td0+SbrFYrEGTHny5NHvv/+uL774Qj4+PgoJCVFgYKBiYmIk3RwUc+nSJX388cfauXOndu7cKen/Xy9XV9f7Pp+MepDzyK5MDaby5MmjadOm6dSpU7p27Zr++usvjR071mamfovFotGjRysqKkrXr1/Xpk2bVKpUKROrBgAAAADg4SlbtqyuXr0qSdqzZ49SU1M1ZcoU1ahRQ6VKldKZM2fuuf327dvVtWtXtW3bVhUqVJC3t7ciIiLSdewKFSqoatWq+vjjj7V06VLrE06ZZfv27apVq5b69OmjypUrq0SJEmkmJk+PnDlzqlGj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\n"
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "\n",
+ "\u001b[1mTransaction Type Analysis: d3\u001b[0m\n",
+ "Categories in salary transactions: 1\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " Salary% Non-Salary% Difference (pp)\n",
+ "d3 \n",
+ "D 0.0 0.808003 0.808003\n",
+ "C 1.0 0.191997 0.808003"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Salary% | \n",
+ " Non-Salary% | \n",
+ " Difference (pp) | \n",
+ "
\n",
+ " \n",
+ " | d3 | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | D | \n",
+ " 0.0 | \n",
+ " 0.808003 | \n",
+ " 0.808003 | \n",
+ "
\n",
+ " \n",
+ " | C | \n",
+ " 1.0 | \n",
+ " 0.191997 | \n",
+ " 0.808003 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "summary": "{\n \"name\": \" plot_component_bars(diff_df, col, top_n=10)\",\n \"rows\": 2,\n \"fields\": [\n {\n \"column\": \"d3\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"C\",\n \"D\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Salary%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7071067811865476,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 2,\n \"samples\": [\n 1.0,\n 0.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Non-Salary%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.43558152231033176,\n \"min\": 0.19199735181480498,\n \"max\": 0.8080026481851951,\n \"num_unique_values\": 2,\n \"samples\": [\n 0.19199735181480498,\n 0.8080026481851951\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Difference (pp)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.1102230246251565e-16,\n \"min\": 0.808002648185195,\n \"max\": 0.8080026481851951,\n \"num_unique_values\": 2,\n \"samples\": [\n 0.808002648185195,\n 0.8080026481851951\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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S7q9jKxFixbavHmzunXrplKlSmnfvn364IMPdPToUX355Zf3refYsWM6fPiwXn/9deXKletf679x44bq1q2r48ePq1evXgoICNCKFSsUGhqqS5cu6c0330w1psTERPXu3VsXLlzQxIkT1aZNG9WvX18//fSTBg4cqOPHj2vGjBkaMGCAFixYkKq+tm3bqnv37goJCVF4eLhefvllrV271jorLTY2VjVr1tT169fVp08feXl5adGiRWrRooVWrlyp1q1bS0rbZ/NuU6dOVe/eveXm5qb//e9/kvTAZbALFy5Up06dVLVqVY0bN06xsbGaNm2atmzZot27d8vT09PaNzk5WY0aNVK1atX0/vvv68cff9TkyZNVtGhRvfHGG9Z+gwYN0qJFi3TixIkHbtxvGIZatmypzZs3q3v37ipVqpS++OILhYSE3Pea+Ph4JSYm6vz581q8eLH2799vDawBAHjsGQAA4LHSs2dP4+7/RdepU8eQZMyZMydV/+vXr6dqCwsLM3LmzGncvHkz1T0WL15sbUtISDC8vb2N4OBga1vLli2NMmXKPLDGe73m1q1bU91/6NChhiRj9erVqfqnpKQYhmEYO3bsMCQZ4eHhqfqEhIQYfn5+1uMvv/zSkGSMHj3apt9LL71kWCwW4/jx49Y2SYajo6NN2549ewxJxowZMx44vn9asWKFIcnYuHGjta19+/aGj4+PkZycbG37/fffU43jzns+efJka1tCQoJRoUIFI1++fEZiYqJhGIbxySefGHZ2dsYvv/xi89pz5swxJBlbtmy5b31fffWVIcn44IMP0jSeqVOnGpKMTz/91NqWmJho1KhRw3BzczPi4+MNwzCMEydOGJKMvHnzGpcuXbL2HTRokCHJKF++vJGUlGTznjg6Otp85vz8/AxJxqpVq6xtly9fNgoUKGBUrFjR2ta3b19Dks34r1y5YgQEBBj+/v7W9zktn83w8HBDknHixAlrW5kyZYw6deqk6rtx40abn21iYqKRL18+IygoyLhx44a13zfffGNIMoYOHWptCwkJMSQZI0eOtLlnxYoVjcqVK9u03en7z5ru5c7ne+LEida2W7duGc8+++x9f0caNWpkSLJ+3sPCwmxqBwDgccbyPQAAnhBOTk7q1KlTqnYXFxfr91euXNH58+f17LPP6vr16zp8+LBNXzc3N5u9qhwd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R44c0dq1a1W7dm3rtdeuXVP//v21c+dORUREyM7OTq1bt1ZKSor1/alTp47+/vtvrVmzRnv27NE777yjlJQUtW3bVm+99ZbKlCmjM2fO6MyZM2rbtm2qcV27dk2NGjVS7ty5tWPHDq1YsUI//vhjqlDvUcaRHbF8DwAAAECmCgsL07fffquYmBg1atRIuXLl0vHjx/XRRx8pNDRUY8eOlbu7u8LDw63XPOhcly5d1KJFC7Vo0UJFihTRiBEjrHvt1K1bV2FhYTav/+abb2rq1KmyWCzy8PDQK6+8orJly8rNzU3Lli0z500A0sDe3l4LFy5U165dNWfOHFWqVEl16tRRu3btVK5cOWu/vn37Wr/39/fX6NGj1b17d82ePfue9y1fvrzKly9vPR41apS++OILrVmzxiY0qV+/vt566y3rccGCBdWrVy999dVXatOmjaTbm6iHhobKYrE81BhfeeUVderUyabtztMxJSkgIEBbt27V8uXLra8pSblz59bMmTOVI0cOlSxZUk2bNlVERIS6du2q6Ohoubq6qlmzZsqVK5f8/PxUsWJF67XBwcE2r7dgwQLlzZtXBw8eVFBQkJYuXapz585px44dypMnjyTZhOBubm6yt7d/4HK9pUuX6ubNm1q8eLFcXV0lSTNnzlTz5s01YcIE5c+f/5HHkR0RSgEAAADIVB999NE920uUKKGtW7em+9z8+fNtjrt27aquXbve9/XXrFljczx8+HANHz78ARUDWSc4OFhNmzbVL7/8ot9++03ff/+9Jk6cqPnz5ys0NFSS9OOPP2rcuHE6fPiw4uPjdevWLd28eVPXr19Xzpw5U93z6tWrGj58uL799lvr0tgbN26kmilVpUoVm2NnZ2e99tprWrBggdq0aaPff/9d+/fvT/U7lR53v4YkzZo1SwsWLFB0dLRu3LihxMREVahQwaZPmTJlrE/RlKQCBQpo3759kqTnnntOfn5+KlKkiBo3bqzGjRurdevW1vfi2LFjGjp0qLZt26bz589bZ0hFR0crKChIkZGRqlixojWQehiHDh1S+fLlrYGUJNWqVUspKSk6cuSINZR6lHFkRyzfAwAAAADgMeLs7KznnntOQ4YM0a+//qrQ0FANGzZM0u1905o1a6Zy5cpp1apV2rVrl2bNmiVJ1k3G7zZgwAB98cUXGjt2rH755RdFRkaq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AAAAAAAA2USaQyl3d3fNnj1bU6dOVWhoqObPn69ffvlFly9fVlxcnPbv36+qVatmeIF///23OnToIC8vL7m4uKhs2bLauXOn9bxhGBo6dKgKFCggFxcXNWzYUMeOHcvwOgAAAAAAAJBx0r3Rec2aNbVz507lzp1bFStW1M8//yxPT89MKE26ePGiatWqJQcHB33//fc6ePCgJk+erNy5c1v7TJw4UdOnT9ecOXO0bds2ubq6qlGjRrp582am1AQAAAAAAIBHl+aNzm/duqW5c+fq0KFDKl++vN577z21bdtW3bt318KFCzVz5kzlz58/Q4ubMGGCfH19FR4ebm0LCAiwfm8YhqZOnarBgwerZcuWkqTFixcrf/78+vLLL9WuXbsMrQcAAAAAAAAZI80zpTp37qyZM2fK1dVV4eHh6tevn4oXL64NGzaocePGqlGjhj788MMMLW7NmjWqUqWKXn75ZeXLl08VK1bUvHnzrOdPnDihmJgYNWzY0Nrm4eGhatWqaevWrfe9b0JCguLj422+AAAAAAAAYJ40h1JfffWVVq1apfHjx2v9+vX69ttvrec6d+6s3377Tb/88kuGFvfnn3/qww8/VGBgoNatW6c33nhDffr0sW6oHhMTI0mpZmjlz5/feu5exo0bJw8PD+uXr69vhtYNAAAAAACAB0tzKJU/f3798MMPSkxM1IYNG+Tl5WVzPl++fFq6dGmGFpeSkqJKlSpp7Nixqlixorp166auXbtqzpw5j3TfQYMG6fLly9avU6dOZVDFAAAAAAAASIs0h1IzZ87UmDFj5OLiou7du2vq1KmZWNZtBQoUUOnSpW3aSpUqpejoaEmSt7e3JCk2NtamT2xsrPXcvTg5Ocnd3d3mCwAAAAAAAOZJcyj13HPPKTY2VjExMfrrr79Us2bNzKxLklSrVi0dOXLEpu3o0aPy8/OTdHvTc29vb0VERFjPx8fHa9u2bapRo0am1wcAAAAAAICHk+an70mSxWJR3rx5M6uWVPr166eaNWtq7NixatOmjbZv3665c+dq7ty51nr69u2r0aNHKzAwUAEBARoyZIh8fHzUqlUr0+oEAAAAAABA+qRpplTjxo3122+//Wu/K1euaMKECZo1a9YjFyZJVatW1RdffKHPPvtMQUFBGjVqlKZOnapXX33V2uedd95R79691a1bN1WtWlVX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\n"
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "**Conclusion**:\n",
+ "There are no clear distinguishing criterion for salaries using the days of the month and transaction types."
+ ],
+ "metadata": {
+ "id": "GGFCb__L4tbk"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### H3: Consistently high credits"
+ ],
+ "metadata": {
+ "id": "qm1FX4WyDR2-"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "def identify_consistent_high_credits(df, n_months=3, cv_threshold=0.15):\n",
+ " \"\"\"\n",
+ " Identifies salary-like transactions by:\n",
+ " 1. Finding monthly max credits per account\n",
+ " 2. Calculating consistency (CV) of these max amounts\n",
+ " 3. Flagging ONLY the max transactions from consistent accounts\n",
+ " \"\"\"\n",
+ " # Convert to datetime and extract month\n",
+ " df['month'] = pd.to_datetime(df['trx_start_date']).dt.to_period('M')\n",
+ "\n",
+ " # Filter only credit transactions\n",
+ " credits = df[df['d3'] == 'C'].copy()\n",
+ "\n",
+ " # Get monthly max credits per account (with transaction IDs)\n",
+ " monthly_max = credits.loc[credits.groupby(['accountid', 'month'])['amount'].idxmax()]\n",
+ "\n",
+ " # Calculate dispersion metrics for each account\n",
+ " dispersion = monthly_max.groupby('accountid').agg(\n",
+ " mean_amount=('amount', 'mean'),\n",
+ " std_amount=('amount', 'std'),\n",
+ " count_months=('amount', 'count'),\n",
+ " mad=('amount', lambda x: np.mean(np.abs(x - np.mean(x)))), # Mean Absolute Deviation\n",
+ " cv=('amount', lambda x: np.mean(np.abs(x - np.mean(x)))/np.mean(x) if len(x) > 1 and np.mean(x) != 0 else np.nan) # MAD/Mean ratio as CV\n",
+ " ).reset_index()\n",
+ "\n",
+ " # Identify consistent accounts\n",
+ " consistent_accounts = dispersion[\n",
+ " (dispersion['count_months'] >= n_months) &\n",
+ " (dispersion['cv'] <= cv_threshold)\n",
+ " ]['accountid']\n",
+ "\n",
+ " # Create flag column (initialize with 0)\n",
+ " df['H3'] = 0\n",
+ "\n",
+ " # Flag ONLY the specific max transactions from consistent accounts\n",
+ " df.loc[\n",
+ " df.index.isin(monthly_max[monthly_max['accountid'].isin(consistent_accounts)].index),\n",
+ " 'H3'\n",
+ " ] = 1\n",
+ "\n",
+ " return df\n",
+ "\n",
+ "df = identify_consistent_high_credits(df, n_months=9, cv_threshold=0.15)\n",
+ "\n",
+ "# View flagged transactions\n",
+ "salary_candidates = df[df['H3'] == 1]\n",
+ "print(f\"Identified {len(salary_candidates)} salary-like transactions\")\n",
+ "display(salary_candidates.sort_values(['accountid', 'trx_start_date']))"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 894
+ },
+ "id": "oGI8Esgez9p0",
+ "outputId": "84cb5be9-4e25-4fcc-f742-eea291cea4bc"
+ },
+ "execution_count": 16,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Identified 468635 salary-like transactions\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " id accountid trx_start_date trx_end_date amount d1 d2 d3 \\\n",
+ "4396016 376992 0006538016 2024-03-15 2024-03-15 10300.0 T CI C \n",
+ "4778410 759398 0006538016 2024-04-11 2024-04-11 10600.0 T CI C \n",
+ "5160885 1141852 0006538016 2024-05-14 2024-05-14 10700.0 T CI C \n",
+ "189013 1524306 0006538016 2024-06-10 2024-06-10 11000.0 T CI C \n",
+ "571487 1906760 0006538016 2024-07-04 2024-07-04 10700.0 T CI C \n",
+ "... ... ... ... ... ... .. .. .. \n",
+ "1913542 3248825 2277851016 2024-11-01 2024-11-01 8800.0 T CI C \n",
+ "2678451 4013733 2277851016 2024-12-29 2024-12-29 8000.0 T CI C \n",
+ "3060877 4396187 2277851016 2025-01-24 2025-01-24 8480.0 T CI C \n",
+ "3443339 4778641 2277851016 2025-02-22 2025-02-22 8400.0 T CI C \n",
+ "3825785 5161095 2277851016 2025-03-22 2025-03-22 8720.0 T CI C \n",
+ "\n",
+ " description d4 year \\\n",
+ "4396016 Online : wayde 0006538 2024 \n",
+ "4778410 Online : wayde 0006538 2024 \n",
+ "5160885 Online : wayde 0006538 2024 \n",
+ "189013 Online : wayde 0006538 2024 \n",
+ "571487 Online : wayde 0006538 2024 \n",
+ "... ... ... ... \n",
+ "1913542 NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA 2277851 2024 \n",
+ "2678451 NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA 2277851 2024 \n",
+ "3060877 NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA 2277851 2025 \n",
+ "3443339 NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA 2277851 2025 \n",
+ "3825785 NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA 2277851 2025 \n",
+ "\n",
+ " month day_of_month H1 H3 \n",
+ "4396016 2024-03 15 0 1 \n",
+ "4778410 2024-04 11 0 1 \n",
+ "5160885 2024-05 14 0 1 \n",
+ "189013 2024-06 10 0 1 \n",
+ "571487 2024-07 4 0 1 \n",
+ "... ... ... .. .. \n",
+ "1913542 2024-11 1 0 1 \n",
+ "2678451 2024-12 29 0 1 \n",
+ "3060877 2025-01 24 0 1 \n",
+ "3443339 2025-02 22 0 1 \n",
+ "3825785 2025-03 22 0 1 \n",
+ "\n",
+ "[468635 rows x 15 columns]"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " id | \n",
+ " accountid | \n",
+ " trx_start_date | \n",
+ " trx_end_date | \n",
+ " amount | \n",
+ " d1 | \n",
+ " d2 | \n",
+ " d3 | \n",
+ " description | \n",
+ " d4 | \n",
+ " year | \n",
+ " month | \n",
+ " day_of_month | \n",
+ " H1 | \n",
+ " H3 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 4396016 | \n",
+ " 376992 | \n",
+ " 0006538016 | \n",
+ " 2024-03-15 | \n",
+ " 2024-03-15 | \n",
+ " 10300.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " Online : wayde | \n",
+ " 0006538 | \n",
+ " 2024 | \n",
+ " 2024-03 | \n",
+ " 15 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 4778410 | \n",
+ " 759398 | \n",
+ " 0006538016 | \n",
+ " 2024-04-11 | \n",
+ " 2024-04-11 | \n",
+ " 10600.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " Online : wayde | \n",
+ " 0006538 | \n",
+ " 2024 | \n",
+ " 2024-04 | \n",
+ " 11 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 5160885 | \n",
+ " 1141852 | \n",
+ " 0006538016 | \n",
+ " 2024-05-14 | \n",
+ " 2024-05-14 | \n",
+ " 10700.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " Online : wayde | \n",
+ " 0006538 | \n",
+ " 2024 | \n",
+ " 2024-05 | \n",
+ " 14 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 189013 | \n",
+ " 1524306 | \n",
+ " 0006538016 | \n",
+ " 2024-06-10 | \n",
+ " 2024-06-10 | \n",
+ " 11000.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " Online : wayde | \n",
+ " 0006538 | \n",
+ " 2024 | \n",
+ " 2024-06 | \n",
+ " 10 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 571487 | \n",
+ " 1906760 | \n",
+ " 0006538016 | \n",
+ " 2024-07-04 | \n",
+ " 2024-07-04 | \n",
+ " 10700.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " Online : wayde | \n",
+ " 0006538 | \n",
+ " 2024 | \n",
+ " 2024-07 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 1913542 | \n",
+ " 3248825 | \n",
+ " 2277851016 | \n",
+ " 2024-11-01 | \n",
+ " 2024-11-01 | \n",
+ " 8800.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA | \n",
+ " 2277851 | \n",
+ " 2024 | \n",
+ " 2024-11 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 2678451 | \n",
+ " 4013733 | \n",
+ " 2277851016 | \n",
+ " 2024-12-29 | \n",
+ " 2024-12-29 | \n",
+ " 8000.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA | \n",
+ " 2277851 | \n",
+ " 2024 | \n",
+ " 2024-12 | \n",
+ " 29 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 3060877 | \n",
+ " 4396187 | \n",
+ " 2277851016 | \n",
+ " 2025-01-24 | \n",
+ " 2025-01-24 | \n",
+ " 8480.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA | \n",
+ " 2277851 | \n",
+ " 2025 | \n",
+ " 2025-01 | \n",
+ " 24 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 3443339 | \n",
+ " 4778641 | \n",
+ " 2277851016 | \n",
+ " 2025-02-22 | \n",
+ " 2025-02-22 | \n",
+ " 8400.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA | \n",
+ " 2277851 | \n",
+ " 2025 | \n",
+ " 2025-02 | \n",
+ " 22 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 3825785 | \n",
+ " 5161095 | \n",
+ " 2277851016 | \n",
+ " 2025-03-22 | \n",
+ " 2025-03-22 | \n",
+ " 8720.0 | \n",
+ " T | \n",
+ " CI | \n",
+ " C | \n",
+ " NIP FRM ANYAPA MUHAMMED YAKUBU-FT For self RA | \n",
+ " 2277851 | \n",
+ " 2025 | \n",
+ " 2025-03 | \n",
+ " 22 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
468635 rows × 15 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe"
+ }
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "#### Evaluate H3\n",
+ "Evaluate Efficiency of H3 by seeing how many percent of the known salary transactions it captures.\n",
+ "\n",
+ "\n",
+ "**Result**: H3 captures **78%** of known salary transactions, this effectiveness is satisfactory for identifying probable salaries."
+ ],
+ "metadata": {
+ "id": "qBVAe0md6SFM"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# check percentage of transactions that passed H1 failed H3\n",
+ "df[((df[\"H1\"]==1) & (df[\"H3\"]==1))].shape[0] / df[df[\"H1\"]==1].shape[0] * 100"
+ ],
+ "metadata": {
+ "id": "UatRQ66GQEfm",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "60f55bf0-20d4-441a-cf2b-b4cb0bf7269e"
+ },
+ "execution_count": 17,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "78.28760643330179"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 17
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Salary Earning Customers"
+ ],
+ "metadata": {
+ "id": "KTWRsARKuvp6"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# define function to extract salary table from transactions table\n",
+ "def get_salary_earner_summary(df, min_salary_months=9, col=\"H1\"):\n",
+ " \"\"\"\n",
+ " Returns a monthly aggregated table of salary amounts for confirmed salary earners\n",
+ " Parameters:\n",
+ " - min_salary_months: Minimum number of months with salary transactions (default 9)\n",
+ " - col: Column name for salary indicator (default \"H1\")\n",
+ " Returns:\n",
+ " - DataFrame with columns: [accountid, year_month, salary_max, month_seq, day_of_month]\n",
+ " \"\"\"\n",
+ " # 1. Extract month period and filter salary transactions\n",
+ " df['year_month'] = pd.to_datetime(df['trx_start_date']).dt.to_period('M')\n",
+ " # Extract day of month from transaction date\n",
+ " df['day_of_month'] = pd.to_datetime(df['trx_start_date']).dt.day\n",
+ "\n",
+ " salary_txns = df[df[col] == 1].copy()\n",
+ "\n",
+ " # 2. Identify salary earners (accounts with salary in >= N months)\n",
+ " salary_months = salary_txns.groupby('accountid')['year_month'].nunique()\n",
+ " salary_earners = salary_months[salary_months >= min_salary_months].index\n",
+ "\n",
+ " # 3. Get transactions only for salary earners\n",
+ " salary_earner_txns = salary_txns[salary_txns['accountid'].isin(salary_earners)]\n",
+ "\n",
+ " # 4. For each account and month, find the transaction with the maximum amount\n",
+ " # This assumes the largest transaction is the main salary\n",
+ " idx_max_amount = salary_earner_txns.groupby(['accountid', 'year_month'])['amount'].idxmax()\n",
+ "\n",
+ " # 5. Create summary with the day of month information\n",
+ " max_txns = salary_earner_txns.loc[idx_max_amount]\n",
+ "\n",
+ " # 6. Aggregate and create the summary dataframe\n",
+ " summary = (\n",
+ " max_txns\n",
+ " .groupby(['accountid', 'year_month'])\n",
+ " .agg(\n",
+ " salary_max=('amount', 'max'),\n",
+ " day_of_month=('day_of_month', 'first') # Get day of month from the max transaction\n",
+ " )\n",
+ " .reset_index()\n",
+ " )\n",
+ "\n",
+ " # 7. Add month sequence for trend analysis\n",
+ " summary['month_seq'] = (\n",
+ " summary.groupby('accountid')['year_month']\n",
+ " .rank(method='dense').astype(int)\n",
+ " )\n",
+ "\n",
+ " return summary.sort_values(['accountid', 'year_month'])\n",
+ "\n",
+ "# Generate the summary for verified salary transactions (using H1)\n",
+ "verified_salary_earner_summary = get_salary_earner_summary(df, min_salary_months=9)\n",
+ "\n",
+ "# Display results\n",
+ "print(f\"Found {verified_salary_earner_summary['accountid'].nunique()} verified salary earners\")\n",
+ "display(verified_salary_earner_summary.head(20))"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 694
+ },
+ "id": "PWVY8QLqu4ud",
+ "outputId": "0e617d94-8955-4ff9-867b-f4a4ccbedf03"
+ },
+ "execution_count": 19,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Found 290 verified salary earners\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " accountid year_month salary_max day_of_month month_seq\n",
+ "0 0532207024 2024-03 59950.0 23 1\n",
+ "1 0532207024 2024-04 58850.0 16 2\n",
+ "2 0532207024 2024-05 57200.0 15 3\n",
+ "3 0532207024 2024-06 56650.0 16 4\n",
+ "4 0532207024 2024-07 56650.0 9 5\n",
+ "5 0532207024 2024-08 60500.0 10 6\n",
+ "6 0532207024 2024-09 57750.0 6 7\n",
+ "7 0532207024 2024-10 59950.0 30 8\n",
+ "8 0532207024 2024-11 56100.0 26 9\n",
+ "9 0532207024 2024-12 58300.0 24 10\n",
+ "10 0532207024 2025-01 59950.0 22 11\n",
+ "11 0532207024 2025-02 57750.0 20 12\n",
+ "12 0532207024 2025-03 56100.0 22 13\n",
+ "13 0532452020 2024-03 83200.0 21 1\n",
+ "14 0532452020 2024-04 82400.0 16 2\n",
+ "15 0532452020 2024-05 81600.0 14 3\n",
+ "16 0532452020 2024-06 84000.0 12 4\n",
+ "17 0532452020 2024-07 83200.0 12 5\n",
+ "18 0532452020 2024-08 86400.0 11 6\n",
+ "19 0532452020 2024-09 80000.0 7 7"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " accountid | \n",
+ " year_month | \n",
+ " salary_max | \n",
+ " day_of_month | \n",
+ " month_seq | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0532207024 | \n",
+ " 2024-03 | \n",
+ " 59950.0 | \n",
+ " 23 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0532207024 | \n",
+ " 2024-04 | \n",
+ " 58850.0 | \n",
+ " 16 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 0532207024 | \n",
+ " 2024-05 | \n",
+ " 57200.0 | \n",
+ " 15 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 0532207024 | \n",
+ " 2024-06 | \n",
+ " 56650.0 | \n",
+ " 16 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 0532207024 | \n",
+ " 2024-07 | \n",
+ " 56650.0 | \n",
+ " 9 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0532207024 | \n",
+ " 2024-08 | \n",
+ " 60500.0 | \n",
+ " 10 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 0532207024 | \n",
+ " 2024-09 | \n",
+ " 57750.0 | \n",
+ " 6 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 0532207024 | \n",
+ " 2024-10 | \n",
+ " 59950.0 | \n",
+ " 30 | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 0532207024 | \n",
+ " 2024-11 | \n",
+ " 56100.0 | \n",
+ " 26 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 0532207024 | \n",
+ " 2024-12 | \n",
+ " 58300.0 | \n",
+ " 24 | \n",
+ " 10 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " 0532207024 | \n",
+ " 2025-01 | \n",
+ " 59950.0 | \n",
+ " 22 | \n",
+ " 11 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " 0532207024 | \n",
+ " 2025-02 | \n",
+ " 57750.0 | \n",
+ " 20 | \n",
+ " 12 | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " 0532207024 | \n",
+ " 2025-03 | \n",
+ " 56100.0 | \n",
+ " 22 | \n",
+ " 13 | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " 0532452020 | \n",
+ " 2024-03 | \n",
+ " 83200.0 | \n",
+ " 21 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " 0532452020 | \n",
+ " 2024-04 | \n",
+ " 82400.0 | \n",
+ " 16 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 15 | \n",
+ " 0532452020 | \n",
+ " 2024-05 | \n",
+ " 81600.0 | \n",
+ " 14 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " 0532452020 | \n",
+ " 2024-06 | \n",
+ " 84000.0 | \n",
+ " 12 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " 0532452020 | \n",
+ " 2024-07 | \n",
+ " 83200.0 | \n",
+ " 12 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 18 | \n",
+ " 0532452020 | \n",
+ " 2024-08 | \n",
+ " 86400.0 | \n",
+ " 11 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " 0532452020 | \n",
+ " 2024-09 | \n",
+ " 80000.0 | \n",
+ " 7 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "summary": "{\n \"name\": \"display(verified_salary_earner_summary\",\n \"rows\": 20,\n \"fields\": [\n {\n \"column\": \"accountid\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"0532452020\",\n \"0532207024\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"year_month\",\n \"properties\": {\n \"dtype\": \"period[M]\",\n \"num_unique_values\": 13,\n \"samples\": [\n \"2025-02\",\n \"2024-12\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"salary_max\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 12272.021023450048,\n \"min\": 56100.0,\n \"max\": 86400.0,\n \"num_unique_values\": 14,\n \"samples\": [\n 82400.0,\n 84000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"day_of_month\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 16,\n \"samples\": [\n 23,\n 16\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"month_seq\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3,\n \"min\": 1,\n \"max\": 13,\n \"num_unique_values\": 13,\n \"samples\": [\n 12,\n 10\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# extract for probable salary earners\n",
+ "\n",
+ "# exclude already verified salary eaners\n",
+ "unverified_df = df[~df[\"accountid\"].isin(verified_salary_earner_summary[\"accountid\"].unique())]\n",
+ "\n",
+ "probable_salary_earner_summary = get_salary_earner_summary(unverified_df, min_salary_months=9, col = \"H3\")\n",
+ "\n",
+ "# Display results\n",
+ "print(f\"Found {probable_salary_earner_summary['accountid'].nunique()} probable salary earners\")\n",
+ "display(probable_salary_earner_summary.head(20))"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 694
+ },
+ "id": "XjlW_AQnn4Uh",
+ "outputId": "bb4041d0-e28a-494f-8a4b-8d656760ee02"
+ },
+ "execution_count": 23,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Found 35867 probable salary earners\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " accountid year_month salary_max day_of_month month_seq\n",
+ "0 0006538016 2024-03 10300.0 15 1\n",
+ "1 0006538016 2024-04 10600.0 11 2\n",
+ "2 0006538016 2024-05 10700.0 14 3\n",
+ "3 0006538016 2024-06 11000.0 10 4\n",
+ "4 0006538016 2024-07 10700.0 4 5\n",
+ "5 0006538016 2024-08 10700.0 4 6\n",
+ "6 0006538016 2024-09 10700.0 2 7\n",
+ "7 0006538016 2024-10 10700.0 28 8\n",
+ "8 0006538016 2024-11 10400.0 21 9\n",
+ "9 0006538016 2024-12 10000.0 19 10\n",
+ "10 0006538016 2025-01 10100.0 18 11\n",
+ "11 0006538016 2025-02 10200.0 18 12\n",
+ "12 0006538016 2025-03 10900.0 14 13\n",
+ "13 0010954040 2024-03 74900.0 25 1\n",
+ "14 0010954040 2024-04 74200.0 18 2\n",
+ "15 0010954040 2024-05 72100.0 16 3\n",
+ "16 0010954040 2024-06 72800.0 14 4\n",
+ "17 0010954040 2024-07 74200.0 10 5\n",
+ "18 0010954040 2024-08 72100.0 12 6\n",
+ "19 0010954040 2024-09 74900.0 6 7"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " accountid | \n",
+ " year_month | \n",
+ " salary_max | \n",
+ " day_of_month | \n",
+ " month_seq | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0006538016 | \n",
+ " 2024-03 | \n",
+ " 10300.0 | \n",
+ " 15 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0006538016 | \n",
+ " 2024-04 | \n",
+ " 10600.0 | \n",
+ " 11 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 0006538016 | \n",
+ " 2024-05 | \n",
+ " 10700.0 | \n",
+ " 14 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 0006538016 | \n",
+ " 2024-06 | \n",
+ " 11000.0 | \n",
+ " 10 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 0006538016 | \n",
+ " 2024-07 | \n",
+ " 10700.0 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0006538016 | \n",
+ " 2024-08 | \n",
+ " 10700.0 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 0006538016 | \n",
+ " 2024-09 | \n",
+ " 10700.0 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 0006538016 | \n",
+ " 2024-10 | \n",
+ " 10700.0 | \n",
+ " 28 | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 0006538016 | \n",
+ " 2024-11 | \n",
+ " 10400.0 | \n",
+ " 21 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 0006538016 | \n",
+ " 2024-12 | \n",
+ " 10000.0 | \n",
+ " 19 | \n",
+ " 10 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " 0006538016 | \n",
+ " 2025-01 | \n",
+ " 10100.0 | \n",
+ " 18 | \n",
+ " 11 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " 0006538016 | \n",
+ " 2025-02 | \n",
+ " 10200.0 | \n",
+ " 18 | \n",
+ " 12 | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " 0006538016 | \n",
+ " 2025-03 | \n",
+ " 10900.0 | \n",
+ " 14 | \n",
+ " 13 | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " 0010954040 | \n",
+ " 2024-03 | \n",
+ " 74900.0 | \n",
+ " 25 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " 0010954040 | \n",
+ " 2024-04 | \n",
+ " 74200.0 | \n",
+ " 18 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 15 | \n",
+ " 0010954040 | \n",
+ " 2024-05 | \n",
+ " 72100.0 | \n",
+ " 16 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " 0010954040 | \n",
+ " 2024-06 | \n",
+ " 72800.0 | \n",
+ " 14 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " 0010954040 | \n",
+ " 2024-07 | \n",
+ " 74200.0 | \n",
+ " 10 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 18 | \n",
+ " 0010954040 | \n",
+ " 2024-08 | \n",
+ " 72100.0 | \n",
+ " 12 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " 0010954040 | \n",
+ " 2024-09 | \n",
+ " 74900.0 | \n",
+ " 6 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "summary": "{\n \"name\": \"display(probable_salary_earner_summary\",\n \"rows\": 20,\n \"fields\": [\n {\n \"column\": \"accountid\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"0010954040\",\n \"0006538016\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"year_month\",\n \"properties\": {\n \"dtype\": \"period[M]\",\n \"num_unique_values\": 13,\n \"samples\": [\n \"2025-02\",\n \"2024-12\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"salary_max\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 30868.68452348636,\n \"min\": 10000.0,\n \"max\": 74900.0,\n \"num_unique_values\": 13,\n \"samples\": [\n 72100.0,\n 74900.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"day_of_month\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 14,\n \"samples\": [\n 18,\n 16\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"month_seq\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3,\n \"min\": 1,\n \"max\": 13,\n \"num_unique_values\": 13,\n \"samples\": [\n 12,\n 10\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# write dfs to csv\n",
+ "verified_salary_earner_summary.to_csv(\"verified_salary_earner_summary.csv\", index=False)\n",
+ "probable_salary_earner_summary.to_csv(\"probable_salary_earner_summary.csv\", index=False)"
+ ],
+ "metadata": {
+ "id": "x-ciNaS4-vHD"
+ },
+ "execution_count": 26,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# now combining the two dataframes\n",
+ "salary_earner_summary = pd.concat([verified_salary_earner_summary, probable_salary_earner_summary], ignore_index=True)"
+ ],
+ "metadata": {
+ "id": "joXqE4OHoaVu"
+ },
+ "execution_count": 24,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Monthly Salary Averaging and Estimation"
+ ],
+ "metadata": {
+ "id": "21JXE0ja_p8F"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Estimating next monthly salary amount and date for each user\n",
+ "def predict_next_salary(summary_table):\n",
+ " \"\"\"\n",
+ " Creates a table with salary predictions for each account based on the summary table,\n",
+ " using median of last 6 months for simplicity.\n",
+ "\n",
+ " Parameters:\n",
+ " - summary_table: DataFrame from get_salary_earner_summary function\n",
+ "\n",
+ " Returns:\n",
+ " - DataFrame with columns: [accountid, avg_monthly_salary, next_salary_amount, next_salary_date]\n",
+ " \"\"\"\n",
+ "\n",
+ "\n",
+ " # Group by accountid to get account-level statistics\n",
+ " account_predictions = []\n",
+ "\n",
+ " for account_id, account_data in summary_table.groupby('accountid'):\n",
+ " # Sort data by year_month in descending order\n",
+ " account_data = account_data.sort_values('year_month', ascending=False)\n",
+ "\n",
+ " # Calculate overall median salary (all available months)\n",
+ " median_salary_all = account_data['salary_max'].median()\n",
+ "\n",
+ " # Get last 6 months of data or all if less than 6 months available\n",
+ " last_six_months = account_data.head(min(6, len(account_data)))\n",
+ "\n",
+ " # Calculate median salary and day of month from last 6 months\n",
+ " median_salary_recent = last_six_months['salary_max'].median()\n",
+ " median_day = int(last_six_months['day_of_month'].median())\n",
+ "\n",
+ " # Get the last known payment information\n",
+ " last_payment = account_data.iloc[0]\n",
+ "\n",
+ " # Convert Period to timestamp (get first day of month)\n",
+ " # This is safer than direct conversion which might raise errors\n",
+ " last_month_str = str(last_payment['year_month'])\n",
+ " last_month = pd.to_datetime(last_month_str)\n",
+ "\n",
+ " # Predict next month\n",
+ " if last_month.month == 12:\n",
+ " next_month_year = last_month.year + 1\n",
+ " next_month_month = 1\n",
+ " else:\n",
+ " next_month_year = last_month.year\n",
+ " next_month_month = last_month.month + 1\n",
+ "\n",
+ " # Get the number of days in the next month\n",
+ " next_month_days = calendar.monthrange(next_month_year, next_month_month)[1]\n",
+ "\n",
+ " # Adjust day if necessary\n",
+ " adjusted_day = min(median_day, next_month_days)\n",
+ "\n",
+ " # Create the predicted date\n",
+ " predicted_date = pd.Timestamp(year=next_month_year,\n",
+ " month=next_month_month,\n",
+ " day=adjusted_day)\n",
+ "\n",
+ " # Append to results\n",
+ " account_predictions.append({\n",
+ " 'accountid': account_id,\n",
+ " 'avg_monthly_salary': round(median_salary_all, 2),\n",
+ " 'next_salary_amount': round(median_salary_recent, 2),\n",
+ " 'next_salary_date': predicted_date.strftime('%Y-%m-%d')\n",
+ " })\n",
+ "\n",
+ " # Convert to DataFrame\n",
+ " prediction_table = pd.DataFrame(account_predictions)\n",
+ "\n",
+ " return prediction_table\n",
+ "\n",
+ "prediction_table = predict_next_salary(salary_earner_summary)\n",
+ "prediction_table.head(20)"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 676
+ },
+ "id": "-xlLGZYGvO2w",
+ "outputId": "772724f7-4ac5-46e5-db3d-95185580d3c5"
+ },
+ "execution_count": 30,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " accountid avg_monthly_salary next_salary_amount next_salary_date\n",
+ "0 0006538016 10700.0 10300.0 2025-04-18\n",
+ "1 0010954040 74200.0 74200.0 2025-04-21\n",
+ "2 0020801031 160500.0 162000.0 2025-04-23\n",
+ "3 0022324028 41200.0 41200.0 2025-04-23\n",
+ "4 0022848049 1463760.0 1477440.0 2025-04-22\n",
+ "5 0025339021 586360.0 589100.0 2025-04-23\n",
+ "6 0027643012 106000.0 108000.0 2025-04-23\n",
+ "7 0028024021 515000.0 517500.0 2025-04-20\n",
+ "8 0034199027 140450.0 141775.0 2025-04-19\n",
+ "9 0035106020 2180.0 2190.0 2025-04-20\n",
+ "10 0046472024 14700.0 14560.0 2025-04-25\n",
+ "11 0050282020 15750.0 15900.0 2025-04-20\n",
+ "12 0051390023 159000.0 161250.0 2025-04-20\n",
+ "13 0051987023 37100.0 37100.0 2025-04-18\n",
+ "14 0053388019 145080.0 144382.5 2025-04-17\n",
+ "15 0060225026 156000.0 159750.0 2025-04-25\n",
+ "16 0060968040 208.0 214.0 2025-04-21\n",
+ "17 0068203024 155040.0 158840.0 2025-04-22\n",
+ "18 0103261028 95680.0 95220.0 2025-04-23\n",
+ "19 0104926023 42800.0 42000.0 2025-04-12"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " accountid | \n",
+ " avg_monthly_salary | \n",
+ " next_salary_amount | \n",
+ " next_salary_date | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0006538016 | \n",
+ " 10700.0 | \n",
+ " 10300.0 | \n",
+ " 2025-04-18 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0010954040 | \n",
+ " 74200.0 | \n",
+ " 74200.0 | \n",
+ " 2025-04-21 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 0020801031 | \n",
+ " 160500.0 | \n",
+ " 162000.0 | \n",
+ " 2025-04-23 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 0022324028 | \n",
+ " 41200.0 | \n",
+ " 41200.0 | \n",
+ " 2025-04-23 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 0022848049 | \n",
+ " 1463760.0 | \n",
+ " 1477440.0 | \n",
+ " 2025-04-22 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0025339021 | \n",
+ " 586360.0 | \n",
+ " 589100.0 | \n",
+ " 2025-04-23 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 0027643012 | \n",
+ " 106000.0 | \n",
+ " 108000.0 | \n",
+ " 2025-04-23 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 0028024021 | \n",
+ " 515000.0 | \n",
+ " 517500.0 | \n",
+ " 2025-04-20 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 0034199027 | \n",
+ " 140450.0 | \n",
+ " 141775.0 | \n",
+ " 2025-04-19 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 0035106020 | \n",
+ " 2180.0 | \n",
+ " 2190.0 | \n",
+ " 2025-04-20 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " 0046472024 | \n",
+ " 14700.0 | \n",
+ " 14560.0 | \n",
+ " 2025-04-25 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " 0050282020 | \n",
+ " 15750.0 | \n",
+ " 15900.0 | \n",
+ " 2025-04-20 | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " 0051390023 | \n",
+ " 159000.0 | \n",
+ " 161250.0 | \n",
+ " 2025-04-20 | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " 0051987023 | \n",
+ " 37100.0 | \n",
+ " 37100.0 | \n",
+ " 2025-04-18 | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " 0053388019 | \n",
+ " 145080.0 | \n",
+ " 144382.5 | \n",
+ " 2025-04-17 | \n",
+ "
\n",
+ " \n",
+ " | 15 | \n",
+ " 0060225026 | \n",
+ " 156000.0 | \n",
+ " 159750.0 | \n",
+ " 2025-04-25 | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " 0060968040 | \n",
+ " 208.0 | \n",
+ " 214.0 | \n",
+ " 2025-04-21 | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " 0068203024 | \n",
+ " 155040.0 | \n",
+ " 158840.0 | \n",
+ " 2025-04-22 | \n",
+ "
\n",
+ " \n",
+ " | 18 | \n",
+ " 0103261028 | \n",
+ " 95680.0 | \n",
+ " 95220.0 | \n",
+ " 2025-04-23 | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " 0104926023 | \n",
+ " 42800.0 | \n",
+ " 42000.0 | \n",
+ " 2025-04-12 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "variable_name": "prediction_table",
+ "summary": "{\n \"name\": \"prediction_table\",\n \"rows\": 36157,\n \"fields\": [\n {\n \"column\": \"accountid\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 36157,\n \"samples\": [\n \"1539827015\",\n \"2185975011\",\n \"1980514012\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"avg_monthly_salary\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 633779.5101455783,\n \"min\": 0.19,\n \"max\": 61285000.0,\n \"num_unique_values\": 6916,\n \"samples\": [\n 20790.0,\n 293.08,\n 73736.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"next_salary_amount\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 642057.2400670127,\n \"min\": 0.19,\n \"max\": 63962500.0,\n \"num_unique_values\": 8495,\n \"samples\": [\n 40000.0,\n 10506.0,\n 79875.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"next_salary_date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 21,\n \"samples\": [\n \"2025-04-18\",\n \"2025-04-27\",\n \"2025-04-15\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {},
+ "execution_count": 30
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# get number of customers with at least 10k predicted salary\n",
+ "high_earning_customers = prediction_table[prediction_table[\"avg_monthly_salary\"] >= 10000]\n",
+ "\n",
+ "print(f\"Number of customers with at least 10k predicted salary: {high_earning_customers.shape[0]}\")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "PaZLRoIVySB9",
+ "outputId": "5f4fab25-047a-429d-d99c-d83580f291f5"
+ },
+ "execution_count": 31,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Number of customers with at least 10k predicted salary: 23978\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# write table to csv\n",
+ "prediction_table.to_csv(\"salary_earner_prediction.csv\", index=False)"
+ ],
+ "metadata": {
+ "id": "xE-vTMY9Atmq"
+ },
+ "execution_count": 32,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 4. ML Model Prediction"
+ ],
+ "metadata": {
+ "id": "qSiu_T3X7PYr"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "\n",
+ "# Filter accounts with at least 12 months data\n",
+ "valid_accounts = salary_earner_summary.groupby('accountid').filter(lambda x: x['month_seq'].max() >= 12)\n",
+ "\n",
+ "def create_safe_features(df):\n",
+ " df = df.copy().sort_values(['accountid', 'month_seq'])\n",
+ "\n",
+ " # Lag features (safe - only uses past data)\n",
+ " df['lag_1'] = df.groupby('accountid')['salary_max'].shift(1)\n",
+ " df['lag_2'] = df.groupby('accountid')['salary_max'].shift(2)\n",
+ " df['lag_3'] = df.groupby('accountid')['salary_max'].shift(3)\n",
+ "\n",
+ " # Expanding window statistics (safe - only uses past data)\n",
+ " df['expanding_mean'] = df.groupby('accountid')['salary_max'].expanding().mean().reset_index(0, drop=True)\n",
+ " df['expanding_std'] = df.groupby('accountid')['salary_max'].expanding().std().reset_index(0, drop=True)\n",
+ "\n",
+ " # Month-over-month change (safe - using lag 1)\n",
+ " df['mom_change'] = df.groupby('accountid')['salary_max'].pct_change()\n",
+ "\n",
+ " return df.dropna()\n",
+ "\n",
+ "safe_featured_data = create_safe_features(valid_accounts)\n",
+ "\n",
+ "# Split into train/test (first 10 vs last 2 months per account)\n",
+ "train_data = safe_featured_data[safe_featured_data['month_seq'] <= 10]\n",
+ "test_data = safe_featured_data[safe_featured_data['month_seq'] > 10]\n",
+ "\n",
+ "# Prepare features\n",
+ "safe_features = ['lag_1', 'lag_2', 'lag_3', 'expanding_mean', 'expanding_std', 'mom_change']\n",
+ "X_train = train_data[safe_features]\n",
+ "y_train = train_data['salary_max']\n",
+ "X_test = test_data[safe_features]\n",
+ "y_test = test_data['salary_max']\n",
+ "\n",
+ "# Scale features\n",
+ "scaler = StandardScaler()\n",
+ "X_train_scaled = scaler.fit_transform(X_train)\n",
+ "X_test_scaled = scaler.transform(X_test)"
+ ],
+ "metadata": {
+ "id": "wh4SEaJx79W_"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from sklearn.linear_model import LinearRegression\n",
+ "\n",
+ "model = LinearRegression()\n",
+ "model.fit(X_train_scaled, y_train)\n",
+ "\n",
+ "#Evaluation\n",
+ "from sklearn.metrics import mean_absolute_error, r2_score\n",
+ "\n",
+ "# Make predictions\n",
+ "test_preds = model.predict(X_test_scaled)\n",
+ "\n",
+ "# Calculate metrics\n",
+ "test_mae = mean_absolute_error(y_test, test_preds)\n",
+ "\n",
+ "test_r2 = r2_score(y_test, test_preds)\n",
+ "\n",
+ "print(f\"Test MAE: {test_mae:.2f}\")\n",
+ "print(f\"Test R²: {test_r2:.3f}\")\n",
+ "\n",
+ "# Create results dataframe\n",
+ "results = test_data[['accountid', 'month_seq', 'salary_max']].copy()\n",
+ "results['predicted'] = test_preds"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "-MOnchDEEJWd",
+ "outputId": "b5f85d12-f818-4405-8a00-501f380ba9ea"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Test MAE: 3537.68\n",
+ "Test R²: 0.996\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns\n",
+ "\n",
+ "# Randomly sample 100 points for clearer visualization\n",
+ "sample_results = results.sample(100)\n",
+ "\n",
+ "plt.figure(figsize=(8, 8))\n",
+ "sns.scatterplot(data=sample_results, x='salary_max', y='predicted', alpha=0.7)\n",
+ "\n",
+ "# Add perfect prediction line\n",
+ "max_val = max(sample_results['salary_max'].max(), sample_results['predicted'].max())\n",
+ "min_val = min(sample_results['salary_max'].min(), sample_results['predicted'].min())\n",
+ "plt.plot([min_val, max_val], [min_val, max_val], 'r--', label='Perfect Prediction')\n",
+ "\n",
+ "plt.xlabel(\"Actual Salary Amount\", fontsize=12)\n",
+ "plt.ylabel(\"Predicted Salary Amount\", fontsize=12)\n",
+ "plt.title(f\"Actual vs Predicted Salaries\\n(Random Sample of 100 Points)\", fontsize=14)\n",
+ "plt.legend()\n",
+ "plt.grid(True, alpha=0.3)\n",
+ "\n",
+ "# Add RMSE annotation\n",
+ "plt.annotate(f'Test MAE: {test_mae:.2f}',\n",
+ " xy=(0.05, 0.95),\n",
+ " xycoords='axes fraction',\n",
+ " fontsize=12,\n",
+ " bbox=dict(boxstyle='round', facecolor='white', alpha=0.8))\n",
+ "\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 745
+ },
+ "id": "h1A0_QYrHhHa",
+ "outputId": "7b241810-fa35-4b5f-a489-708a3a12c797"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAArcAAALYCAYAAABmP9r4AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAurZJREFUeJzs3XdUFNffBvBn6R2liNiAGCX2HruCDTsau7GXaOwlMWpib7HG/BJjV2zEFntv2GIXNWqiUQE7RaV32Pv+MS+rG0CXdWF24fmcw5G5Mzvz3Z1dfbx7545CCCFARERERJQPGMldABERERGRrjDcEhEREVG+wXBLRERERPkGwy0RERER5RsMt0RERESUbzDcEhEREVG+wXBLRERERPkGwy0RERER5RsMt0RERESUbzDcEpFe69evHxQKBUJCQuQuxaAoFAp4eXmptRnSa+nl5QWFQiF3GSru7u5wd3fP1WP4+flBoVDAz88vV49DlN8x3BLlMwMGDIBCoYCjoyOSk5M/en/Tp0+HQqHA6dOnP764fEihUKj9mJiYwNXVFR06dMDZs2flLk+n9Pm9EB8fj7lz56J69eqwsbGBubk5SpQogYYNG2LSpEl49OiR3CUSUR4xkbsAItKd2NhYbN++HQqFAm/evMGePXvQrVs3ucvK9xwdHTFixAgAQFJSEm7evIm9e/di37592LZtG7p06SJzhZJ58+Zh4sSJKF68uNyl6FRsbCwaNGiAv/76C59++il69eoFR0dHvHr1CleuXMGPP/6I0qVLo3Tp0nKX+l4dO3ZEnTp14OrqKncpRAaN4ZYoH9m2bRvi4+Mxbtw4LF26FGvXrmW4zQNOTk6YPn26WtuaNWswePBgTJgwQW/Craura74MTkuXLsVff/2FQYMGYdWqVZmGMwQHB+vkW4zcZm9vD3t7e7nLIDJ4HJZAlI+sXbsWJiYmmDBhAry9vXHy5Ek8fvw42+3Pnj2LDh06wMXFBebm5ihZsiS++OILnD9/HoA07nHGjBkAAG9vb9VX7++OPcxqbGeGrMYp/vvvv5gwYQKqV68OR0dHWFhYoGzZspg4cSLi4uK0fu4JCQmwtbV9b+9c5cqVYWlpiZiYGABSL+vixYtRpUoV2Nvbw9raGu7u7ujatStu3bqldS2ANDzE2toaISEhiIiIAPD29YiKisKIESNQsmRJmJiYqI2x/Ouvv9C9e3e4urrCzMwMbm5uGDlyJF6/fp3lcdasWYOKFSvCwsICJUuWxIQJE5CUlJTltu8bc6uL9wIAhIeHY+zYsfj0009hbm4OJycndOrUCXfu3MmypvPnz6Nx48awtraGo6MjunXrhqdPn77vpc3k4sWLAIDhw4dnOU7Xw8MDn332mVpbQEAABgwYAE9PT9jY2MDGxgY1a9bEqlWrND7uixcvMG3aNNSpUwdFihSBubk53N3dMWzYMISHh2faPuP1DwoKwuLFi1G+fHmYm5ujX79+AN4/5jY4OBiDBg1CqVKlYG5uDldXV/Tr1y/Lz3dgYCA6d+6s2tbZ2Rm1atXCnDlzNH5uRIaMPbdE+cTff/+NS5cuoXXr1nBxcUGfPn1w8uRJrF+/PlOvIgD8/PPPGDt2LCwtLdGxY0eUKlUKz58/x/nz57Fz5040aNBA9Y/umTNn0LdvX1WQKVSokNZ17tq1C2vXroW3tze8vLygVCpx6dIlzJ8/H2fOnMHZs2dhamqa4/1aWVmhU6dO2LBhAy5cuIB69eqprb916xZu376Nbt26wc7ODgDQt29fbN++HZUrV0b//v1hbm6Op0+fIiAgAFevXkWVKlW0fp7vejdwJScno0mTJoiLi0P79u1hYmICFxcXAMC+ffvQtWtXGBkZwdfXFyVLlsTff/+NX3/9FUePHsXly5dRuHBh1b5mzZqFqVOnwsXFBYMHD4apqSm2bduGf/75J0f16eq98OjRI3h5eeHZs2do0aIFOnTogPDwcPzxxx84evQoTp48idq1a6u2P3nyJFq1agUjIyN069YNxYoVw8mTJ1G/fn215/khjo6OAKT/OFWtWlWjx8yfPx8PHz5EnTp10LFjR0RFReHIkSMYMmQI7t+/j8WLF39wH2fPnsXixYvRtGlT1K5dG6amprhx4waWL1+Oo0ePIjAwMMue2JEjR+LSpUto06YN2rVrhyJFirz3OJcvX4aPjw/i4+PRtm1blClTBiEhIdiyZQsOHz6Mixcv4pNPPgEA3Lx5E/Xq1YOxsTF8fX3h5uaGqKgo/P3331i1ahW+//57jV4fIoMmiChfGDdunAAgfv/9dyGEELGxscLa2lqUKlVKpKenq2178+ZNYWRkJIoVKyaCg4PV1imVSvH8+XPV8rRp0wQAERAQkOVxAYjGjRtnuc7NzU24ubmptT179kwkJydn2nbGjBkCgNi8ebNae9++fQWATHVm5cSJEwKA+PrrrzOtGz9+vAAgDhw4IIQQIioqSigUClGjRg2Rlpamtm1aWpqIjIz84PGEkJ6/p6dnpvZ169YJAMLDw0PV5ubmJgAIHx8fkZCQoLb9q1evhJ2dnShevLgICQlRW/f7778LAGLEiBGqtgcPHggTExNRvHhxERYWpmqPjo4Wnp6eWZ6XrF5LXb4X6tWrJ4yNjcWRI0fU2u/fvy9sbW1FpUqVVG3p6enik08+EQqFQpw7d07tmD179hQAhKb/RO3du1cAELa2tmL8+PHi6NGj4tWrV+99TFBQUKa21NRU0bx5c2FsbCweP36sti6r93JYWJiIjY3NtJ8NGzYIAGL27Nlq7Rmvf4kSJTLtXwgh1q9fLwCI9evXq9pSUlKEu7u7sLW1FYGBgWrbnzt3ThgbG4u2bduq2jL+HtizZ0+m/X/oNSHKLzgsgSgfSE1NxaZNm2BnZ4cOHToAAGxsbNCxY0c8efIEJ06cUNt+5cqVUCqVmD17dqavlRUKBYoVK5ZrtRYvXhxmZmaZ2jMuyPpvrTnh7e2N4sWLY/v27UhNTVW1K5VK+Pv7w9nZGT4+PgCk5ymEgIWFBYyM1P8qNDY2zlHv9KtXrzB9+nRMnz4dEydORKtWrTBgwAAYGRlh4cKFmbZfsGABLC0t1do2btyImJgYzJs3D25ubmrrunfvjurVq2Pr1q2qNn9/f6SlpWHcuHFqPX92dnb44YcfNK5dV++FGzdu4MKFC+jbt6/qNc5QtmxZDB48GLdv31YNTzh//jyCgoLQtm1bNGjQQO2Yc+fOhbGxscbPoX379li8eDGEEFi8eDF8fHzg5OSETz/9FCNGjMCDBw8yPcbDwyNTm4mJCYYOHYr09HQEBAR88LhFihSBjY1NpvbevXvDzs4u2/fyt99+i1KlSmnwzIADBw4gJCQE3377LapVq6a2rkGDBvD19cWhQ4dUQ20y/Pf9Bbzt4SbK7zgsgSgf2Lt3LyIiIjBw4EBYWFio2vv06YPNmzdj7dq1aNGihar9ypUrAKDWlleEEFi/fj38/Pxw584dREdHQ6lUqta/ePFC630bGRnhyy+/xIIFC3Do0CH4+voCkL7+fvnyJUaOHAkTE+mvPTs7O7Ru3RqHDh1C9erV0aVLF3h5eaFWrVo5Hhbx+vVr1XhUY2NjODk5wdfXF+PHj0fDhg3VtrWwsEClSpUy7ePSpUsApK+gs5q2KikpCa9evcKrV6/g5OSkGhP83/1n15YdXb0XMuoPCwvLchjMvXv3VH9WrFjxvfW7ubmhZMmSOZqPd9y4cRg8eDCOHDmCCxcu4Nq1a7h8+TKWLVuGtWvXYtu2bWjfvr1q+9jYWCxatAh79uzBo0ePEB8fr7Y/Td+Hu3btwsqVKxEYGIjIyEikp6d/cB+ff/65xs8r43W9f/9+lq9raGgolEol/v33X9SsWRNdu3bF0qVL0bFjR3Tr1g3NmzdHo0aN8t0MGUTvw3BLlA+sXbsWgBRm39W0aVMUL14ce/fuxZs3b+Dg4AAAiI6OhkKhkOXK+VGjRuHXX39FyZIl0b59e7i6usLc3BwAMGPGjI++qr13795YsGABNm/erAq3mzZtUq17144dOzB37lz4+/urxiLa2dmhf//+mDt3LqysrDQ6pqenpyq8fUiRIkWyvOjpzZs3AIBly5a99/Hx8fFwcnJCdHS0an//lTGGVxO6ei9k1H/w4EEcPHgw2+0yQuT76gek55DTm03Y2tqiS5cuqtkpoqOjMXnyZPz2228YOHAgnj9/DjMzM6SkpMDLywuBgYGoVq0aevfuDUdHR5iYmCAkJAQbNmzQ6H24ePFifPPNN3B2dkaLFi1QokQJVY/p0qVLs91HTs5Pxuu6ZcuW926X8brWrl0bp0+fVr2v169fDwCoVasW5s+fD29vb42PTWSoGG6JDNzTp09x7NgxAEDjxo2z3W7z5s0YNWoUAOkiICEEXr58+dE9OgqFAmlpaVmui46OVrugJjw8HMuWLUPlypVx8eJFtfAYGhqq6v38GBUrVkTVqlVx4MABREdHw9TUFLt374anpydq1aqltq2VlRVmz56N2bNnIzg4GAEBAVixYgV+/vlnJCYmYuXKlR9dz39ld9etjIvcbt++jYoVK35wPxmva3h4eKZhDGFhYRrXo6v3Qkb9v/zyi2qIyfu8W39WcvIc3neMX3/9FQcPHsTjx49x+/Zt1KhRA3v37kVgYCAGDhyINWvWqD1m69at2LBhwwf3nZaWhlmzZsHV1RU3b95UC+lCCCxYsCDbx+bkzmsZr+v+/fvRtm1bjR7TsGFDHD58GImJibh8+TL279+P3377DW3atMGdO3dUF58R5Vccc0tk4Pz8/KBUKtGgQQMMHDgw00/fvn0BvO3dBd5+LZoRit8nY+zju1+3vqtw4cJ4/vx5pvaQkBBERUWptQUFBUEIgWbNmmXqFT137twHa9FU7969kZSUhJ07d2L37t2Ii4tDr1693vsYDw8PDBgwAGfOnIGNjQ327duns3o0kTGLQMa0Vh+SMZNDVq9bTl5LXb0XdFn/48ePczwdWHYUCgWsra3V2jKGfWT07L9L09fu1atXiI6ORt26dTP1Pl+7dg2JiYlaVqwup6/ruywtLeHl5YXFixdj8uTJSExMxPHjx3VSF5Fek/FiNiL6SEqlUnh4eAiFQiEePXqU7XZ169YVAMTVq1eFEEL89ddfwtjYWBQrVizTlfn/vUL+119/zXQF97t8fHwEAHH69GlVW3JysujYsaMAoHaF+YsXLwQAUadOHbUZHJ4+fSpKly6t8RX+H/Ly5UthbGwsGjduLHx8fIRCocj0+PDwcHH79u1Mj33+/LkwNTUV7u7uGh0L2cyWkJWsrrh/tx5bW1vh7Ows7ty5k2l9fHy8uHjxomr5wYMHwtjY+KNnS9Dle6F27dpCoVCIrVu3ZlqXnp6u9h5JT09XvXc/draEFStWiCtXrmS5bvfu3UKhUIhChQqJpKQkIYQQ/v7+AoCYMGGC2ranT58WpqamAoCYNm2a2rr/nrv09HRhaWkp3N3dRXx8vKr9zZs3onbt2pne+0J8+L2c1WwJSUlJolSpUsLCwkKcOXMm02NSUlLUXr8LFy6IxMTETNsNHz5cABB+fn5ZHpsoP+GwBCIDdurUKQQHB6Nx48bv/aqxf//+uHjxItauXYuaNWuiUqVKWLp0KUaNGoUKFSqgQ4cOcHNzQ2hoKM6ePYs2bdpg6dKlAN5O2D958mTcvXsX9vb2KFSokOqr53HjxuHYsWNo3bo1evToASsrKxw/fhyFChXKNI7T1dUVnTp1wh9//IGaNWuiadOmCAsLw4EDB9C0adMsL6TSRtGiRdGsWTMcO3YMRkZGaNCgQaaZAJ4/f45q1aqhSpUqqFy5MooXL47Xr19j7969SE1NxTfffKOTWjTl7OyM33//HV26dEGVKlXQsmVLfPbZZ0hOTkZISAjOnDmDevXq4ciRIwCATz/9FFOnTsW0adNQuXJldO3aFSYmJvjjjz9QuXJl3L9/X6Pj6vK98Pvvv8Pb2xvdu3fH0qVLUb16dVhaWuLJkye4ePEiIiIiVDeYMDIywqpVq9C6dWs0a9ZMNc/tqVOn8PLlS1SuXBl//fWXRs/h8OHDGDp0KD799FPUr18fxYoVQ3x8PG7cuIFz587ByMgIv/32m2psd7t27eDu7o4FCxbgzp07qFixIu7fv48DBw6gY8eO2Llz5wePaWRkhGHDhqluAtKuXTvExMTg8OHDcHNz09mMI+bm5ti5cydatWqFxo0bo0mTJqhUqRIUCgUeP36Mc+fOwdHRUTXme/78+QgICECjRo3g4eEBCwsLBAYG4uTJk/jkk0/QsWNHndRFpNfkTtdEpL0ePXq8tyctQ3R0tLC0tBT29vZq86sGBASItm3bCgcHB2FmZiZKlCghOnXqJP7880+1x/v5+YlKlSoJc3PzLHukduzYISpVqiTMzMxE0aJFxciRI0VsbGyWPZWxsbFi/Pjxwt3dXZibm4syZcqIWbNmiZSUFJ313AohxObNm1W9fytXrsy0PjIyUkyfPl00atRIuLq6CjMzM1GsWDHRsmVLcfjwYY2PAx313Ga4d++eGDhwoHBzcxNmZmaicOHColKlSmLUqFFZ9k6uXr1alC9fXnX+vvnmG5GQkJDj11JX74U3b96IH374QVSsWFFYWloKGxsbUaZMGdGzZ0+xa9euTMc9e/asaNSokbC0tBQODg6iS5cu4vHjx6Jx48Ya99zeu3dPLFiwQDRv3lx4eHgICwsLYWFhIUqXLi369u0rrl27lukxQUFBolOnTsLZ2VlYWVmJWrVqia1bt4qAgACNem6FkHpN58yZI8qUKSPMzc1FqVKlxPjx47N972vTc5vh2bNnYvTo0apj2dnZiXLlyolBgwaJkydPqrY7cuSI6NOnj/D09BS2trbCxsZGlC9fXkyePFlERERo8nISGTyFEELIEaqJiIiIiHSNF5QRERERUb7BcEtERERE+QbDLRERERHlGwy3RERERJRvMNwSERERUb7BcEtERERE+QbDLZGMhBCoUaMGWrRoIXcpH8XPzw8KhQJ+fn5yl1Kg6eN5uHbtGpo3bw5nZ2coFApUrVpV7pIMgj6dy9TUVHzyySfo2rWr3KUQaYThlkhGGzduRGBgIGbOnKnW3q9fPygUCrUfW1tb1KhRAwsWLEBycrJMFRs+IQQ2b96MJk2awNHREWZmZnBxcUG1atUwbNgwnDlzRu4S842YmBi0adMGV65cQbdu3TBt2jQMHTr0vY9JSEjA4sWL0bNnT3z22WcwMjKCQqFASEjIex/377//omvXrnBycoKlpSWqVKmC5cuXI7up3GNiYjBu3Di4ubnB3Nwc7u7u+PbbbxEXF6fx8zt9+nSmz6mFhQU++eQTDB48+IM15wUvLy8oFIqP2oepqSm+//577NixA5cuXdJRZUS5h7ffJZKJUqnE9OnT0bBhQ9SpUyfLbQYOHIgSJUpACIEXL15g9+7d+O6773Dq1CnVbVgpZwYMGAA/Pz8ULlwYbdu2RfHixZGYmIhbt25h7dq1iImJQePGjeUuM1+4cuUKwsPDMWfOHEyePFmjx4SHh6tufezm5obChQvjzZs3733M33//jXr16iExMRFdu3ZFsWLFcPDgQQwbNgx///03fvnlF7Xt4+Pj0bhxY9y8eRMtWrRAjx49cOPGDSxatAhnzpzB2bNnYWFhofHzrFGjBtq2bQsAiIqKwunTp7FmzRr88ccfuHz5MsqUKaPxvjJ07NgRderUyXQLa7n07dsXkydPxpQpU3D8+HG5yyF6Pzlvj0ZUkB04cEAAEKtXr860LuM2nRcvXlRrf/XqlShWrJgAIE6dOpVXpX7Q+24bqk/Onj0rAIiqVauK6OjoTOsjIyMz3W7WkOjbediwYUOO64mNjRXHjh0Tr1+/FkII4ePj88HbLzdq1EgAEIcOHVK1JScni4YNGwoA4sKFC2rbT506VQAQ3333nVr7d999JwCIuXPnalRrxq16hwwZotauVCpF7969BQDRt29fjfaVW3JyG+MPGTVqlFAoFOLBgwc62R9RbuGwBCKZrF+/HgqFAp06ddL4MY6OjujQoQMA4Pr162rr/v33X0yYMAHVq1eHo6MjLCwsULZsWUycODHLr1ozvq5MTU3F9OnT4e7uDnNzc5QtWxa//fZblsd/8+YNhg4dChcXF1hZWaFWrVrYvXv3e2vev38/vL29YW9vr/q6eMmSJUhLS1PbLiQkBAqFAv369cM///yDtm3bolChQihcuDB69OiBV69eAQAuXryIpk2bws7ODoULF8agQYMQHx+v0et38eJFAFIvlJ2dXab1hQoVQr169dTatH1dk5OTMXnyZJQqVQqWlpaoUaMGTpw4AQCIjo7G8OHDUaxYMVhYWKBu3bq4cuVKpn25u7vD3d0dUVFRGDJkCIoWLQoLCwtUq1YNv//+u0bPOUNwcDAGDRqEUqVKwdzcHK6urujXrx8eP36co/08fvwYAwcORPHixWFmZoYSJUpg4MCBePLkidp2CoUCffv2BQD0799f9bX9h8aQ2tjYoHnz5nBwcNConn///Rdnz56Ft7c3WrVqpWo3MzPDrFmzAACrV69WtQshsGbNGtjY2GDKlClq+5oyZQpsbGywZs0ajY6dHYVCgeHDhwMArl69qmqPj4/HtGnT8Nlnn8HCwgIODg5o06YN/vzzz0z7yG7MrUKhgJeXF8LCwtC3b1/VMIw6derg9OnTmbbNGGbz7tCJfv36qbYJCAhAq1atUKxYMZibm8PFxQUNGzbEqlWrMtXUtWtXCCGwYcMGLV8ZorzBYQlEMhBCICAgAJ6enihcuLBW+zAxUf/47tq1C2vXroW3tze8vLygVCpx6dIlzJ8/X/VVq6mpaab99OjRA1euXEGrVq1gbGyM7du3Y/jw4TA1NcXgwYNV2yUkJMDLywu3b99G3bp10bhxYzx9+hTdunXL9oK4JUuWYPz48XBwcEDPnj1hbW2Nffv2Yfz48Th37hx27dqVaTxgcHAw6tWrh5o1a2LQoEG4du0atm7diqdPn+LHH39EixYt0Lx5c3z11Vc4ffo01q5dC6VSiXXr1n3wNXN0dAQgBSJNafu6duvWDbdv30b79u2RmJiILVu2oG3btvjzzz/x1VdfISUlBV26dEFERAS2bduGli1bIjg4GPb29mr7SUlJQbNmzRAXF4fevXsjPj4e27dvR8+ePfHq1SuMHDnyg8/h8uXL8PHxQXx8PNq2bYsyZcogJCQEW7ZsweHDh3Hx4kV88sknH9zPv//+iwYNGiAiIgLt2rVDhQoVcOfOHaxbtw779+/H+fPnUbZsWQDAtGnTcPPmTezduxe+vr6qC8l0fUFZRqDL6j3YoEEDWFtbq42jfvDgAV68eAEfHx9YW1urbW9tbY369evj6NGjePr0KUqWLPnR9WW8v5OSktCkSRNcuXIF1atXx5gxYxAWFoZt27bh6NGj+P3339GlSxeN9hkVFYUGDRrA3t4evXv3Rnh4OLZt2wYfHx9cv34dFStWBCCdAz8/Pzx+/BjTpk1TPT7jHBw8eBDt2rVDoUKF4OvrC1dXV0RERODWrVvYtGkTvvrqK7Xj1qhRA6ampjh58qTqPw5EeknmnmOiAunu3bsCgPjyyy+zXK/JsIQrV66orXv27JlITk7OtK8ZM2YIAGLz5s1q7RlfV9auXVvtK/p79+4JExMT4enpqbb9tGnTBAAxePBgtfYjR44IAJm+fn748KEwMTERRYoUEU+ePFG1JyUliQYNGggAYuPGjar24OBg1X6WLl2qalcqlaJ169YCgChUqJDYs2ePal1KSoqoXLmyMDExEaGhoZme+389ffpU2NnZCYVCIXr27Cl27NghQkJC3vsYbV/XBg0aiLi4OFX7tm3bVM+hS5cuIjU1VbVu/vz5AoBYvHix2r7c3NwEANGoUSO1Gp4+fSqcnJyEubm5ePbsmao9q2EJKSkpwt3dXdja2orAwEC1/Z87d04YGxuLtm3bvvc1yODt7S0AiJUrV6q1L1u2TAAQTZo0UWvXxTCJDw1L+OabbwQAsXPnzizXV6xYURgZGale74zhQCNGjMhy+xEjRggA4uTJkx+s7X3DEjI+w/379xdCvH2/fPnll0KpVKq2DQwMFGZmZqJQoUIiJiZG1Z7da5fxGRk2bJhIT09Xta9ZsybLWt43LOGLL74QAMTNmzczrXv16lWWj6lWrZowNTUVSUlJWa4n0gcclkAkg2fPngEAXFxc3rvdmjVrMH36dEybNg2DBw/GZ599hhcvXmDUqFGoVauW2rYZXxP/14gRIwBA9ZX4f82bN0/tK3pPT0/Ur18f9+/fR2xsrKp948aNMDMzyzSzg4+PD5o2bZppv/7+/khLS8P48ePVesDMzc0xf/58AMjyK+rSpUtj1KhRqmWFQoHu3bsDAKpVqwZfX1/VOlNTU3Tu3BlpaWn4+++/s3x+7ypRogT++OMPlCxZEv7+/ujSpQvc3d1RpEgRdOvWDadOncr0GG1f1zlz5qj1DHbu3BmmpqaIiorCokWL1Hree/ToAQC4detWlvuaO3euWg0lSpTA6NGjkZycjK1bt773OR84cAAhISH49ttvUa1aNbV1DRo0gK+vLw4dOoSYmJj37ufJkycICAhA+fLl1Xr0AWDo0KH47LPPcOrUKTx9+vS9+9G16OhoAMjU453Bzs4OSqVS9V7WZPt3t9PEtWvXMH36dEyfPh1jx45F9erVsWHDBjg4OOD7778HAGzYsAGmpqb48ccf1b6tqFatGvr27YuoqCjs2bNHo+NZW1tj/vz5MDJ6+0943759YWJiojYMQlOWlpaZ2jK+5fgvFxcXpKamIjw8PMfHIcorHJZAJIPXr18DkMZ4vs/atWsztY0fPx6LFi3K1C6EwPr16+Hn54c7d+4gOjoaSqVStf7FixdZHqNGjRqZ2kqUKAFA+vrT1tYWMTExCA4ORvny5VG0aNFM2zds2BAnT55Ua7tx4wYAaQzqf9WtWxcWFha4efNmpnWVK1fONFQh44rxrL7SzliX3fP7r2bNmuHRo0c4ffo0zp49i+vXr+P8+fPYvn07tm/fjkmTJmHu3Lmq7bV9Xf9bq5GREYoUKYKEhASUKlVK4+dgYmKCunXrZmpv2LAhgLevc3Yypm66f/8+pk+fnml9aGgolEol/v33X9SsWTPb/WScq8aNG2c6P0ZGRmjUqBHu3buHmzdv6uTrfENy/fp11Rh4MzMzFC9eHIMHD8b3338PNzc3xMTEICgoCOXKlVN9tt7l7e2N1atX4+bNm+jdu/cHj1e2bFnY2NiotZmYmMDFxQVRUVEa1929e3fs2rULderUQc+ePdG0aVM0bNgQTk5O2T4mYyz0q1evCtx5JsPBcPuOs2fPYuHChbh+/TpevnyJ3bt3qy7e0ZQQAosXL8aqVavw+PFjODk5YdiwYar/vRMBb3tKkpKS3rvdxYsXUadOHaSkpODWrVsYNmwYFi9ejHLlymHgwIFq244aNQq//vorSpYsifbt28PV1RXm5uYAgBkzZmQ7N25WF1Zl9Cqmp6cDgKpXr0iRIlnuI6se6IzHZLVOoVDAxcUFz58/z1E971uXmpqaZW1ZMTExQbNmzdCsWTMAQFpaGvz8/PD1119j3rx56Ny5M6pXrw5A969rTp+Dk5OTWg9dhozX9UM9jBnTaG3ZsuW9233oorz3nU/gbUD/UA+wrmX0wGb3OsTExKjmidZ0+3e308SQIUOwYsWKbNfr+rXL6j0ESO+jjM+sJrp06YI9e/ZgyZIlWLFiBZYtWwaFQgFvb28sXrw4y/9MJiYmAgCsrKw0Pg5RXmO4fUd8fDyqVKmCAQMG4IsvvtBqH6NHj8axY8ewaNEiVKpUCW/evPngHI1U8Dg7OwOAxu8NMzMz1KpVC4cOHYKnpydGjRqFli1bonjx4gCkuUGXLVuGypUr4+LFi2r/8ISGhmLGjBkfVW/GP6bZfRUZFhaW7WPCwsLg5uamtk4IgbCwsGz/kc5rJiYmGDRoEM6dO4eNGzciICAA1atXz/XXVROvXr2CUqnMFHAzXvMPhbCM13j//v2quVi18e75zEpoaKjadnklYw7ZBw8eZFqXnp6O4OBgeHh4qP4D8b7t323XZm7a7OjrawcAvr6+8PX1RWxsLP7880/VBZQtW7bEvXv3Mn27lPF3VsbfYUT6iGNu39GqVSvMnj0bHTt2zHJ9cnIyvvnmGxQvXhzW1taoXbu22tQr//zzD5YvX469e/eiffv28PDwQI0aNdC8efM8egZkKCpUqAAjIyPcv38/R49zdnbGtGnTkJCQoBasgoKCIIRAs2bNMvWonDt37qPrtbOzg4eHBx4+fKj6h/hDx8gY3/nf6YkA6er9pKQkvbsV63+/6s3t11UTaWlpqinMsjr+f8fR/lft2rUBIMt95ETGuTp79mymu34JIXD27Fm17fJKxg03jh07lmnd+fPnVTdsyFCmTBkUK1YMf/75Z6be6vj4ePz555/w8PDQ6VfudnZ2+OSTT/Dw4cMsv63I+IzkxmtnbGwMAB/s0bW1tUXLli2xatUq9OvXD2FhYbh8+XKm7e7fv4/ixYtrPFUbkRwYbnNgxIgRuHjxIrZu3Yq//voLXbp0QcuWLVX/09+/fz8++eQTHDhwAB4eHnB3d8egQYPYc0uZFCpUCJUrV8a1a9fUxm9qYsiQIShWrBjWr1+P4OBgAFD1jF64cEFtf8+ePcOkSZN0UnPv3r2RkpKCqVOnqrUfO3Ys03hbAOjZsydMTEywZMkStbGkKSkp+O677wBAbb7NvHDkyBHs3bs30xy7APDw4UPs2LEDgHShFZA3r6smJk+ejJSUFLXj//zzzzA3N1ddbJcdX19flCpVCkuWLFEF0Helpqbi/PnzH6yhVKlS8Pb2xt27dzNNu7Zq1Sr8888/aNKkSZ6Pw/T09ESjRo0QEBCAw4cPq9pTUlJU89gOGjRI1a5QKDBo0CDExcVlms5q1qxZiIuLy3TBnC707dsXqampmDRpktp/Dv766y/4+fnB3t4+x8PgNJERQrO60O/s2bNZht6Mb2j+e5e2J0+eIDQ0FI0aNdJ5nUS6xGEJGnry5AnWr1+PJ0+eoFixYgCAb775BkeOHMH69esxd+5cBAUF4fHjx9ixYwc2btyI9PR0jB07Fp07d87yKmwq2Dp27Ihp06bh0qVLmW4c8D4WFhaYOHEiRo0ahZkzZ2L9+vVwdXVFp06d8Mcff6BmzZpo2rQpwsLCcODAATRt2hSPHj366HonTJiAXbt2YfXq1bh79y4aNWqEp0+fYvv27WjTpg0OHjyotn3p0qUxf/58jB8/HpUrV0bXrl1hbW2N/fv34/79+/D19UWvXr0+uq6cuHfvHsaOHQsnJyc0atQIpUuXhhACDx8+xKFDh5CSkoKvv/5a1duZF6/rh7i6uiI+Ph6VK1dGu3btVPPcvn79Gv/73/9UQ1OyY25ujp07d6JVq1Zo3LgxmjRpgkqVKkGhUODx48c4d+4cHB0dce/evQ/Wsnz5cjRo0ACDBw/G/v37Ub58edy9exf79u2Ds7Mzli9frpPn/M0336hu2nH79m1VW0bP+qBBg1T/AQGA3377DfXr10eHDh3QrVs3uLq64uDBg7h79y5GjBiR6fM1YcIE7N27F/Pnz8eNGzdQvXp1BAYG4tixY6hVqxbGjBmjk+fx32MePHgQmzZtwj///IOmTZuq5qdNS0vD6tWrVeOCdalJkybYuXMnOnXqhFatWsHCwgJVqlRBu3btMGrUKLx48QINGjSAu7s7FAoFzp8/jytXrqBOnTpqrzEA1W13cyOEE+mUXHOQ6TsAYvfu3arljLkRra2t1X5MTExE165dhRBCDB48WAAQ9+/fVz3u+vXrAoC4d+9eXj8F0nPPnz8XJiYm4uuvv860Lrt5bjMkJSWJ4sWLC2NjY9X7LTY2VowfP164u7sLc3NzUaZMGTFr1iyRkpIiAIjGjRur7eN9819mHP+/c4u+fv1afPXVV8LZ2VlYWFiIGjVqiF27dr13PtO9e/eKxo0bC1tbW2Fubi4qVaokFi9erDbPqxBv57nN6nalGfOJTps2LdO6nMylGh4eLlavXi06d+4sPD09ha2trTA1NRWurq6ibdu2Wc6VqsvX1c3NTbi5uWW5Lqt9ZWz/5s0b8dVXXwkXFxdhbm4uqlSpIvz9/XP0Wjx79kyMHj1alClTRpibmws7OztRrlw5MWjQII3mdM0QEhIi+vfvL1xdXYWJiYlwdXUV/fv3z3K+YG3nuc2Y3ze7n6z2d+/ePdG5c2fh4OCgep8tW7ZMbU7Zd0VFRYkxY8aIkiVLClNTU1GqVCkxfvx4tblmPyS7eW6zExcXJ6ZMmSLKli2rmtu2VatW4ty5c5m2fd88t/99n2TI6v2VmpoqJkyYIEqVKiVMTEzUPmNbt24VXbt2FaVLlxZWVlbC3t5eVKlSRcyfP1/ExsZm2r+Xl5coUqSISElJ0ej5EslFIcR/Bk8RAOmrq3dnS9i2bRu+/PJL3L17VzWGKYONjQ2KFi2KadOmYe7cuWpXPCcmJsLKygrHjh3j2FvKpHfv3jh48CAeP36cK702ZNjc3d0BSLcmJpLTgwcP4OnpienTp2camkSkbzjmVkPVqlVDeno6wsPD8emnn6r9ZMz7Wb9+faSlpal9VZlxm8//Xi1OBACzZ89GYmIifvnlF7lLISLK1syZM+Hq6orx48fLXQrRB3HM7Tvi4uLw8OFD1XJwcDBu3rwJBwcHlC1bFl9++SX69OmDxYsXo1q1aoiIiMDJkydRuXJltGnTBs2aNUP16tUxYMAALF26FEqlEsOHD0fz5s1V91snepebmxs2bNiQ7RRBRERyS01NhaenJ/r166d21z0ifcVhCe84ffo0vL29M7X37dsXfn5+SE1NxezZs7Fx40Y8f/4cTk5OqFOnDmbMmIFKlSoBkO4wNHLkSBw7dgzW1tZo1aoVFi9ezGlTiCjHOCyBiCjnGG6JiIiIKN/gmFsiIiIiyjcYbomIiIgo3yjwF5QplUq8ePECtra2UCgUcpdDRERERP8hhEBsbCyKFSsGI6P3980W+HD74sWLPL9dJBERERHl3NOnT1GiRIn3blPgw23GxPlPnz6FnZ1drh9PqVQiIiICzs7OH/yfB+kPnjfDxPNmmHjeDBPPm2EylPMWExODkiVLanTDowIfbjOGItjZ2eVZuE1KSoKdnZ1ev4lIHc+bYeJ5M0w8b4aJ580wGdp502QIqf4/CyIiIiIiDTHcEhEREVG+wXBLRERERPkGwy0RERER5RsMt0RERESUbzDcEhEREVG+wXBLRERERPlGgZ/nVi7p6ekIDQ1FYmKi3KWQBpRKJV6/fo3Y2FiDmAfwv0xNTeHk5AQrKyu5SyEiIspVDLd57Pnz51i2bBmuXbuGqKgoucuhHEhPT4exsbHcZWjNxMQEderUQdeuXVGvXj25yyEiIsoVDLd56OnTp/jqq6+gVCrRrl071KpVC7a2thrdbYPkJYRAWloaTExMDPJ8JScn499//8Xhw4cxZswYzJ49Gy1atJC7LCIiIp1juM1DM2fOhKWlJZYtW4aiRYsaZEgqqAw93AJAjRo10K1bN0yfPh1TpkzB559/jkKFCsldFhERkU4Z3uBBAxUeHo6bN2+if//+cHJykrscKqCMjIwwZswYCCEQEBAgdzlEREQ6x3CbR27cuAEhBBo2bCh3KVTAOTg4oGLFirh69arcpRAREekcw20eybjK3s7OTu5SiODo6Ii4uDi5yyAiItI5hts8olQqYWxsbLDjNSl/MTIyglKplLsMIiIinWO4lZlCodDo5/Tp0x99rISEBEyfPl3jfZ0+fVp1/M2bN2e5Tf369aFQKFCxYsUs16enp6NYsWJQKBQ4fPhwlttMnz79vc89NDRUo3rflZiYiIEDB6JixYqwt7eHjY0NqlSpgp9//hmpqalq2/r5+Wl87LFjx6J69epwcHCAlZUVypUrh+nTp2fqBe3Xr997n9Pz5881eh7btm1D3bp1YW1tjUKFCqFevXo4deqU2jbR0dGYMGECypQpA0tLS7i5uWHgwIF48uRJjl83IiIiQ8fZEmS2adMmteWNGzfi+PHjmdrLlSv30cdKSEjAjBkzAABeXl4aP87CwgL+/v7o1auXWntISAguXLgACwuLbB976tQpvHz5Eu7u7tiyZQtatWqV7bbLly+HjY1NpnZtruhPTEzE3bt30bp1a7i7u8PIyAgXLlzA2LFjcfnyZfj7+2d6zMyZM+Hh4fHeY1+7dg0NGzZE//79YWFhgRs3buDHH3/EiRMncPbsWdUNHoYMGYJmzZqpPVYIgaFDh8Ld3R3Fixf/4HOYPn06Zs6cic6dO6Nfv35ITU3FnTt31IKxUqlE8+bN8ffff2PYsGEoW7YsHj58iN9++w1Hjx7FP//8A1tbW01fNiIiIoPHcCuz/wbGS5cu4fjx45na5dS6dWvs27cPr169Upvpwd/fHy4uLihTpgwiIyOzfOzmzZtRvXp19O3bF5MnT0Z8fDysra2z3LZz5846m0nCwcEBly5dUmsbOnQo7O3t8euvv2LJkiUoWrSo2vpWrVqhZs2a793vuXPnMg0tKV26NL755htcuXIFderUAQDUrVsXdevWVdvu/PnzSEhIwJdffvnB+i9duoSZM2di8eLFGDt27Hu3u3r1Kn799VcMHz5c1e7p6YkBAwbgxIkT6Nix4wePR0RElF9wWIIBUCqVWLp0KSpUqAALCwu4uLhgyJAhmQLltWvX4OPjAycnJ1haWsLDwwMDBgwAIPWyOjs7AwBmzJih+np8+vTpHzy+r68vzM3NsWPHDrV2f39/dO3aNdu7diUmJmL37t3o3r07unbtisTEROzdu1eLV+CtJ0+e4N69e1o/3t3dHQCyvTtcbGws0tPTdbrPDP7+/lAoFOjZs+cH97l06VIULVoUo0ePhhAi24u/YmJiAAAuLi5q7a6urgAAS0vLDx6LiIgoP2G4NQBDhgzBt99+i/r16+Pnn39G//79sWXLFvj4+KjGj4aHh6NFixYICQnBxIkT8csvv+DLL79U9V46Oztj+fLlAICOHTti06ZN2LRpE7744osPHt/Kygq+vr74/fffVW23bt3C3bt33xvU9u3bh7i4OHTv3h1FixaFl5cXtmzZku32b968watXr9R+/hsY+/Tpk6MhGikpKXj16hWePn2K3bt3Y9GiRXBzc8Onn36aaVtvb2/Y2dnBysoK7du3x4MHD7LcZ1paGl69eoUXL17g2LFj+OGHH2Bra4vPP/882zpSU1Oxfft21KtXTxWG3+fkyZOoVasW/ve//8HZ2Rm2trZwdXXFr7/+qrZdzZo1YW1tjSlTpuDUqVN4/vw5zpw5gwkTJqBWrVqZhkYQERHldxyWoOfOnz+PNWvWYMuWLWpB0tvbGy1btsSOHTvQs2dPXLhwAZGRkTh27JjaV+uzZ88GAFhbW6Nz5874+uuvUbly5RwPe+jZsyfatWuHp0+fomTJktiyZQs++eQT1dfwWdm8eTPq1auHkiVLAgC6d++OYcOGISIiQtWL/C5PT88s2z6mp3bXrl3o0aOHarlmzZpYt24dTEzevvWtrKzQr18/Vbi9fv06lixZgnr16iEwMFBVf4Zr166pDTnw9PTEvn374ODgkG0dR48exevXrzUakhAZGYlXr17hzz//xKlTpzBt2jSUKlUK69evx8iRI2FqaoohQ4YAAJycnLBt2zYMHjwYTZs2Ve3Dx8cHO3fuVHueREREBQH/5dNzO3bsgL29PZo3b45Xr16p2mvUqAEbGxsEBASgZ8+eqgufDhw4gCpVqsDU1FSndbRo0QIODg7YunUrvvnmG2zduhV9+vTJdvvXr1/j6NGj+Omnn1RtnTp1wvDhw7F9+3a18aEZ/vjjj0zzAP93fG5OZ43w9vbG8ePHERUVhZMnT+LWrVuIj49X26Zr167o2rWrarlDhw7w8fFBo0aNMGfOHKxYsUJt+/Lly+P48eOIj4/HhQsXcOLEiQ/OGevv7w9TU1O142QnY1+vX7/G1q1b0a1bNwDSmORKlSph9uzZqnALSL3y1apVw4gRI1ChQgXcvHkTCxYsQP/+/TMNJSEiIvpYMYmpeBaZgNikNNhamKBEYSvYWeo2d3wMhls99+DBA0RHR6NIkSJZrg8PDwcANG7cGJ06dcKMGTPw008/wcvLCx06dEDPnj1hbm7+0XWYmpqiS5cu8Pf3x+eff46nT5++d0jCtm3bkJqaimrVquHhw4eq9tq1a2PLli1ZhttGjRrp/NbELi4uqvGonTt3xty5c9G8eXM8ePAg0wVl72rQoAFq166NEydOZFpnZ2en+rrf19cX/v7+8PX1RWBgIKpUqZJp+7i4OOzduxc+Pj5wdHT8YM0Z42RNTU3RuXNnVbuRkRG6deuGadOm4cmTJyhVqhSCgoLg7e2NjRs3olOnTqqa3N3d0a9fPxw+fPi9M1QQERHlxJPX8Vj/ZwievElQtbk5WqFfPXeUcsz6gvG8xjG3ek6pVKJIkSI4fvx4lj8zZ84EIM2Xu3PnTly8eBEjRozA8+fPMWDAANSoUUNnd6Lq2bMnbt68ienTp6NKlSooX758tttmjK2tX78+ypQpo/o5f/48Ll68iKCgIJ3UlFOdO3dWhc0PKVmyJN68efPB7TLGLW/dujXL9Xv27NF4lgRAmunBwsICjo6OmS7Wy/hPTsbFhH5+fkhKSkLbtm3Vtmvfvj0A4M8//9TomERERB8Sk5iaKdgCwOPXCfC7EIKYxNRsHpm32HOr50qXLo0TJ06gfv36Gl35XqdOHdSpUwdz5syBv78/vvzyS2zduhWDBg366LujNWjQAKVKlcLp06cxf/78bLcLDg7GhQsXMGLECDRu3FhtnVKpRO/eveHv748ffvjho+rRRmJiIgDpxgcfEhQUlOXY4P9KTk6GUqnMdp9btmyBjY2NKnB+iJGREapWrYqrV68iJSUFZmZmqnUvXrwAAFVdYWFhEEJkmuEh40LDtLQ0jY5JRET0Ic8iEzIF2wyPXyfgWWQCylva53FVmbHnVs917doV6enpmDVrVqZ1aWlpqtkEIiMjIYRQW1+1alUAUvgCpAungA9PWZUdhUKB//3vf5g2bRp69+6d7XYZvbYTJkxA586d1X66du2Kxo0bv3fWhPfRdCqwV69eZXo9AGDNmjUAoHbRXURERKbtDh06hOvXr6Nly5aqtqioqEx3N8tun+/uO2Ou2YzX/7+yek7dunVDeno6NmzYoGpLSkrCli1bUL58eRQrVgwAULZsWQghsH37drXHZ8xsUa1atSyPSURElFOxSe/vMPnQ+rzCnls917hxYwwZMgTz5s3DzZs30aJFC5iamuLBgwfYsWMHfv75Z3Tu3BkbNmzAb7/9ho4dO6J06dKIjY3F6tWrYWdnh9atWwOQxnKWL18e27ZtQ9myZeHg4ICKFStme+vcrPj6+sLX1/e922zZsgVVq1bNNMtAhvbt22PkyJEIDAxE9erVVe07d+7M8g5lzZs3V42b7dOnD86cOZNlcH3X5s2bsWLFCnTo0AGffPIJYmNjcfToURw/fhzt2rVDkyZNVNvWq1cP1apVQ82aNWFvb4/AwECsW7cOJUuWxOTJk1XbnTlzBuPGjUPnzp1RpkwZpKSk4Ny5c9i1axdq1qyZ5QwU27ZtQ1pa2nuHJGT1nIYMGYI1a9Zg+PDh+Pfff1GqVCls2rQJjx8/xv79+1Xb9evXD4sWLcKQIUNw48YNVKhQAYGBgVizZg0qVKjAGzgQEZHOFLl9DWOWzMCKr+ciyTLz+FpbC/2IlfpRBb3XihUrUKNGDaxcuRKTJ0+GiYkJ3N3d0atXL9SvXx+AFIKvXLmCrVu3IiwsDPb29vj888+xZcsWtVvKrlmzBiNHjsTYsWORkpKCadOm5SjcfkhgYCDu3buHKVOmZLtNu3btMHLkSNXdyzJ8/fXXWW4fEBCQ6SYFH9KgQQNcuHABv//+O8LCwmBiYgJPT08sWbIEI0eOVNu2W7duOHjwII4dO4aEhAS4urpi8ODBmDZtmtpxK1asCG9vb+zduxcvX76EEAKlS5fG1KlT8e2336oNH8iwZcsWFClSJMfzzVpaWuLUqVOYMGEC1q1bh/j4eFStWhUHDx6Ej4+PajtHR0dcu3YNU6dOxf79+7FixQo4OjpiwIABmDt3bpY1ERER5dj583Dv1RmKuDi037sG27uPVlvt5miFEoWz/oYyrynEh7rA8rmYmBjY29sjOjo60zRUurR9+3b89NNPuHDhAtLS0mBiYvLRY2Ap7wgh8tV5++677xAfH5/pphD5jVKpRHh4OIoUKQIjI47CMhQ8b4aJ580waXTezp0DWrUC4uOR1LAxloxahEdxb+NjXsyWkJO8xp5bIiIiIsra2bNA69ZAfDzQrBks9u7FCIUp57klIiIiIgNz5owUbBMSgObNgb17AUtL2AF6MStCdvi9QR5RKBRQKpUfvBCKKC8olcp8MbyCiIhySUoK0K+fFGx9fFTB1hAw3OYRGxsbpKenIzY2Vu5SiBAZGQlbW1u5yyAiIn1lZgbs3w/06gXs2WMwwRZguM0zGfON8o5RJLfo6Gj89ddfajNVEBERAQDevatpxYrApk2AhYV89WiB4TaPFC1aFJUrV4afn5/WN1Eg+lhKpRLLli0DALW5fomIiHDiBODhIY21NWB6dUHZvHnzsGvXLty7dw+WlpaoV68e5s+fD09Pz2wf4+fnh/79+6u1mZubIykpKbfLzbEffvgBQ4YMQf/+/dG+fXt8/vnnsLGx4dhHA2DoU4ElJyfj33//xaFDh3Djxg1MmTIFDg4OcpdFRET64tgxoGNHICkJWL4caNxY7oq0plfh9syZMxg+fDhq1aqFtLQ0TJ48GS1atMDff/8Na+vs506zs7PD/fv3Vcv6Gj4++eQTrFy5Er/88gs2b96MVatWyV0S5UB6ejqMjY3lLkNrRkZGqF69OhYsWABvb2+5yyEiIj1hFhAARf/+QHIy0K4d8M6t3w2RXoXbI0eOqC37+fmhSJEiuH79Oho1apTt4xQKBYoWLZrb5emEu7s7vvvuOxQqVAgvXrxAQkKC3CWRBpRKJd68eQMHBweDnJzczMwMLi4usLfX36lbiIhIBkeOoHD//lAkJwO+vsD27dLFZAZMr8Ltf0VHRwPAB78+jYuLg5ubG5RKJapXr465c+eiQoUKWW6bnJyM5ORk1XJMTAwAKbwolUodVZ69jOnAMm6hS4ZBqVQiIiICzs7OBhluM+TFe1yfZHzeCtrzNnQ8b4aJ580AHT4MRadOUCQnQ+nrC2zdCpiYAHp4DnPyvtLbcKtUKjFmzBjUr18fFStWzHY7T09PrFu3DpUrV0Z0dDQWLVqEevXq4e7duyhRokSm7efNm4cZM2Zkao+IiMiTcbpKpRLR0dEQQhh0SCpoeN4ME8+bYeJ5M0w8b4bHfu1aWCYnI6ZZM8QtXQojPb7gPSdTqSqEnt5V4Ouvv8bhw4dx/vz5LENqdlJTU1GuXDn06NEDs2bNyrQ+q57bkiVLIjIy8oP3KtaF/NIDWNDwvBkmnjfDxPNmmHjeDFBKCsQvvyC8Wzc4Fyum1+ctJiYGhQsXRnR09Afzml723I4YMQIHDhzA2bNncxRsAcDU1BTVqlXDw4cPs1xvbm4Oc3PzTO1GRkZ5dlIVCkWeHo90g+fNMPG8GSaeN8PE82YAbt0CKlcGFArAwgLK8eOhCA/X+/OWk9r06lkIITBixAjs3r0bp06dgoeHR473kZ6ejtu3b8PV1TUXKiQiIiIyUPv2AbVqAcOHA/r5xb1O6FXP7fDhw+Hv74+9e/fC1tYWoaGhAAB7e3tY/v9t3/r06YPixYtj3rx5AICZM2eiTp06+PTTTxEVFYWFCxfi8ePHGDRokGzPg4iIiEiv7NkDdO0KpKYCb94A6enSxWP5kF49q+XLlwMAvLy81NrXr1+Pfv36AQCePHmi1jUdGRmJwYMHIzQ0FIULF0aNGjVw4cIFlC9fPq/KJiIiItJfu3dLwTYtDejeXbqlbj4NtoCehVtNrm07ffq02vJPP/2En376KZcqIiIiIjJgu3YB3bpJwbZnT+kGDfk42AJ6NuaWiIiIiHTkjz/e9th++WWBCLYAwy0RERFR/pRx44PevQtMsAX0bFgCEREREelIly5AiRLA558DxsZyV5Nn2HNLRERElF/s2QM8ffp2uW7dAhVsAYZbIiIiovzh99+BTp0ALy8gIkLuamTDcEtERERk6Pz9gV69pHG2Xl6Ao6PcFcmG4ZaIiIjIkG3eLF00plQCgwYBq1cDenwr3dxWcJ85ERERkaHbtAno00cKtoMHAytXFuhgCzDcEhERERmmXbuAvn0BIYAhQ4AVKwp8sAU4FRgRERGRYapXD/D0lMbYLlvGYPv/GG6JiIiIDFHRosCFC4C9PYPtO/hKEBERERmKdeuku41lKFyYwfY/2HNLREREZAhWrwa++gpQKIDPPgNq15a7Ir3EqE9ERESk71atkoItAIwcKd1Sl7LEcEtERESkz1aulGZDAIDRo4GlS6XeW8oSwy0RERGRvlq+HBg6VPp9zBjgp58YbD+A4ZaIiIhIH124AAwbJv0+bhywZAmDrQZ4QRkRERGRPqpbFxg/Xgq0CxYw2GqI4ZaIiIhInyiV0vReCgWwcKHUxmCrMQ5LICIiItIX//sf0LYtkJQkLSsUDLY5xHBLREREpA+WLpVmQzh8GNi2Te5qDBbDLREREZHcfvoJGDtW+v3774E+feStx4Ax3BIRERHJafFiaTYEAPjhB2DWLA5F+AgMt0RERERyWbgQ+OYb6fepU4GZMxlsPxLDLREREZEcQkOB2bOl36dNA2bMYLDVAU4FRkRERCSHokWBo0eB06eBiRPlribfYLglIiIiykuhoVKwBYA6daQf0hkOSyAiIiLKK7NnA+XLA4GBcleSbzHcEhEREeWFWbOAKVOAyEjgzBm5q8m3GG6JiIiIctuMGdJsCADw449v57QlneOYWyIiIqLcNH26FG4BYMEC4NtvZS0nv2O4JSIiIsoNQkjBduZMafndOW0p1zDcEhEREeWGtDTg/Hnp93fvQka5iuGWiIiIKDeYmgL79wMHDgBdu8pdTYHBC8qIiIiIdEUI4Phx6U8AsLJisM1jDLdEREREuiAEMGkS0KKFdDtdkgWHJRARERF9LCGA776TLhoDAGdneespwBhuiYiIiD6GENL0XosXS8u//goMHy5vTQUYwy0RERGRtoSQpvdaskRaXrYMGDZM3poKOIZbIiIiIm29G2yXLweGDpW3HuIFZURERERa8/QEjIyAlSsZbPUEe26JiIiItPXVV0CjRsBnn8ldCf0/9twSERERaUoIYP58ICLibRuDrV5huCUiIiLShBDAiBHAxInSXLapqXJXRFlguCUiIiL6EKVSmt7rt98AhQIYNUq6vS7pHY65JSIiInofpVKa3mvlSinYrl8P9O0rd1WUDYZbIiIiouwoldIsCKtXS8HWzw/o00fuqug9GG6JiIiIsjNlihRsjYyADRuAXr3krog+gGNuiYiIiLIzaBDg4QFs3MhgayDYc0tERESUHQ8P4O+/AQsLuSshDbHnloiIiChDejowZAiwd+/bNgZbg8JwS0RERARIwXbgQGDVKqBHDyA0VO6KSAsclkBERESUng707w9s2gQYG0uzIhQtKndVpAWGWyIiIirY0tOBfv2AzZulYLt1K9C5s9xVkZYYbomIiKjgSkuTbsjg7w+YmEjBtlMnuauij8BwS0RERAWXn9/bYLttG/DFF3JXRB+J4ZaIiIgKrgEDgKtXgZYtgY4d5a6GdIDhloiIiAqWtDTpTxMT6c5jK1fKWw/pFKcCIyIiooIjNRXo2RPo3fttyKV8heGWiIiICoaMYLtj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\n"
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Pushing to Git from Colab"
+ ],
+ "metadata": {
+ "id": "7ijJTmw2EkYI"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Pushing code\n",
+ "# First, install git and set up credentials\n",
+ "!apt-get install git -y\n",
+ "!git config --global user.name \"makindekayode75\"\n",
+ "!git config --global user.email \"makindekayode75@gmail.com\""
+ ],
+ "metadata": {
+ "id": "Ko2zG1JKJfgJ",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "8862a5fd-0a68-478b-9ca2-2412cdf0ce18"
+ },
+ "execution_count": 36,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Reading package lists... Done\n",
+ "Building dependency tree... Done\n",
+ "Reading state information... Done\n",
+ "git is already the newest version (1:2.34.1-1ubuntu1.12).\n",
+ "0 upgraded, 0 newly installed, 0 to remove and 29 not upgraded.\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Clone the repository (replace with your credentials)\n",
+ "!git clone https://makindekayode75:MgK1nDe.F7f22!x@gitlab.chiefsoft.net/DigiFi/digifi-Anayltics.git\n",
+ "\n",
+ "# Navigate to the repository\n",
+ "%cd digifi-Anayltics/"
+ ],
+ "metadata": {
+ "id": "_ZiLmYIlENx8"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Copy your files from Colab to the local repository\n",
+ "\n",
+ "# Add, commit and push the files\n",
+ "!git add .\n",
+ "!git commit -m \"First commit from Colab\"\n",
+ "!git push origin master"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "RGKVthOWDX75",
+ "outputId": "1e94e2c4-b8b3-4dc1-9838-fea6908fce5e"
+ },
+ "execution_count": 37,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "[master (root-commit) d7de6ed] First commit from Colab\n",
+ " 3 files changed, 504787 insertions(+)\n",
+ " create mode 100644 probable_salary_earner_summary.csv\n",
+ " create mode 100644 salary_earner_prediction.csv\n",
+ " create mode 100644 verified_salary_earner_summary.csv\n",
+ "Enumerating objects: 5, done.\n",
+ "Counting objects: 100% (5/5), done.\n",
+ "Delta compression using up to 2 threads\n",
+ "Compressing objects: 100% (5/5), done.\n",
+ "Writing objects: 100% (5/5), 3.56 MiB | 1.37 MiB/s, done.\n",
+ "Total 5 (delta 0), reused 0 (delta 0), pack-reused 0\n",
+ "To https://gitlab.chiefsoft.net/DigiFi/digifi-Anayltics.git\n",
+ " * [new branch] master -> master\n"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file