Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -3,15 +3,15 @@ import matplotlib.pyplot as plt
|
|
| 3 |
|
| 4 |
def cmda_redevelopment_fsi_calculator(
|
| 5 |
uds, num_owners, old_fsi, new_fsi,
|
| 6 |
-
guideline_value, construction_cost, current_area,
|
| 7 |
builder_share_percent
|
| 8 |
):
|
| 9 |
-
# Step 1: Calculate
|
| 10 |
old_area = old_fsi * uds
|
| 11 |
new_area = new_fsi * uds
|
| 12 |
area_gain = new_area - old_area
|
| 13 |
|
| 14 |
-
# Step 2: Premium FSI
|
| 15 |
premium_fsi_factor = max(0, new_fsi - 2.0)
|
| 16 |
premium_area = premium_fsi_factor * uds
|
| 17 |
premium_fsi_charge = 0.4 * guideline_value * premium_area
|
|
@@ -22,69 +22,76 @@ def cmda_redevelopment_fsi_calculator(
|
|
| 22 |
# Step 4: Builder Share
|
| 23 |
builder_share_area = (builder_share_percent / 100) * new_area
|
| 24 |
owner_share_area = new_area - builder_share_area
|
| 25 |
-
|
|
|
|
|
|
|
| 26 |
construction_cost_builder = builder_share_area * construction_cost
|
| 27 |
builder_profit = resale_value_builder - construction_cost_builder - premium_fsi_charge
|
| 28 |
|
| 29 |
-
# Step 5: Owner-wise
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
|
| 34 |
-
# Step 6:
|
| 35 |
fig, ax = plt.subplots(figsize=(6, 4))
|
| 36 |
labels = ['Old FSI Area', 'New FSI Area', 'Premium FSI Area']
|
| 37 |
values = [old_area, new_area, premium_area]
|
| 38 |
ax.bar(labels, values, edgecolor='black')
|
| 39 |
-
ax.set_ylabel("
|
| 40 |
ax.set_title("FSI Area Comparison")
|
| 41 |
plt.tight_layout()
|
| 42 |
|
| 43 |
-
|
|
|
|
| 44 |
"Old FSI Buildable Area": f"{old_area:.2f} sq.ft",
|
| 45 |
"New FSI Buildable Area": f"{new_area:.2f} sq.ft",
|
| 46 |
"Total Area Gain": f"{area_gain:.2f} sq.ft",
|
| 47 |
"Premium FSI Portion": f"{premium_area:.2f} sq.ft",
|
| 48 |
"Premium FSI Charges": f"₹ {premium_fsi_charge:,.2f}",
|
| 49 |
"Total Construction Cost (New FSI)": f"₹ {total_construction_cost:,.2f}",
|
|
|
|
| 50 |
"--- Builder Deal Analysis ---": "",
|
| 51 |
"Builder Share Area": f"{builder_share_area:.2f} sq.ft",
|
| 52 |
"Owner Share Area": f"{owner_share_area:.2f} sq.ft",
|
| 53 |
-
"Resale Value
|
| 54 |
"Construction Cost for Builder": f"₹ {construction_cost_builder:,.2f}",
|
| 55 |
"Estimated Builder Profit": f"₹ {builder_profit:,.2f}",
|
| 56 |
-
"--- Owner Breakdown ---": "",
|
| 57 |
-
"Current Area per Owner": f"{current_area_per_owner:.2f} sq.ft",
|
| 58 |
-
"New Area per Owner": f"{owner_area_per_person:.2f} sq.ft",
|
| 59 |
-
"Net Gain per Owner": f"{gain_per_owner:.2f} sq.ft"
|
| 60 |
-
}, fig
|
| 61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
-
# Gradio
|
| 64 |
inputs = [
|
| 65 |
gr.Number(label="Current UDS (in sq.ft)", value=450),
|
| 66 |
gr.Number(label="Number of Owners", value=4),
|
| 67 |
gr.Number(label="Old FSI", value=1.5),
|
| 68 |
gr.Number(label="New FSI (max 2.8)", value=2.8),
|
| 69 |
gr.Number(label="Guideline Value (₹/sq.ft)", value=5000),
|
|
|
|
| 70 |
gr.Number(label="Construction Cost (₹/sq.ft)", value=3500),
|
| 71 |
gr.Number(label="Current Total Area (in sq.ft)", value=1800),
|
| 72 |
-
gr.Slider(label="Builder Share (%) of Redeveloped Area",
|
| 73 |
]
|
| 74 |
|
| 75 |
outputs = [
|
| 76 |
-
gr.JSON(label="CMDA Redevelopment
|
| 77 |
-
gr.Plot(label="FSI Area Comparison")
|
| 78 |
]
|
| 79 |
|
| 80 |
app = gr.Interface(
|
| 81 |
fn=cmda_redevelopment_fsi_calculator,
|
| 82 |
inputs=inputs,
|
| 83 |
outputs=outputs,
|
| 84 |
-
title="CMDA Redevelopment Calculator with Builder
|
| 85 |
description=(
|
| 86 |
-
"Compare old
|
| 87 |
-
"
|
| 88 |
)
|
| 89 |
)
|
| 90 |
|
|
|
|
| 3 |
|
| 4 |
def cmda_redevelopment_fsi_calculator(
|
| 5 |
uds, num_owners, old_fsi, new_fsi,
|
| 6 |
+
guideline_value, market_rate, construction_cost, current_area,
|
| 7 |
builder_share_percent
|
| 8 |
):
|
| 9 |
+
# Step 1: Calculate buildable areas
|
| 10 |
old_area = old_fsi * uds
|
| 11 |
new_area = new_fsi * uds
|
| 12 |
area_gain = new_area - old_area
|
| 13 |
|
| 14 |
+
# Step 2: Premium FSI Charges (only beyond FSI 2.0)
|
| 15 |
premium_fsi_factor = max(0, new_fsi - 2.0)
|
| 16 |
premium_area = premium_fsi_factor * uds
|
| 17 |
premium_fsi_charge = 0.4 * guideline_value * premium_area
|
|
|
|
| 22 |
# Step 4: Builder Share
|
| 23 |
builder_share_area = (builder_share_percent / 100) * new_area
|
| 24 |
owner_share_area = new_area - builder_share_area
|
| 25 |
+
|
| 26 |
+
# Resale value based on current market rate
|
| 27 |
+
resale_value_builder = builder_share_area * market_rate
|
| 28 |
construction_cost_builder = builder_share_area * construction_cost
|
| 29 |
builder_profit = resale_value_builder - construction_cost_builder - premium_fsi_charge
|
| 30 |
|
| 31 |
+
# Step 5: Owner-wise area (based on UDS)
|
| 32 |
+
uds_per_owner = uds / num_owners
|
| 33 |
+
new_area_per_owner = owner_share_area / num_owners
|
| 34 |
+
net_gain_per_owner = new_area_per_owner - uds_per_owner
|
| 35 |
|
| 36 |
+
# Step 6: Visualization
|
| 37 |
fig, ax = plt.subplots(figsize=(6, 4))
|
| 38 |
labels = ['Old FSI Area', 'New FSI Area', 'Premium FSI Area']
|
| 39 |
values = [old_area, new_area, premium_area]
|
| 40 |
ax.bar(labels, values, edgecolor='black')
|
| 41 |
+
ax.set_ylabel("Area (sq.ft)")
|
| 42 |
ax.set_title("FSI Area Comparison")
|
| 43 |
plt.tight_layout()
|
| 44 |
|
| 45 |
+
# Step 7: Output
|
| 46 |
+
result = {
|
| 47 |
"Old FSI Buildable Area": f"{old_area:.2f} sq.ft",
|
| 48 |
"New FSI Buildable Area": f"{new_area:.2f} sq.ft",
|
| 49 |
"Total Area Gain": f"{area_gain:.2f} sq.ft",
|
| 50 |
"Premium FSI Portion": f"{premium_area:.2f} sq.ft",
|
| 51 |
"Premium FSI Charges": f"₹ {premium_fsi_charge:,.2f}",
|
| 52 |
"Total Construction Cost (New FSI)": f"₹ {total_construction_cost:,.2f}",
|
| 53 |
+
|
| 54 |
"--- Builder Deal Analysis ---": "",
|
| 55 |
"Builder Share Area": f"{builder_share_area:.2f} sq.ft",
|
| 56 |
"Owner Share Area": f"{owner_share_area:.2f} sq.ft",
|
| 57 |
+
"Resale Value (Builder Area @ Market Rate)": f"₹ {resale_value_builder:,.2f}",
|
| 58 |
"Construction Cost for Builder": f"₹ {construction_cost_builder:,.2f}",
|
| 59 |
"Estimated Builder Profit": f"₹ {builder_profit:,.2f}",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
|
| 61 |
+
"--- Owner Breakdown (based on UDS) ---": "",
|
| 62 |
+
"UDS per Owner": f"{uds_per_owner:.2f} sq.ft",
|
| 63 |
+
"New Area per Owner": f"{new_area_per_owner:.2f} sq.ft",
|
| 64 |
+
"Net Gain per Owner": f"{net_gain_per_owner:.2f} sq.ft"
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
return result, fig
|
| 68 |
|
| 69 |
+
# Gradio Interface Setup
|
| 70 |
inputs = [
|
| 71 |
gr.Number(label="Current UDS (in sq.ft)", value=450),
|
| 72 |
gr.Number(label="Number of Owners", value=4),
|
| 73 |
gr.Number(label="Old FSI", value=1.5),
|
| 74 |
gr.Number(label="New FSI (max 2.8)", value=2.8),
|
| 75 |
gr.Number(label="Guideline Value (₹/sq.ft)", value=5000),
|
| 76 |
+
gr.Number(label="Market Rate (₹/sq.ft for sale)", value=9500),
|
| 77 |
gr.Number(label="Construction Cost (₹/sq.ft)", value=3500),
|
| 78 |
gr.Number(label="Current Total Area (in sq.ft)", value=1800),
|
| 79 |
+
gr.Slider(label="Builder Share (%) of Redeveloped Area", minimum=0, maximum=80, step=1, value=40)
|
| 80 |
]
|
| 81 |
|
| 82 |
outputs = [
|
| 83 |
+
gr.JSON(label="CMDA Redevelopment Report"),
|
| 84 |
+
gr.Plot(label="FSI Area Comparison Chart")
|
| 85 |
]
|
| 86 |
|
| 87 |
app = gr.Interface(
|
| 88 |
fn=cmda_redevelopment_fsi_calculator,
|
| 89 |
inputs=inputs,
|
| 90 |
outputs=outputs,
|
| 91 |
+
title="CMDA Redevelopment Calculator with Builder Profit Estimator",
|
| 92 |
description=(
|
| 93 |
+
"Compare old and new FSI, calculate premium FSI charges, construction costs, and simulate builder profit "
|
| 94 |
+
"based on market resale rate. Assumes equal UDS share among owners."
|
| 95 |
)
|
| 96 |
)
|
| 97 |
|