@@ -775,6 +775,16 @@ def uk_constituency_breakdown(
775775 return UKConstituencyBreakdownWithValues (** output )
776776
777777
778+ class CliffImpactInSimulation (BaseModel ):
779+ cliff_gap : float
780+ cliff_share : float
781+
782+
783+ class CliffImpact (BaseModel ):
784+ baseline : CliffImpactInSimulation
785+ reform : CliffImpactInSimulation
786+
787+
778788class EconomyComparison (BaseModel ):
779789 country_package_version : str
780790 budget : BudgetaryImpact
@@ -789,6 +799,7 @@ class EconomyComparison(BaseModel):
789799 intra_wealth_decile : IntraWealthDecileImpact
790800 labor_supply_response : LaborSupplyResponse
791801 constituency_impact : UKConstituencyBreakdown
802+ cliff_impact : CliffImpact | None
792803
793804
794805def calculate_economy_comparison (
@@ -802,51 +813,54 @@ def calculate_economy_comparison(
802813 reform : SingleEconomy = simulation .calculate_single_economy (reform = True )
803814 options = simulation .options
804815 country_id = options .country
805- if baseline .type == "general" :
806- budgetary_impact_data = budgetary_impact (baseline , reform )
807- detailed_budgetary_impact_data = detailed_budgetary_impact (
808- baseline , reform , country_id
809- )
810- decile_impact_data = decile_impact (baseline , reform )
811- inequality_impact_data = inequality_impact (baseline , reform )
812- poverty_impact_data = poverty_impact (baseline , reform )
813- poverty_by_gender_data = poverty_gender_breakdown (baseline , reform )
814- poverty_by_race_data = poverty_racial_breakdown (baseline , reform )
815- intra_decile_impact_data = intra_decile_impact (baseline , reform )
816- labor_supply_response_data = labor_supply_response (baseline , reform )
817- constituency_impact_data : UKConstituencyBreakdown = (
818- uk_constituency_breakdown (baseline , reform , country_id )
819- )
820- wealth_decile_impact_data = wealth_decile_impact (
821- baseline , reform , country_id
822- )
823- intra_wealth_decile_impact_data = intra_wealth_decile_impact (
824- baseline , reform , country_id
825- )
826-
827- return EconomyComparison (
828- country_package_version = get_country_package_version (country_id ),
829- budget = budgetary_impact_data ,
830- detailed_budget = detailed_budgetary_impact_data ,
831- decile = decile_impact_data ,
832- inequality = inequality_impact_data ,
833- poverty = poverty_impact_data ,
834- poverty_by_gender = poverty_by_gender_data ,
835- poverty_by_race = poverty_by_race_data ,
836- intra_decile = intra_decile_impact_data ,
837- wealth_decile = wealth_decile_impact_data ,
838- intra_wealth_decile = intra_wealth_decile_impact_data ,
839- labor_supply_response = labor_supply_response_data ,
840- constituency_impact = constituency_impact_data ,
841- )
842- elif baseline .type == "cliff" :
843- return dict (
844- baseline = dict (
816+ budgetary_impact_data = budgetary_impact (baseline , reform )
817+ detailed_budgetary_impact_data = detailed_budgetary_impact (
818+ baseline , reform , country_id
819+ )
820+ decile_impact_data = decile_impact (baseline , reform )
821+ inequality_impact_data = inequality_impact (baseline , reform )
822+ poverty_impact_data = poverty_impact (baseline , reform )
823+ poverty_by_gender_data = poverty_gender_breakdown (baseline , reform )
824+ poverty_by_race_data = poverty_racial_breakdown (baseline , reform )
825+ intra_decile_impact_data = intra_decile_impact (baseline , reform )
826+ labor_supply_response_data = labor_supply_response (baseline , reform )
827+ constituency_impact_data : UKConstituencyBreakdown = (
828+ uk_constituency_breakdown (baseline , reform , country_id )
829+ )
830+ wealth_decile_impact_data = wealth_decile_impact (
831+ baseline , reform , country_id
832+ )
833+ intra_wealth_decile_impact_data = intra_wealth_decile_impact (
834+ baseline , reform , country_id
835+ )
836+
837+ if simulation .options .include_cliffs :
838+ cliff_impact = CliffImpact (
839+ baseline = CliffImpactInSimulation (
845840 cliff_gap = baseline .cliff_gap ,
846841 cliff_share = baseline .cliff_share ,
847842 ),
848- reform = dict (
843+ reform = CliffImpactInSimulation (
849844 cliff_gap = reform .cliff_gap ,
850845 cliff_share = reform .cliff_share ,
851846 ),
852847 )
848+ else :
849+ cliff_impact = None
850+
851+ return EconomyComparison (
852+ country_package_version = get_country_package_version (country_id ),
853+ budget = budgetary_impact_data ,
854+ detailed_budget = detailed_budgetary_impact_data ,
855+ decile = decile_impact_data ,
856+ inequality = inequality_impact_data ,
857+ poverty = poverty_impact_data ,
858+ poverty_by_gender = poverty_by_gender_data ,
859+ poverty_by_race = poverty_by_race_data ,
860+ intra_decile = intra_decile_impact_data ,
861+ wealth_decile = wealth_decile_impact_data ,
862+ intra_wealth_decile = intra_wealth_decile_impact_data ,
863+ labor_supply_response = labor_supply_response_data ,
864+ constituency_impact = constituency_impact_data ,
865+ cliff_impact = cliff_impact ,
866+ )
0 commit comments