handling case where property is marked as gbis but sold for ECO4

This commit is contained in:
Khalim Conn-Kowlessar 2024-03-06 10:59:07 +00:00
parent abe0e627db
commit 5b32ac8aad

View file

@ -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