import pandas as pd
# aged discount
aged_discount = {
"Reformed value": [0, 0.25, 0.50, 0.75],
"Current value": [],
"Change against current": [],
"Tax revenues impact (£m)": [91.7, 68.8, 45.9, 22.9],
"Reference": [],
}
reference_list_ad = [
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27903®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27083®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=19090®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27909®ion=uk&timePeriod=2023&baseline=1",
]
for i in range(len(aged_discount["Reformed value"])):
aged_discount["Current value"] += ["100%"]
aged_discount["Change against current"] += [
f"{aged_discount['Reformed value'][i]-1:.0%}"
]
aged_discount["Reformed value"][
i
] = f"{aged_discount['Reformed value'][i]:.0%}"
aged_discount["Reference"] += [
f"<a href=\"{reference_list_ad[i]}\">Budgetary impact of changing aged discount to {aged_discount['Reformed value'][i]}</a>"
]
df_aged_discount = pd.DataFrame(aged_discount)
df_aged_discount["Reformed policy"] = "Aged discount"
# minimum age
age_list = list(range(70, 81))
age_list.remove(75)
min_age = {
"Reformed value": age_list,
"Current value": [],
"Change against current": [],
"Tax revenues impact (£m)": [
-19.6,
-11.4,
-7.7,
-2.4,
-1.5,
1.3,
2.2,
3.7,
7.1,
91.7,
],
"Reference": [],
}
reference_list_minage = [
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27932®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27939®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27941®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27944®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27947®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27949®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27951®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27953®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27955®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27960®ion=uk&timePeriod=2023&baseline=1",
]
for i in range(len(min_age["Reformed value"])):
min_age["Current value"] += [75]
min_age["Change against current"] += [min_age["Reformed value"][i] - 75]
min_age["Reference"] += [
f'<a href="{reference_list_minage[i]}">Budgetary impact of changing minimum age for aged discount to {age_list[i]}</a>'
]
df_min_age = pd.DataFrame(min_age)
df_min_age["Reformed policy"] = "Minimum age"
# licence fee
fee_list = list(range(157, 162))
fee_list.remove(159)
licence_fee = {
"Reformed value": fee_list,
"Current value": [],
"Change against current": [],
"Tax revenues impact (£m)": [-52.1, -26, 26, 52.1],
"Reference": [],
}
reference_list_fee = [
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27089®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=27087®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=26981®ion=uk&timePeriod=2023&baseline=1",
"https://policyengine.org/uk/policy?focus=policyOutput.netIncome&reform=26983®ion=uk&timePeriod=2023&baseline=1",
]
for i in range(len(licence_fee["Reformed value"])):
licence_fee["Current value"] += ["£159"]
licence_fee["Change against current"] += [
f"£{licence_fee['Reformed value'][i]-159}"
]
licence_fee["Reformed value"][i] = f"£{licence_fee['Reformed value'][i]}"
licence_fee["Reference"] += [
f"<a href=\"{reference_list_fee[i]}\">Budgetary impact of changing licence fee to {licence_fee['Reformed value'][i]}</a>"
]
df_licence_fee = pd.DataFrame(licence_fee)
df_licence_fee["Reformed policy"] = "TV licence fee"
# concat df
df_reform = pd.concat([df_aged_discount, df_min_age, df_licence_fee])
df_reform.set_index(
["Reformed policy", "Current value", "Reformed value"]
).style.format(lambda x: x)