Financial Modeling Methodology
This document describes the calculation methodology, conventions, and assumptions used by the OneStopReal pro-forma platform. It is intended for lenders, investors, and other financial stakeholders who need to understand how the platform generates its projections.
Version 2.2 - October 2026
1. Model Overview
OneStopReal generates a monthly cash flow pro-forma covering the full project lifecycle: land acquisition → construction → stabilization → hold → exit. The model supports multi-building projects with independent construction timelines and produces monthly and annual cash flows, financial statements, return metrics and investor waterfalls.
The platform supports three project archetypes: ground-up development (new construction), existing building acquisition (with optional value-add renovation), and mixed portfolios combining both. Each building can contain residential, commercial, or hospitality unit types.
Inputs Calculation Engine Outputs
─────── ────────────────── ───────
• Buildings & Units ──► • Monthly Cost Draws ──► • Monthly Cash Flow Schedule
• Acquisition Costs ──► • Revenue Timing ──► • Annual Cash Flow Summary
• Hard & Soft Costs ──► • Financing Simulation ──► • Profit & Loss Statement
• Renovation Budgets ──► • Exit Calculation ──► • Balance Sheet
• Operating Expenses ──► • Waterfall Distribution ──► • Sources & Uses
• Financing Terms ──► • Financial Statements ──► • IRR / Equity Multiple
• Exit Strategy ──► • DCF Analysis ──► • DSCR / Yield on Cost
• Waterfall Structure ──► • Scenario Analysis ──► • Sensitivity Tables
• DCF Valuation
• Price for Target Return2. Development Cost Modeling
2.1 Cost Categories
| Category | Basis Options | Indexation |
|---|---|---|
| Acquisition Costs | Fixed amount, % of purchase price | Not indexed |
| Hard Costs (construction) | Fixed amount, per gross sq.m | Annual construction indexation |
| Soft Costs (professional fees, permits) | Fixed, per sq.m, % of hard costs, % of purchase price, monthly fixed | Annual construction indexation |
| Renovation Costs (value-add) | Per unit × budget per unit, linear over reno duration | Not indexed |
All cost categories support unlimited dynamic line items - users can add as many individual cost entries as needed within each category, each with its own basis, timing, distribution curve, and steepness.
2.2 Cost Distribution Curves
Costs are distributed over time using one of four configurable curves, each with three steepness levels (mild, standard, sharp):
| Curve | Distribution Pattern | Typical Use Case |
|---|---|---|
| Linear | Uniform across all months | General-purpose default |
| Bell | Concentrated in the middle of the period | Construction labor intensity |
| Front-Loaded | Higher spend at the start, tapering off | Materials procurement, mobilization |
| Back-Loaded | Lower spend initially, increasing toward the end | Finishes, fit-out, landscaping |
All curves produce weights that sum exactly to 1.0, ensuring total cost integrity.
2.3 Construction Indexation
Costs are indexed annually using compound growth:
Indexed Cost = Base Cost × (1 + Annual Indexation Rate)^(Years Elapsed)
Years elapsed is calculated as floor((month - 1) / 12), meaning indexation steps up at the beginning of each 12-month period. Acquisition costs are not subject to construction indexation.
2.4 Construction Contingency
Each building supports a configurable contingency percentage applied proportionally to hard cost draws:
Monthly Contingency = Hard Cost Draw(month) × Contingency% Total Contingency = Σ Monthly Contingency (over construction period)
Contingency is distributed in proportion to the hard cost draw curve, ensuring it follows the same timing pattern as physical construction expenditure.
2.5 Acquisition Cost Allocation
For multi-building projects, acquisition costs can be allocated by percentage across buildings. If no allocation is specified, 100% is assigned to the first building by default. This affects per-building cost metrics and capitalization.
3. Revenue Modeling
3.1 Pre-Sales (During Construction)
Pre-sale units are distributed across the construction timeline using the selected distribution curve. For each pre-sale tranche:
- Deposit is collected at the point of sale:
Units × Sale Price × (1 - Discount%) × Deposit% - Balance is collected at the end of construction:
Units × Sale Price × (1 - Discount%) × (1 - Deposit%) - Marketing costs are deducted:
Units × Sale Price × Marketing% - Discrete unit distribution uses Hamilton's method (Largest Remainder) for non-uniform curves. When weights are uniform (e.g., linear distribution), units are evenly spaced across the full duration to prevent clustering
3.2 Post-Sales (After Construction)
Post-sale units are distributed between a start month and end month. Price adjustments (positive or negative) are applied relative to the base sale price:
Post-Sale Price = Base Sale Price × (1 + Price Adjustment%)
3.3 Sale Price Indexation
Both pre-sale and post-sale revenue are subject to annual sale price indexation:
Indexed Sale Price = Base Price × (1 + Annual Sale Price Indexation)^(Years Elapsed)
This applies to deposits, balances, and post-sale proceeds, reflecting property value appreciation over the project lifecycle.
3.4 Rental Income
For units that are neither pre-sold nor post-sold ("hold units"):
Gross Potential Rent = Hold Units × Monthly Rent per Unit × Rent Indexation Multiplier Effective Rent = GPR × Occupancy Rate
Rent commencement: Rental income begins individually per building when that building's construction period ends - not when the last building completes.
One indexation clock: every amount you enter (rent, operating expenses, other income, costs and sale prices) is in today's prices. All of them grow in yearly steps counted from project month 1, using floor((month - 1) / 12). A building that opens after a 24-month build therefore opens at its rent grown by two years of indexation.
No growth before a building opens: an optional project setting. When it is on, rent, operating expenses and other income skip every yearly step that falls on or before the month they start earning (each building's opening, each other-income line's start), so they open at exactly the amounts entered and grow from there. Existing buildings are unaffected, and construction costs and sale prices still grow from month 1. Imported deals start with it on, because the rents in offering memoranda and models are often already the figures expected at opening.
Growth by year: rent and operating-expense growth can be a single rate or a rate for each project year from year 1 to year 14; year 14's rate continues after it. A single rate first applies in month 13 (year 1 is the amount entered); a by-year schedule can also set year 1, applied from month 1. A unit type or expense line with its own rate (single or by year) uses it in place of the project-wide rate.
3.5 Commercial Lease Rollover
For commercial spaces relying on standard tenancy assumptions, the model applies probability-weighted Lease Rollover mechanics:
| Component | Formula / Treatment |
|---|---|
| Effective Downtime | Base Downtime (Months) × (1 - Renewal Probability) |
| Turnover Costs | Tenant Improvements (TIs) and Leasing Commissions (LCs) weighted by probability. These act as below-NOI capital expenditures. |
| Concessions | Free rent months weighted by probability. This directly reduces Gross Potential Rent for that term. |
To ensure an accurate exit valuation via direct capitalization, the defined Stabilized NOI intentionally ignores the temporary drag of periodic downtime and concessions.
3.6 Hospitality Revenue
Units typed as hospitality use a specialized revenue model based on hotel industry metrics. Instead of a flat monthly rent, revenue is driven by a 12-month seasonality schedule specifying:
| Parameter | Description |
|---|---|
| ADR (Average Daily Rate) | Revenue per occupied room per night for a given calendar month |
| Occupancy % | Expected occupancy for each calendar month (e.g., 90% in July, 40% in January) |
Monthly Revenue = Rooms × ADR × Days in Month × Occupancy%
The seasonality array is aligned to actual calendar months using the project start date, so seasonal patterns (high/low season) are anchored to the correct time of year. Hospitality units bypass the take-up ramp - their occupancy is controlled entirely by the seasonality schedule.
3.7 Take-Up Ramp
Occupancy ramps from 0% to the target occupancy rate over the configurable take-up period. The ramp shape is configurable using any of the four distribution curves:
If month ≤ take-up duration:
Occupancy = Target Occupancy × Curve Weight at (month / take-up duration)
Else:
Occupancy = Target Occupancy
Where: Target Occupancy = 1 - Vacancy RateThe vacancy rate is set globally in General Parameters and applies to all standard rental units. Individual unit types can override it with a per-unit vacancy rate, useful for mixed-use buildings where retail and residential carry different structural vacancy assumptions. Hospitality units and units with lease rollover enabled always use their own vacancy models and ignore this override.
Hospitality units are excluded from the take-up ramp - their occupancy is driven entirely by their seasonality schedule.
3.8 Revenue Sharing (Operator Agreements)
Buildings can operate under a tiered revenue-sharing model where gross operating revenue is split between the landlord and an operator (e.g., hotel management company):
| Parameter | Description |
|---|---|
| Tiers | Multiple thresholds where the landlord share % changes based on cumulative annual revenue |
| Minimum Guaranteed Rent (MGR) | Floor on the landlord's monthly share - operator absorbs the difference if revenue is below this threshold |
| YTD Reset | Cumulative revenue resets at the start of each 12-month period |
| First-Year Proration | Partial-year revenue thresholds are prorated based on the calendar month of operations commencement |
Independent revenue items flagged as "subject to revenue share" are routed through the same tiered split. The landlord's net rent after the split flows into project cash flows; the operator's share is tracked separately.
3.9 Independent Revenue (Grants & Subsidies)
The model supports project-level revenue streams that are not tied to any specific building - such as government grants, energy subsidies, tax incentives, or other external income.
Each independent revenue item is defined by:
| Parameter | Description |
|---|---|
| Total Amount | The gross amount to be received over the defined period |
| Basis | Fixed total (distributed by curve), fixed monthly (recurring), or fixed annual (recurring) |
| Start / End Month | The delivery window (1-indexed absolute months) |
| Distribution Curve | Linear, Bell, Front-loaded, or Back-loaded (for fixed-total basis) |
| Steepness | Mild, Standard, or Sharp |
Revenue is distributed across the defined time window using the same weighted-curve engine as cost items, ensuring weights sum to 1.0. Recurring items (fixed-monthly, fixed-annual) are distributed evenly rather than via weighted curves. Only recurring items are capitalized into the exit NOI for valuation purposes.
4. Operating Expenses
Operating expenses begin per building when each building's construction completes. The following basis types are supported:
| Basis | Formula (Annual) |
|---|---|
| Fixed Annual | Direct input (annual amount) |
| Fixed Monthly | Amount × 12 (input is monthly, annualized automatically) |
| Per sq.m | Amount × Total Gross Area |
| Per unit | Amount × Total Units |
| % of Gross Rent | Amount% × Annualized GPR |
| % of EGI | Amount% × Annualized Effective Gross Income |
| % of Total Cost | Amount% × (Total Hard Costs + Total Soft Costs) |
Fixed vs. Variable Split
Each expense item has a configurable fixed-vs-variable percentage:
Adjusted Monthly OpEx = (Annual Amount × Fixed%) + (Annual Amount × Variable% × Current Occupancy)
─────────────────────────────────────────────────────────────────────────
12Variable expenses scale with actual occupancy relative to stabilized occupancy (EGI Ratio = Actual EGI / Stabilized EGI). For hospitality units, the stabilized baseline uses nominal full occupancy rather than seasonal rates, ensuring variable expenses properly scale down during off-season.
OpEx indexation: Fixed (annual and monthly), per-sqm and per-unit bases are indexed annually from project month 1. Percentage-based items (% of rent, % of EGI, % of Total Cost) are not indexed independently: they move only with the figure they are a percentage of.
5. Financing Structure
The model uses a Dynamic Multi-Loan Engine, allowing users to layer unlimited concurrent or sequential debt tranches (Senior Construction, Mezzanine, Bridge, Permanent, Refinance) with complex inter-loan payoff mechanics.
5.1 Dynamic Loan Tranches
| Loan Feature | Description |
|---|---|
| Funding Priority | Loans draw capital in user-defined priority order to fund construction and soft costs |
| Payoff Mechanics | Any loan can act as a 'takeout' loan, completely or partially paying off the outstanding balance of older loans |
| Interest Capitalization | Interest can be paid in cash, or capitalized into the loan balance (PIK, payment-in-kind). While interest is being capitalized no principal is paid, so a capitalizing loan is effectively interest-only for that period regardless of its repayment style |
| Amortization | Standard P&I amortization or Interest-Only (IO) with configurable grace periods. The amortization period is separate from the loan term and may be longer, which is the common commercial structure (for example a 5-year term on a 25-year schedule); whatever is left when the term ends is repaid as a balloon |
| Maturity | A loan reaching the end of its term with a balance outstanding is repaid in full in that month, unless another loan is set to retire it first, or its term runs to the sale |
| Sizing Basis | One of five: % of Total Development Cost (LTC), % of Stabilized Value (LTV), Fixed Amount, Keep Balance, or % of Purchase Price. See 5.5 |
5.2 Construction Draw Funding
During periods where costs exceed revenue, the model draws from equity and active loans. Funding can follow two methods:
Multi-Building Master Facility: The platform enforces exactly 1 primary Construction/Acquisition loan. If a project has multiple buildings starting at different times, this single facility stays open and dynamically draws down to fund all subsequent buildings (acting as a Master Development Facility). Users cannot originate a second, separate draw-down construction loan later in the timeline.
| Method | Description |
|---|---|
| Pro-Rata | Debt and equity fund each month's costs proportionally according to the LTV ratio |
| Equity-First | All equity is drawn first; once equity is exhausted, remaining costs are funded by debt |
Iterative TDC Solver: Because capitalized interest affects total development cost (which in turn affects the equity/debt split), the model uses an iterative solver (converging to within $1) to determine the correct equity quantum. A second re-estimation pass runs on actual cost arrays to ensure monthly parity.
What Total Development Cost includes. TDC is the cost of building the asset plus the interest the loan itself funds. Capitalized and PIK interest are part of TDC, because the loan advances them and they sit in its balance. Interest paid in cash during construction is not: it is a financing cost equity pays as it falls due, so the model reports it beside TDC as its own line rather than inside it. The equity tie-out is Equity in Sources & Uses + cash interest = total equity required, and the sum of the Uses equals TDC exactly.
5.3 Pre-Sale Treatment
Pre-sale revenue generated during construction can be applied in four ways:
| Treatment | Effect |
|---|---|
| Offset Equity | Reduces the equity required for that month's costs |
| Offset Debt | Reduces the construction loan draw for that month |
| Offset Pro-Rata | Reduces both equity and debt proportionally based on LTV |
| Ignore | Pre-sale proceeds are not factored into funding during construction |
Pre-sale offsets are managed through a pooling mechanism with a forward-looking smart release system. Excess pre-sale revenue beyond what future months will consume is released immediately rather than held in reserve.
5.4 Variable Rates and Loan Indexation
Variable rate (index plus spread). A loan set to a variable rate is charged its stated rate plus a base-rate spread:
Effective Rate = Interest Rate + Base Rate Spread
The model holds that rate flat for the life of the loan. It does not project a forward index curve, so a rate rise is tested as a scenario (the Interest Rate override in section 12) rather than forecast.
Annual Indexation grows the principal, not the rate. This option models a loan whose balance is linked to an index (for example a CPI-linked loan). Each month the balance is increased, and interest is then charged on the increased balance:
Indexation Increase(month) = Balance × Annual Indexation / 12 Balance = Balance + Indexation Increase Interest(month) = Balance × Effective Rate / 12
The increase is added to the loan balance and reported with capitalized interest. Because an amortizing payment is recalculated every month from the current balance (6.3), the payment on an indexed loan rises as its balance does.
5.5 Loan Sizing
Every loan is sized by one of five methods, chosen per loan:
| Method | How the amount is set |
|---|---|
| % of Total Development Cost (LTC) | The stated percentage of the construction-phase costs plus the capitalized interest the loan itself funds. Interest paid in cash and financing fees are excluded from the base, so a cash-pay loan is committed on costs before financing |
| % of Stabilized Value (LTV) | Stabilized NOI / cap rate, multiplied by the stated percentage. NOI is taken at the month the loan originates (for every loan type), indexed to that month, with lease-rollover bumps and renovations counted from each building's own opening - not at exit. Never below $0: if NOI is negative when the loan starts, the loan is set to $0, the month carries a remark and the Underwriting Auditor flags it red |
| Fixed Amount | An absolute figure the user enters, unaffected by cost or value movements |
| Keep Balance | Exactly the outstanding balance of the loans this one retires, a like-for-like refinance with no cash in or out |
| % of Purchase Price | The stated percentage of the Month 0 purchase price, the common basis for an acquisition loan |
When a loan originates it retires any loans it is configured to pay off. If it sizes above the retired balances plus exit and prepayment fees, the surplus is a cash-out; if it sizes below them, the shortfall is funded by a mandatory equity draw in that month.
5.6 Loan Fees & Penalties
Each loan can have multiple fee items and a year-based prepayment penalty schedule (up to 5 years):
| Fee Type | Basis / Timing |
|---|---|
| Origination / Standard Fees | % of loan amount or fixed amount. Payable Upfront, Monthly, Quarterly, Annual, or Exit |
| Prepayment Penalties | Outstanding Balance × Penalty Rate(year). Applied if the loan is paid off (via refinance or exit) while still active. |
5.7 Value-Add Renovation Financing
For existing building projects, renovation costs can be partially funded by active loans:
Debt-Funded Renovation = Monthly Renovation Draw × Renovation Funding % Equity-Funded Renovation = Monthly Renovation Draw × (1 - Renovation Funding %)
6. Interest Calculation Conventions
6.1 Construction Period Interest
Interest each month is computed against the loan balance after that month's draw has been added, using an end-of-month convention:
Monthly Interest = (Beginning Balance + Current Month Draw) × Annual Rate / 12
This is a conservative approximation that treats new draws as accruing a full month of interest in the month they are funded. Real construction loans typically accrue interest daily; this convention slightly overstates capitalized interest vs daily accrual, which is a deliberate conservative bias for underwriting purposes.
6.2 Capitalized vs. Cash-Pay Interest
| Mode | Treatment |
|---|---|
| Capitalized | Interest is added to the loan balance; debt and equity each bear their proportional share based on LTV |
| Cash-Pay | Interest is paid from equity in the current month; not added to the loan balance |
In equity-first mode with capitalized interest, interest is first allocated to equity while the equity budget has room, with any excess allocated to debt. This prevents over-drawing debt beyond the target LTV.
6.3 Permanent Loan Amortization
Standard mortgage amortization formula:
Monthly Payment = Principal × (r × (1 + r)^n) / ((1 + r)^n - 1)
Where:
r = Annual Rate / 12
n = Amortization Period in months, less any grace period
(defaults to the loan term when no amortization period is set)Interest and principal components are tracked separately for P&L and balance sheet purposes. The payment is recalculated every month from the current balance, the rate and the months left on the amortization schedule. On a plain loan this gives the same level payment as a fixed schedule; it changes only when the balance is moved by something else, such as indexation (5.4).
Amortization period vs. loan term. These are two different numbers and they do different jobs. The term is when the loan is due; the amortization period is the schedule the monthly payment is calculated on, and it is normally the longer of the two. A 5-year loan written on a 25-year schedule pays a 25-year payment for 5 years and then repays the remaining balance in one sum. Leaving the amortization period blank means the loan fully amortizes over its own term, with no balloon.
Maturity. When a loan reaches the end of its term with a balance still outstanding, the model repays that balance in full in the maturity month and shows it in the monthly cash flow and the Remarks column. Contractual exit fees apply; prepayment penalties do not, since reaching the maturity date is not a prepayment. If another loan is configured to retire it, that refinance takes precedence and no balloon is recorded. If the term runs to the sale, the exit settlement repays it instead.
7. Valuation Methods
7.1 Direct Capitalization (Exit Valuation)
Exit NOI = Stabilized Annual NOI + Recurring Independent Revenue (annualized) Exit Value = Exit NOI / Exit Cap Rate Net Proceeds = Exit Value - Selling Costs - Loan Payoff - Exit Fees - Prepayment Penalties
Stabilized NOI at exit is calculated using rents and OpEx indexed to the exit month on the project clock, with lease-rollover bumps counted from each building's own opening. Only recurring independent revenue items (fixed-monthly, fixed-annual) that are still active at exit are capitalized into the exit NOI, at their amount grown to the exit year - one-time grants are excluded.
7.2 Discounted Cash Flow (DCF) Analysis
The DCF module provides an alternative valuation metric:
DCF Property Value = NPV of Operating Cash Flows + Discounted Terminal Value
| Component | Methodology |
|---|---|
| Operating Cash Flows | Monthly NOI from stabilization to exit, discounted at the specified discount rate |
| Terminal Value | Trailing 12-month annualized NOI ÷ terminal cap rate |
| Discounting | Monthly compounding: PV = FV × (1 + r/12)^(-month) |
The DCF output includes: NPV of operating cash flows, discounted terminal value, DCF property value and value per sq.m, premium vs. PV of cap-rate exit (apples-to-apples), and premium vs. total development cost.
7.3 Price for Target Return (Residual Land Value)
You set a target levered (equity) IRR, and the model solves for the purchase price that just achieves it. The Dashboard shows that price, the current purchase price, and the difference between them (Headroom). On a ground-up deal, where the purchase price is the land, this is the residual land value.
Variable: the purchase price (the first fixed-amount line in
Acquisition Costs); other acquisition lines stay as entered
Method: binary search, 60 iterations, each a full model run
Search range: $0 to 2 × total project revenue (exit value + unit sales)
Result: rounded to the nearest dollarIt recalculates whenever the deal changes. It is on by default for new projects at an 18% target, and not shown in Refinance Analysis mode. If no purchase price reaches the target, no result is shown. The AI assistant answers "what can I pay for X% IRR" with the same solver, so the two always agree.
8. Key Return Metrics
| Metric | Formula |
|---|---|
| Project IRR (Unlevered) | Annualized from monthly unlevered cash flows: (1 + monthly IRR)^12 − 1 |
| Equity IRR (Levered) | Annualized from monthly levered cash flows: (1 + monthly IRR)^12 − 1 |
| Equity Multiple (deal level) | Total Distributions / Total Equity Contributed = (Peak Cash Exposure + Net Levered Profit) / Peak Cash Exposure. See the note below the table |
| Equity Multiple (per investor, waterfall) | Total Distributions / Total Contributions for each investor class and the GP |
| DSCR (stabilized) | NOI / Debt Service (interest + principal across all loans), both measured over a stabilized 12-month operating window - typically the year prior to exit, or the final 12 operating months for shorter holds. |
| DSCR (per year) | NOI over the months that actually carry debt service in that year, divided by that year's debt service. A year in which a loan is repaid or refinanced part-way is measured over its debt-carrying months only, and is marked as a partial year. |
| Debt Yield | Stabilized Annual NOI / debt outstanding at the start of the stabilized window |
| Yield on Cost | Stabilized NOI / Total Development Cost |
| Cash-on-Cash Return | (Stabilized-year NOI − stabilized annual debt service) / Total Equity Contributed (= Peak Cash Exposure) |
| Cash-on-Cash on equity still in | The same cash / unreturned equity at the start of the year. Marked "small base" when under 5% of peak equity is still in; a year with negative operating cash reads "Equity called" instead of a negative percentage |
| Profit on Cost | Net unlevered profit (the sum of unlevered cash flow over the project: operating income and sale proceeds less all costs) / Total Development Cost |
Why the denominator is peak cash exposure. The equity multiple is total distributions divided by total equity contributed, the industry definition. The model counts equity the way a project holds it: cash the project will still need in a later month stays in the project rather than being paid out and called back. Equity is therefore contributed only when the project has no cash of its own to cover a cost, and the total contributed equals the peak cash exposure, the deepest point of cumulative levered cash flow. The investor waterfall applies the same rule with its cash reserve, and its multiple across all investors and the GP together matches the deal-level figure (21 of 23 saved projects with a waterfall, October 2026; the other two limit the reserve to 24 months ahead, so some cash is paid out and later called again, which lowers the investors' multiple). Counting each month on its own instead, as if every month's cash were paid out and the next month's costs called again, overstates contributions on any deal whose cash moves both ways during the project (pre-sales, refinances) and understates the multiple.
A DSCR of zero means no debt service, not zero coverage. Where a period carries no debt payment there is no ratio to state, so the model returns exactly zero as a marker and the exports leave the cell empty, keeping it out of any average a reader calculates. A negative DSCR is different and is always printed as a number: it means debt service measured against a negative NOI, which is a real and meaningful result.
IRR is calculated using a bisection-based robust solver (200 iterations) on monthly cash flow streams, with sign detection to handle both profitable (positive IRR) and loss-making (negative IRR) scenarios. The Newton-Raphson method (via node-irr) is used only as a fallback when the bisection solver cannot find a sign change. Results are annualized geometrically.
Comparing with Excel's XIRR or IRR. The model solves for a monthly rate on equal monthly periods and annualizes it as (1 + monthly IRR)^12 − 1. Excel's XIRR discounts each cash flow by its actual date (days / 365). For the same monthly cash flows the two differ only slightly, because calendar months are not exactly equal in length. A larger gap almost always means the cash flows themselves differ in timing: an annual spreadsheet that places each year's cash on the last day of the year receives that cash later than a monthly model does, and so shows a lower IRR for the same deal.
9. Financial Statements
9.1 Profit & Loss
- Revenue: rental income, independent revenue, and unit sales (pre-sale deposits and balances, post-sale proceeds) when the cash is received
- Operating expenses: per building, indexed. NOI = revenue − operating expenses
- Selling and marketing costs of unit sales
- Cost of units sold: each unit-sale receipt takes its share of the property's book value, by sales value: receipt / (unit-sale receipts still to come + net exit value)
- Interest expense: all interest except what a loan capitalizes during construction, which is part of the property's cost instead
- Loan exit fees and prepayment penalties paid at the sale
- Depreciation: straight-line at the Depreciation Rate (General Parameters) × the property's cost, monthly, starting the month after construction completes
- Gain on sale of property: exit value − selling costs − book value at the sale
- Income tax: the Corporate Tax Rate (General Parameters) × taxable income (pre-tax income after losses carried forward)
- Tax loss carryforward: Losses in one year reduce taxable income in subsequent years
Returns are pre-tax. Both rates default to zero. Tax appears in the P&L and as tax payable on the balance sheet, and is not deducted from any cash flow, so the IRR, equity multiple, DSCR and waterfall are all before income tax, the usual basis for comparing real estate deals.
9.2 Balance Sheet
Every line is built from the monthly cash flow; nothing is solved for:
Assets:
Property Cost less accumulated depreciation. Cost = acquisition, hard and soft
costs, renovation, turnover CapEx (TIs and LCs), interest capitalized
during construction and loan fees; reduced by the cost of units sold,
and removed at the sale
Cash From the cash flow: the cash the waterfall holds back as its reserve,
otherwise zero, since all levered cash flow is distributed or
contributed in the month it arises
Liabilities:
Loans Outstanding balances; zero after the sale repays them
Tax payable Income tax from the P&L (not in any cash flow, see 9.1)
Equity:
Equity contributed − Distributions paid + Retained earnings
Check = Assets − (Liabilities + Equity)The check is a real test, not a forced zero. Because cash comes from the cash flow, any amount the statements failed to account for would show up as a nonzero check. It is held at zero by automated tests on every year of every test project, and on every saved project when measured in October 2026. Its first run found a real engine error: a refinance loan sized below zero, fixed the same day (see 5.5). After the sale, the balance sheet ends at zero: no property, no loans and no cash.
9.3 Annual Cash Flow
Monthly data is aggregated into annual summaries showing: gross revenue, vacancy loss, effective gross income, operating expenses by category, Net Operating Income, debt service (interest + principal), and levered and unlevered cash flows.
10. Equity Waterfall
The platform supports two waterfall templates: standard tiered (traditional PE structure) and bifurcated (separate operating and capital event streams).
10.1 Standard Tiered Waterfall
Distributes project cash flows between General Partner (GP) and Limited Partner (LP) investors using the following cascade:
| Step | Description |
|---|---|
| 1. Return of Capital | Investors receive their invested capital back first (by priority class) |
| 2. Preferred Return | LP investors receive their contractual preferred return on unreturned capital |
| 3. GP Catch-Up | Once all capital and preferred return are paid, the GP receives an accelerated share until it holds its target share of profit (formula below) |
| 4. Residual Split | Remaining cash is split according to tiered promote schedules |
GP catch-up. The target is the GP's share in the first promote tier. The catch-up speed is 100% (all catch-up cash to the GP) or 50% (split evenly with investors), or it can be switched off. Profit to date is distributions minus contributions for each party:
Catch-Up Cash = (Target × LP Profit − GP Profit × (1 − Target)) / (Speed − Target) GP receives Catch-Up Cash × Speed LPs receive Catch-Up Cash × (1 − Speed)
After the catch-up, GP profit equals the target share of total profit. Catch-up runs only when the speed is above the target and investors have already made a profit.
10.2 Bifurcated Waterfall
Separates project cash flows into two independent streams, each with its own distribution logic:
| Stream | Cash Source | Distribution Method |
|---|---|---|
| Operating | Monthly operating cash flow (NOI - debt service) | Distributed as a flat % of unreturned capital (Year 1 rate vs. Year 2+ rate) |
| Capital Event | Sale proceeds, refinance cash-outs | Follows: Return of Capital → Preferred Catch-up → Post-Hurdle Profit Split |
| Parameter | Description |
|---|---|
| Operating Return Year 1 | Target annual return % on equity during the first 12 months |
| Operating Return Year 2+ | Target annual return % on equity after the first year |
| Capital Event Hurdle IRR | Preferred return rate accrued on unreturned capital, paid from capital events |
| Post-Hurdle GP Split | GP's share of residual profits after all capital and preferred returns are satisfied |
| Grace Period Reset on Refi | Optionally resets the Year 1 operating return period upon a refinance event |
| % Allocated to Return of Capital | The share of refinance proceeds (0% to 100%) paid as return of capital before the preferred catch-up. Capital returned at a refinance reduces each investor's capital balance, so later operating distributions and preferred return are calculated on the smaller balance. At 0%, refinance proceeds go to the preferred catch-up and profit split, and all capital is returned at the sale |
Surplus operating cash above the monthly target is swept into a retained earnings reserve. At a capital event (sale or refinance), the reserve is released and merged into the capital event pool. If operating cash falls short of the target, the reserve is drawn down to cover the deficit.
Distributions never exceed the cash the deal produces. If operating cash and the reserve together fall short of the operating target, investors receive what is available. The shortfall is not funded from outside the deal: preferred return keeps accruing on unreturned capital and is paid from refinance and sale proceeds, ahead of the GP's profit split. A sponsor guarantee of a fixed distribution is a separate deal term and is not modeled.
10.3 Preferred Return Accrual
| Option | Method |
|---|---|
| Simple | Accrual = Capital Balance × Annual Rate / 12 |
| Compound | Accrual compounds at the selected frequency (monthly, quarterly, annual) |
10.4 Hurdle Rate Types
| Type | Threshold |
|---|---|
| IRR-Based | Tier changes when the senior investor class's IRR reaches the hurdle (method below) |
| Equity Multiple-Based | Tier changes when the senior investor class's equity multiple (distributions / contributions) reaches the threshold |
How an IRR hurdle is applied. In each month with cash to distribute, the engine works out how much more the senior investor class can receive in that month before its IRR reaches the tier's hurdle. It discounts the class's cash flows to date at the hurdle rate; the amount that would bring that net present value to zero is the room left in the tier:
r = (1 + Hurdle)^(1/12) − 1 (monthly hurdle rate) NPV = Σ CashFlow(t) / (1 + r)^t, for t = 0 … current month Room in Tier = max(0, −NPV × (1 + r)^(current month))
Cash up to that room, grossed up by the class's share in the tier, is distributed at the tier's split; anything above it moves to the next tier.
10.5 Cash Reserve
The engine looks ahead at future negative cash flow months and reserves sufficient cash to cover them, preventing premature distributions that would require capital calls. A configurable lookahead window limits how far ahead the reserve looks.
10.6 GP Co-Investment
GP can contribute equity alongside LPs with configurable options:
- Subordinated: GP capital and preferred return is recovered after all LP classes are made whole
- Pari-Passu: GP capital is treated with equal priority to LP classes
- GP Preferred Return: Configurable rate independent of LP preferred return
11. BRRRR Portfolio Chains
The platform features a specialized BRRRR Chain Engine designed for multi-property portfolio strategies (Buy, Rehab, Rent, Refinance, Repeat) where the trapped equity of one project funds the acquisition of the next.
11.1 Dynamic Capital Pooling
- Sequential Funding: The net cash-out from a refinance event in Project A flows upstream to fund the required equity injection for Project B.
- Timeline Normalization: Projects are temporally aligned to a master timeline. A project's start date is strictly determined by the exact month the prerequisite refinance event triggers.
- Shortfall Tracking: The engine tracks portfolio-wide unspent cash surpluses and shortfalls, highlighting broken chains where refi proceeds are insufficient to fund the next deal without out-of-pocket investor injections.
11.2 Portfolio Analytics
A consolidated master P&L aligns the discrete cash flows of every project onto a single calendar grid.
| Metric | Methodology |
|---|---|
| Blended IRR | Calculated monthly across the merged levered cash flows of all projects. Because the flows sit on one monthly calendar, delayed project starts and staggered refinance cash-outs are discounted at their actual timing. |
| MOIC | Total Portfolio Returned Capital / Peak Cash Exposure |
| Peak Exposure | The maximum out-of-pocket investor capital required when the internal capital pool runs dry |
| Total Cash-Out | The gross sum of all refinance liquidity events generated across the portfolio |
12. Scenario Analysis
The platform provides a three-scenario analysis engine (pessimistic / base / optimistic) that runs the full proforma under modified assumptions:
| Parameter | Override Type | Scope |
|---|---|---|
| Exit Cap Rate | Absolute value | Exit strategy |
| Construction Cost | % adjustment | All hard cost amounts + renovation budgets |
| Vacancy Rate | Absolute value | General parameters |
| Interest Rate | Absolute value | Loan interest rates |
| Rent / Revenue | % adjustment | Monthly rent, sale prices, and hospitality ADR |
| Exit Year | Absolute value | Exit strategy |
| Operating Expenses | % adjustment | Fixed, monthly, per-sqm, per-unit OpEx items |
| LTV | Absolute value | Loan sizing |
Each scenario runs a complete, independent proforma calculation. Default values are computed as relative offsets from the base case (e.g., pessimistic cap rate = base + 1%, optimistic = base − 0.75%), but can be overridden to absolute values by the user.
The dashboard displays two-dimensional sensitivity matrices showing Equity IRR and Equity Multiple: purchase price (±5% and ±10%) × exit cap rate, exit cap rate × leverage, revenue × cost, and, when the deal has lease rollovers, renewal probability × downtime. Each cell is a complete proforma run. In the purchase price matrix only the purchase price line changes; closing costs and soft costs set as a percentage of the price, and loans sized on the price, follow it, while a fixed-amount loan does not.
Cells are coloured by the deal's own Levered IRR targets (the deal's setting, else the firm's Underwriting Standards, else the platform default of green from 15% and red below 10%), the same thresholds the Underwriting Auditor grades against; a legend under each table states them. Investor and lender viewers always see the platform default.
13. Conventions & Assumptions
| Convention | Approach |
|---|---|
| Time periods | Monthly granularity throughout |
| Day count | 30/360 for interest calculations |
| Indexation | Annual compound; steps up at the start of each 12-month period |
| Sale price indexation | Annual compound; applied to pre-sale and post-sale revenue |
| Rent commencement | Per building, upon construction completion |
| OpEx commencement | Per building, upon construction completion |
| Vacancy | Applied as a percentage reduction to gross potential rent |
| Take-up | Configurable ramp (linear, bell, front-loaded, or back-loaded) from 0% to target occupancy; bypassed for hospitality units |
| Unit sales | Hamilton's method for non-uniform curves; evenly spaced for uniform weights |
| IRR method | Bisection-based robust solver (200 iterations) with sign detection; Newton-Raphson fallback; geometrically annualized |
| Balance sheet | Built from the cash flow; the check (Assets − Liabilities − Equity) is computed, not forced |
| Depreciation | Straight-line on the property's cost; begins only after construction completion |
| Tax treatment | Returns are pre-tax. The P&L applies a flat corporate rate with loss carryforward |
| Equity Multiple | Total distributions / total equity contributed; cash the project still needs is held, so contributions equal peak cash exposure (8) |
Tax & Regional Conventions
Tax calculations in OneStopReal are simplified for general financial modeling. Property taxes, transfer taxes, and related fiscal items are modeled as flat Operating Expense or Soft Cost line items with standard annual indexation. Users should adjust these items to account for jurisdiction-specific taxes such as VAT, transfer taxes, stamp duties, or reassessment rules applicable in their market.
14. Validation
The calculation engine is covered by more than 400 automated tests, run against the engine directly. They fall into three groups:
- Accounting identities that must hold: the Uses sum to Total Development Cost, construction draws plus equity equal TDC, unlevered cash flow is unchanged by how pre-sales are applied, cumulative levered cash flow equals the sum of its months, and the balance sheet's check is zero in every year (9.2).
- Feature checks against expected results: loan maturity and balloons, prepayment penalties, undrawn commitment fees, partial-year DSCR, the indexation clock, lease rollover, revenue sharing, renovation timing and the waterfall.
- Full-project regression: complete real projects are recalculated and compared with their recorded results, so any change that moves a headline figure fails until it is reviewed and accepted.
The tests are the platform's own and are not an external audit.
15. Known Limitations
The model makes the following simplifications. Each is deliberate, and each is listed here so that a reviewer does not have to find it.
| Area | Limitation |
|---|---|
| Construction financing | One primary construction or acquisition loan per project. On multi-building projects it acts as a master facility for every building; a second draw-down construction loan cannot be added later in the timeline (5.2) |
| Prepayment | Penalties are a percentage of the outstanding balance by loan year (up to 5 years). Yield maintenance and defeasance are not modeled |
| Variable rates | Held flat at rate plus spread for the life of the loan; no forward index curve (5.4) |
| Tax | Flat corporate rate on taxable income; depreciation is straight-line on the property's cost, including land. No depreciation recapture or capital gains tax at sale. Returns are pre-tax (9.1) |
| Exit valuation | The stabilized NOI capitalized at exit ignores lease-rollover downtime and concessions (3.5) |
| Unit-sale revenue | Pre-sale deposits and balances are revenue when received, not at handover, so there is no deposits-received liability (9.1) |
| Loan fees | Added to the property's cost, including prepayment penalties paid at a refinance; only exit fees and penalties paid at the sale are expensed (9.1) |
| Other income | Not reduced by vacancy, and not part of the base for expenses set as a percentage of EGI. Loans sized on value (LTV) use unit rent NOI only |
| Utility reimbursements | The Utilities per month entered on a unit type is not yet included in NOI |
| Waterfall reserve | The deal-level levered IRR and multiple are calculated before the waterfall's cash reserve; investor IRRs and multiples after it. Net cash to equity is the same; only timing differs. With a limited reserve window, cash can be paid out and later called back, which lowers the investors' multiple below the deal-level one (8, 10.5) |
| Project end | When every unit is sold, the project ends at the last sale. Costs scheduled after that month are excluded and flagged on the Dashboard and in the Auditor |
| Market data | There is no market or comparables data source. Every rent, expense and cap rate assumption comes from the user or from the document they imported |
16. Changelog
| Version | Changes |
|---|---|
| 2.2 (October 2026) | Section 5.4 rewritten to describe variable rates and balance indexation as the engine applies them; the amortization payment is recalculated monthly. Formulas added for DSCR, cash-on-cash, the GP catch-up and the IRR hurdle. Equity multiple and cash-on-cash denominator explained (equity contributed, which equals peak cash exposure). Tax basis and pre-tax returns stated. Financial statements rebuilt so the balance sheet ties to the cash flow: the sale of the property, cost of units sold, renovation and loan fees in the property's cost, loans repaid at the sale, distributions and tax payable are all recorded, and the check is computed rather than forced. Refinance return of capital and distribution shortfalls in the bifurcated waterfall. Excel XIRR comparison. A value-sized loan can no longer be sized below $0. New sections: Validation, Known Limitations, Changelog |
| 2.1 (October 2026) | One indexation clock for every amount, growth set by year, and the option of no growth before a building opens |
| 2.0 updates (September 2026) | All five loan sizing methods documented (an "as-is value" method that never existed was removed); what Total Development Cost includes; loan maturity and balloon repayment; per-year DSCR over debt-carrying months; debt yield measured on debt outstanding at the start of the stabilized window |
| 2.0 (April 2026) | Version 2.0 published |
This document describes the methodology implemented in the OneStopReal platform as of October 2026. All calculations are performed deterministically based on user-provided inputs. The platform does not make investment recommendations.
© 2026 OneStopReal. All rights reserved.