Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
291 changes: 7 additions & 284 deletions Spring/Coffee and Code/Workshops/PyCharm/ProForma/OpenSpaceProforma.py

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
3 changes: 3 additions & 0 deletions Spring/Teams/Towers in the Soup/ProForma/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions Spring/Teams/Towers in the Soup/ProForma/.idea/ProForma.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Spring/Teams/Towers in the Soup/ProForma/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Spring/Teams/Towers in the Soup/ProForma/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Spring/Teams/Towers in the Soup/ProForma/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
''' test '''
172 changes: 172 additions & 0 deletions Spring/Teams/Towers in the Soup/ProForma/DevCosts_CapitalStruc.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
import DevelopmentCostsInputs as devCost

#0.StartingAssumptions#

def TotalGrossZoningFloorArea(residZFA, comZFA, manZFA):
totalGZFA = [residZFA,comZFA,manZFA]
sumGZFA = sum(totalGZFA)
##for i in totalGZFA- how would we be able to it that way but print what each one is only one time##
print("ResidentialZoningFloorArea")
print(residZFA)
print("CommercialZoningFloorArea")
print(comZFA)
print("ManufacturingZoningFloorArea")
print(manZFA)
return sumGZFA

def InacuracyFloorLoss(myTotalGZFA, InacFact):
floorLoss = myTotalGZFA * InacFact
print("InaccuracyFactor")
print(InacFact)
return floorLoss

def TotalZoningFloorArea(myTotalGZFA, LossFact):
totalZFA = myTotalGZFA - (myTotalGZFA * LossFact)
print("NetLossFactor")
print(LossFact)
return totalZFA

myTotalGZFA = TotalGrossZoningFloorArea(residZFA= devCost.ResidentialZoningFloorArea,
comZFA= devCost.CommercialZoningFloorArea,
manZFA= devCost.ManufacturingZoningFloorArea)
print("InitialTotalGrossZoningFloorArea")
print(myTotalGZFA)

myFloorLoss = InacuracyFloorLoss(myTotalGZFA= myTotalGZFA,
InacFact= devCost.InacuracyFactor)
print("Inacuracy+/-FloorLoss")
print(myFloorLoss)

myTotalZFA = TotalZoningFloorArea(myTotalGZFA= myTotalGZFA,
LossFact= devCost.NetLossFactor)
print("FinalTotalZoningFloorArea")
print(myTotalZFA)

#A.DevelopmentCosts#

def LandPurchaseCost(landCost, lotArea):
totalPurchCost = landCost * lotArea
print("LandCost")
print(landCost)
print("LotArea")
print(lotArea)
return totalPurchCost

def ResidentialCost(residZFA, residCost):
totalResidCost = residZFA * residCost
print("ResidentialCostpsf")
print(residCost)
return totalResidCost

def CommercialCost(comZFA, comCost):
totalComCost = comZFA * comCost
print("CommercialCostpsf")
print(comCost)
return totalComCost

def ManufacturingCost(manZFA, manCost):
totalManCost = manZFA * manCost
print("ManufacturingCostpsf")
print(manCost)
return totalManCost

def HardCost(myTotalGZFA, hardCost):
totalHardCost = myTotalGZFA * hardCost
print("HardCostpsf")
print(hardCost)
return totalHardCost

def SoftCost(myTotalGZFA, softCost):
totalSoftCost = myTotalGZFA * softCost
print("SoftCostpsf")
print(softCost)
return totalSoftCost

def TotalDevelopmentCost(BuildPurch, mytotalPurchCost, mytotalResidCost, mytotalComCost, mytotalManCost, mytotalHardCost, mytotalSoftCost):
totalDevCost = [BuildPurch, mytotalPurchCost, mytotalResidCost, mytotalComCost, mytotalManCost, mytotalHardCost, mytotalSoftCost]
sumDevCost: int = sum(totalDevCost)
print("ExistingBuildingPurchase")
print(BuildPurch)
return sumDevCost

mytotalPurchCost = LandPurchaseCost(landCost= devCost.LandCostpsf,
lotArea= devCost.LotArea)
print("TotalLandPurchaseCost")
print(mytotalPurchCost)

mytotalResidCost = ResidentialCost(residZFA= devCost.ResidentialZoningFloorArea,
residCost= devCost.ResidentialCostpsf)
print("TotalResidentialCost")
print(mytotalResidCost)

mytotalComCost = CommercialCost(comZFA= devCost.CommercialZoningFloorArea,
comCost= devCost.CommercialCostpsf)
print("TotalCommercialCost")
print(mytotalComCost)

mytotalManCost = ManufacturingCost(manZFA= devCost.ManufacturingZoningFloorArea,
manCost= devCost.ManufacturingCostpsf)
print("TotalManufacturingCost")
print(mytotalManCost)

mytotalHardCost = HardCost(myTotalGZFA= myTotalGZFA,
hardCost= devCost.HardCostpsf)
print("TotalHardCost")
print(mytotalHardCost)

