Spaces:
Running
Running
File size: 1,607 Bytes
f4642b6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import prediction
def compute_income_breakdown(income_transformed, exh_num, lambdas):
income = prediction.inv_yeojohnson(income_transformed, lambdas)
if exh_num > 0:
reg_income_transformed = 0.995 * income_transformed
else:
reg_income_transformed = income_transformed
reg_income = prediction.inv_yeojohnson(reg_income_transformed, lambdas)
# Exhibit income
tiers = [
(0, 20, 1100),
(20, 35, 1750),
(35, 50, 1500),
(50, float('inf'), 5300)
]
exh = 0
for start, end, price in tiers:
if exh_num > start:
units = min(exh_num, end) - start
exh += units * price
else:
break
exh = min(exh, income - reg_income)
# Sponsorship
sponsor = min(exh_num * 2300, income - reg_income - exh)
if exh_num > 50:
sponsor = min(50 * 2300, income - reg_income - exh)
# Adjust
other = income - reg_income - exh - sponsor
reg_income += other
return income, reg_income, exh#, sponsor
def compute_expenses(income):
expenses = income * 0.85
return {
"Total Expenses": expenses,
"Social Functions Expenses": expenses * 0.35,
"Local Arrangements Expenses": expenses * 0.25,
"Management Service Expenses": expenses * 0.09,
"Committee Expenses": expenses * 0.06,
"Administration": expenses * 0.06,
"Social Admin Fees": expenses * 0.06,
"Publication Expenses": expenses * 0.05,
"Program Expenses": expenses * 0.05,
} |