diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 6d1a3b45..7bfbd7f5 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1509,11 +1509,12 @@ class DataLoader: } # We find some cases where properties have sold but are missing CIGA checks - survey_list_to_merge = survey_list[["asset_list_row_id"]].copy() + survey_list_to_merge = survey_list[["asset_list_row_id", "installation_status"]].copy() survey_list_to_merge["has_a_survey_record"] = True survey_list_to_merge = survey_list_to_merge[~pd.isnull(survey_list_to_merge["asset_list_row_id"])] asset_list = asset_list.merge(survey_list_to_merge, how='left', on="asset_list_row_id") + # Update the cases where properties have sold, but are missing a CIGA check asset_list["ECO Eligibility"] = np.where( (asset_list["ECO Eligibility"] == "eco4 (subject to ciga)") & ( asset_list["has_a_survey_record"] == True @@ -1521,6 +1522,17 @@ class DataLoader: "eco4 - passed ciga", asset_list["ECO Eligibility"] ) + # Update the cases where a property has been marked as eligible for GBIS, but sold for ECO4 + asset_list["ECO Eligibility"] = np.where( + (asset_list["ECO Eligibility"] == "gbis") & ( + asset_list["installation_status"].isin( + ["ECO4 - installed", "ECO4 - cancelled"] + ) + ), + "eco4", + asset_list["ECO Eligibility"] + ) + asset_list = asset_list.drop(columns=["has_a_survey_record"]) # Update the survey list with installation status @@ -3199,7 +3211,7 @@ def forecast_remaining_sales(loader): # Calculate the delta compared to Warmfront's original remaining if original_warmfront_remaining_eco4 == 0: - eco4_delta_vs_original_estimate_remaining = eco4_post_ciga_remaining_results["ECO4 - post CIGA - #"] + eco4_delta_vs_original_estimate_remaining = "N/A" else: eco4_delta_vs_original_estimate_remaining = ((eco4_post_ciga_remaining_results["ECO4 - post CIGA - #"] - original_warmfront_remaining_eco4) / @@ -3219,9 +3231,6 @@ def forecast_remaining_sales(loader): else: ha_gbis_sale_conversion = median_gbis_to_install - asset_list["ECO Eligibility"].value_counts() - asset_list_remaining["ECO Eligibility"].value_counts() - gbis_total = eligiblity_counts[ eligiblity_counts["ECO Eligibility"] == "gbis" ]["count"].sum() @@ -3236,7 +3245,7 @@ def forecast_remaining_sales(loader): # GBIS delta if original_warmfront_remaining_gbis == 0: - gbis_delta_vs_original_estimate_remaining = gbis_remaining + gbis_delta_vs_original_estimate_remaining = "N/A" else: gbis_delta_vs_original_estimate_remaining = ( (gbis_remaining - original_warmfront_remaining_gbis) / original_warmfront_remaining_gbis