mytotalSoftCost = SoftCost(myTotalGZFA= myTotalGZFA,
softCost= devCost.SoftCostpsf)
print("TotalSoftCost")
print(mytotalSoftCost)

myTotalDevCost = TotalDevelopmentCost(BuildPurch= devCost.ExistingBuildingPurchase,
mytotalPurchCost= mytotalPurchCost,
mytotalResidCost= mytotalResidCost,
mytotalComCost= mytotalComCost,
mytotalManCost= mytotalManCost,
mytotalHardCost= mytotalHardCost,
mytotalSoftCost= mytotalSoftCost)
print("TotalDevelopmentCost")
print(myTotalDevCost)

#B.CapitalStructure#

def Equity(myTotalDevCost, EqPerc):
totalEq = myTotalDevCost * EqPerc
print("EquityPercentage")
print(EqPerc)
return totalEq

def Debt(myTotalDevCost, mytotalEq):
totalDebt = myTotalDevCost - mytotalEq
return totalDebt

def DebtService(mytotalDebt, DebtServPerc):
totalDebtServ = mytotalDebt * DebtServPerc
print("DebtServicePercentage")
print(DebtServPerc)
return totalDebtServ

mytotalEq = Equity(myTotalDevCost= myTotalDevCost,
EqPerc= devCost.EquityPercentage)
print("TotalEquity")
print(mytotalEq)

mytotalDebt = Debt(myTotalDevCost= myTotalDevCost,
mytotalEq= mytotalEq)
print("TotalDebt")
print(mytotalDebt)

mytotalDebtServ = DebtService(mytotalDebt= mytotalDebt,
DebtServPerc= devCost.DebtServicePercentage)
print("TotalDebtServicingCost")
print(mytotalDebtServ)

#C.ProjectedResidentialProceeds#

#ResidentialExpenses#

#Depreciation#



41 changes: 41 additions & 0 deletions Spring/Teams/Towers in the Soup/ProForma/DevelopmentCostsInputs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#0.StartingAssumptions#
DevelopmentTimeline = 11
LotArea = 10375
ExistingBuildingFloorArea = 132420.00 ##instead of hard coding can input from Built Area from Profile Information. whose code would that be?##
ResidentialFAR = 7.52
CommercialFAR = 1.00
ManufacturingFAR = 0.00
ResidentialZoningFloorArea = 100000.00
CommercialZoningFloorArea = 100000.00
ManufacturingZoningFloorArea = 100000.00
InacuracyFactor = 0.03
NetLossFactor = 0.15

#A.DevelopmentCosts#
ResidentialCostpsf = 500.00
CommercialCostpsf = 500.00
ManufacturingCostpsf = 500.00
HardCostpsf = 200.00
SoftCostpsf = 200.00
LandCostpsf = 50
ExistingBuildingPurchase = 0

#B.CapitalStructure#
DebtPercentage = 0.65
EquityPercentage = 0.35
DebtServicePercentage = 0.0688

#C.ProjectedResidentialProceeds#
AverageMarketRateUnitSizepsf = 900.00
MarketRateRentpyr = 12000.00
ResidentialVacancyRate = 0.05
IncomeExpenseEscalation = 0.02

#ResidentialExpenses#
OperationalExpensespsf = 6.50
RealEstateTaxespsf = 2.50
ReplacementReservepsf = 1.00

#Depreciation#
ResidentailDepreciationinyrs = 27.5

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#Manufacturing Constants

marketRateRent = 12000
manufacturingVacancyRate = .05
manufacturingIncome = 100000
operationalExpensesPerSqft = 3
realEstateTaxesPerSqft = 1
replacementReservesPerSqft = .50
manufacturingDepreciationInYears = 39
30 changes: 30 additions & 0 deletions Spring/Teams/Towers in the Soup/ProForma/OtherRates.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"""Attributes"""

'''Import from Legacies py file'''
import DevCosts_CapitalStruc
DC = DevCosts_CapitalStruc

annualIncreaseInExpenses = .02
annualPublicSubsidiesIncrease = .02
capRateAtSale = .06
salesExpense = .05
ordinaryIncomeTax = .35
depreciationRecapture = .25
capitalGainsTax = .2
discountRate = 0
interestRate = .05


loanAmount = DC.myTotalDevCost #TODO: import from Car legacies -> DC.totalDevelopmentCost?

debtService = DC.mytotalDebtServ #TODO: import from Car legacies -> CS.debtService?

def constantLoanRate(loanAmount, debtService):
return debtService / loanAmount
constantRate = constantLoanRate(loanAmount, debtService)
print(constantRate)


'''print(constantLoanRate())'''
print(loanAmount)
print(debtService)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
ProfileInformation = {
Date=
Team=
Portfolio=
Lot Area=
Lot Depth=
Land Use=
Easements=
BBL=
BIN=
Zoning District=
BuiltFAR=
ExistingBuildings=
YearBuilt=
BuiltArea=
BuildingUse=
}
Loading