dindizz commited on
Commit
4cb4597
·
verified ·
1 Parent(s): 2f115f4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -24
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 built-up 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
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
- resale_value_builder = builder_share_area * guideline_value
 
 
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 calculations
30
- current_area_per_owner = current_area / num_owners
31
- owner_area_per_person = owner_share_area / num_owners
32
- gain_per_owner = owner_area_per_person - current_area_per_owner
33
 
34
- # Step 6: Plotting
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("Total Area (sq.ft)")
40
  ax.set_title("FSI Area Comparison")
41
  plt.tight_layout()
42
 
43
- return {
 
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 of Builder Area": f"₹ {resale_value_builder:,.2f}",
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 UI
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", value=40, minimum=0, maximum=80, step=1)
73
  ]
74
 
75
  outputs = [
76
- gr.JSON(label="CMDA Redevelopment & Builder Analysis"),
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 Deal Estimator",
85
  description=(
86
- "Compare old vs new FSI, calculate premium FSI charges, construction costs, and simulate builder-owner deals. "
87
- "Premium FSI is charged only beyond 2.0 FSI. Builder profit assumes resale at guideline value."
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