Features Use Cases Developers Lenders & Banks Consultants Educators Pricing About Methodology Glossary How Calculations Work Reading Charts Interpreting Results Practical Examples FAQ
Log in Book a demo Start trial
Home/Methodology/How Calculations Work
Methodology

How Calculations Work

From raw assumptions to investment-ready metrics — here's the logic behind every number in Profivo.

Revenue Logic

Revenue in a development appraisal starts with Gross Development Value (GDV) — the total expected sales proceeds from all units in the project. Profivo calculates this by summing each unit type's contribution: quantity multiplied by area multiplied by the price per square meter.

From GDV, sales costs are deducted: agent commissions (as a percentage of GDV), legal fees for conveyancing, and any additional selling costs you define. VAT handling is configurable — prices can be entered inclusive or exclusive of VAT, and the engine adjusts accordingly.

The result is Net Development Value (NDV), which represents the actual revenue available to cover costs and generate profit.

// Gross Development Value
GDV = Sum( quantity × area_m2 × price_per_m2 ) for each unit type

// Sales Costs (percentage + fixed extras)
Sales Costs = (agent_fee% + legal_fee% + extra_pct%) × GDV + extra_fixed_amounts

// VAT — two regimes
VAT = if vatIncluded (default): GDV × vat% / (100 + vat%)   // 21/121 for LT 21% VAT
VAT = if vatExclusive: GDV × vat% / 100

// Net Development Value
NDV = GDV − Sales Costs − VAT

VAT modes — for Lithuanian residential developments where new builds are subject to 21% VAT, prices are typically entered VAT-inclusive (gross price visible to buyer). The engine extracts the VAT component as GDV × 21/121. For UK / VAT-exempt markets, you can switch the rate to 0% or use the exclusive mode.

In practice: A 1% change in price/m² on a project with 50 units at 70 m² each can shift GDV by tens of thousands. Revenue assumptions are the single biggest lever in any appraisal.

Cost Logic

Build costs form the foundation of the cost structure. Profivo calculates them as a rate per square meter of Gross Internal Area (GIA), multiplied by the total GIA. For phased projects, costs can be split across construction phases with different rates.

On top of direct build costs, the engine layers contingency (a percentage buffer for unknowns), preliminary costs (fixed setup amounts for site establishment, temporary works, and professional fees), and other costs which can be defined as a percentage of build cost, a percentage of GDV, or a fixed amount.

// Direct Build Costs
Direct Build = cost_per_m2 × total_GIA per phase

// Contingency — applied on Preliminaries + Direct Build (NOT direct only)
Contingency = contingency% × (Preliminaries + Direct Build)

// Total Build Cost (per phase, summed across all phases)
Total Build = Preliminaries + Direct Build + Contingency

// Other Costs (separate top-level bucket, not part of Total Build)
Other Costs = Sum( pct_of_build_items + pct_of_gdv_items + fixed_items )

// Site / Land Cost
Site Cost = Sum( land_price + land_price × stamp_duty% ) × (1 + other_purchase%)

// Total Project Costs (excl. finance)
Total Costs = Site + Total Build + Other Costs
  • Other costs based on % of build — scales with construction complexity
  • Other costs based on % of GDV — scales with project value (e.g., marketing)
  • Other costs as fixed amounts — known quantities like planning fees

In practice: Build costs are typically the largest single expense in a development, often 40-60% of total project costs. Getting this right is critical to an accurate appraisal.

Finance Logic

Development finance typically involves two layers. Senior debt is the primary facility — defined by facility amount (or as a % of cost/value), annual interest rate, arrangement fee (charged upfront as a % of facility), and optional exit fee. Mezzanine debt is a secondary, higher-cost layer that fills the gap between senior debt and equity.

Three calculation modes are available per lender. The default for new projects is Cashflow (S-curve drawdown), which matches how banks (Swedbank, SEB, Luminor) model real construction loans:

  • Cashflow (S-curve, recommended) — walks the monthly cashflow and computes outstanding balance as max(0, cumulative costs − cumulative revenue) at each month. Interest accrues on this real-life balance. Reflects actual drawdown timing — front-loaded site purchase, S-curve build draws peaking mid-construction, then revenue from sales paying balance down in the final months.
  • Auto — simplified linear approximation: equal monthly draws over the term. Faster but overstates interest by ~10−15% vs. real drawdown because revenue paying down balance is ignored. Provided for backward compatibility with older projects.
  • Override — the user enters a fixed interest amount directly. Useful for matching a specific lender quote.

Payout type controls how interest is paid: Retained (interest reserved from facility, default), Rolled-up (interest added to outstanding balance and capitalised), or Serviced (paid monthly from external cash).

Equity is the residual — whatever total project costs (excluding finance charges) are not covered by debt. Loan-to-Value (LTV) measures debt against GDV; Loan-to-Cost (LTC) measures debt against total costs.

// Cashflow mode (default) — walks monthly cashflow
Outstanding[m] = min(facility, max(0, cum_costs[m] − cum_revenue[m]))
Monthly Interest[m] = Outstanding[m] × monthly_rate
// If payout = retained/rolled, accrued interest adds to Outstanding

// Auto mode (legacy linear) — equal monthly draws
draw = facility / term_months
balance[m] = m × draw
Interest_auto = facility × monthly_rate × (months + 1) / 2

// Total Finance Costs (any mode)
Total Finance = Sum(monthly_interest) + arrangement_fee + exit_fee

// Equity Requirement & Key Ratios
Equity = Total Costs (excl. finance) − Total Debt Facilities
LTV = Total Debt / GDV   |   LTC = Total Debt / Total Costs

// Monthly rate from annual
monthly_rate = annual_rate / 12 // when interest period = "annual"
monthly_rate = entered_rate // when interest period = "monthly"

Validated against UK industry standard. In our parity test against Aprao (the UK's leading appraisal tool) on a 12-unit Vilnius residential development, Profivo's S-curve cashflow mode produces interest within <1% of Aprao's industry-grade S-curve drawdown algorithm. Existing projects without an explicit calculation mode fall back to Auto (legacy linear) to preserve their numbers.

Cash Flow Logic

A development appraisal is fundamentally a cash flow model. Profivo spreads all costs and revenues across a monthly timeline using S-curve distribution — a realistic pattern where spending starts slowly, peaks in the middle of a period, and tapers off toward the end.

Land acquisition cost is typically placed in month 1 as a lump sum. Build costs are spread across the defined construction period using the S-curve. Revenue from sales is spread across the sales period, usually starting after construction begins or completes, depending on the market.

Escalation can be applied to both costs and revenues — an annual percentage increase that is compounded monthly. This models inflation or expected market movement over the project timeline.

// S-Curve Distribution (ease-in-out quadratic)
s_curve_weight[m] = normalised so Sum across all months = 1
Monthly Allocation = total_amount × s_curve_weight[month]

// Escalation (annual rate, compounded monthly geometrically)
monthly_factor = (1 + annual_rate / 100)^(1 / 12)
Escalated Value[m] = base_value × monthly_factor^(m − 1)

// Cumulative Cash Flow
Net Position[m] = Sum(revenue[1..m]) − Sum(costs[1..m])

In practice: Same profit, different timing = different IRR. A project that generates all revenue in month 24 will have a lower IRR than one with phased sales starting in month 12, even if total profit is identical.

Profitability Logic

Profivo calculates a full suite of profitability metrics. Each one tells a different part of the story — absolute return, efficiency, time-adjusted performance, and investor returns.

Profit is the straightforward difference between NDV and total costs. Margin expresses this as a percentage of revenue. Return on Cost (RoC) expresses profit relative to total expenditure — this is the developer's primary metric because it measures how efficiently capital is deployed.

IRR (Internal Rate of Return) is the annualized return derived from the monthly cash flow profile, solved iteratively using the Newton-Raphson method. NPV discounts all future cash flows to present value at a chosen rate. MOIC (Multiple on Invested Capital) shows total equity returned divided by equity invested — a simple but powerful measure for equity investors.

// Core Profitability
Profit = NDV − (Site + Total Build + Other Costs + Finance)
Margin = Profit / NDV
RoC = Profit / Total Costs // Total Costs includes finance

// Time-Adjusted Returns
IRR = monthly rate where NPV(cash_flows) = 0 // Newton-Raphson, annualised
monthly_discount = (1 + annual_discount_rate / 100)^(1 / 12) − 1
NPV = Sum( cash_flow[m] / (1 + monthly_discount)^m )

// Two IRR variants — Project (unlevered) and Equity (levered)
Project IRR = IRR on (costs − revenue) cashflow ignoring debt
Equity IRR = IRR on equity-only cashflow (debt funds proportional costs, revenue first repays debt + finance, residual flows to equity)

// Investor Metric
MOIC = (Equity Invested + Profit attributable to equity) / Equity Invested

// Funding requirement
Peak Equity = max(|cumulative cashflow when negative|) // largest funding gap
Break-even = first month where cumulative cashflow ≥ 0

In practice: A project with 20% RoC but negative IRR has a timing problem — the profit is there, but it takes too long to realize. Always examine RoC and IRR together to get the full picture.

Scenario Logic

Every project faces uncertainty. Profivo models three scenarios — Base, Upside (optimistic), and Downside (pessimistic) — to bracket the range of possible outcomes.

Each scenario applies percentage deltas to five key variables: GDV (revenue), build costs, land costs, other costs, and interest rates. The engine then recalculates all metrics for each scenario independently, giving you a complete appraisal under each set of assumptions.

For example, the downside scenario might model GDV falling 10% while build costs rise 5%. The upside might model GDV rising 5% with costs unchanged. The base case uses your inputs as entered.

// Scenario Adjustments (all multiplicative on base values)
Scenario GDV = Base GDV × (1 + gdv_delta%)
Scenario Build = Base Build × (1 + build_delta%)
Scenario Land = Base Land × (1 + land_delta%)
Scenario Other = Base Other × (1 + other_delta%)
Scenario Finance = Base Finance × (1 + rate_delta%) // scales total finance cost

// All metrics recalculated per scenario
Scenario Profit, RoC, IRR, MOIC ... independently derived

In practice: If the downside scenario still shows 10%+ Return on Cost, the project is resilient. If it turns negative, you need to understand exactly which variable drives the loss before proceeding.

Sensitivity Logic

Sensitivity analysis goes beyond scenarios by testing every combination of two variables simultaneously. You choose any two of five input variables, and Profivo generates a matrix showing how RoC and Profit change across the full range.

Each axis steps from -20% to +20% in 5% increments, creating a 9x9 heatmap of 81 possible outcomes. The center cell represents your base case. Cells are color-coded: green indicates profitable outcomes, transitioning through yellow to red for loss-making combinations.

This reveals which variables have the most impact. If the entire column changes color when you adjust GDV, but rows barely shift when build cost moves, you know that revenue risk dominates your project.

// Sensitivity Matrix (9 × 9 = 81 cells)
Axis Steps = [−20%, −15%, −10%, −5%, 0%, +5%, +10%, +15%, +20%]

// Each cell recalculates with two variables perturbed
Cell[i,j] = recalculate( base × (1 + delta_A[i]), base × (1 + delta_B[j]) )

// Dependent costs scale with their driver:
// — VAT scales proportionally to GDV
// — Sales costs scale proportionally to GDV
// — Finance cost scales proportionally to (total costs excl. finance) and rate multiplier

// Output: RoC and Profit for each cell
// Color: green (profitable) → yellow (marginal) → red (loss)

In practice: Sensitivity analysis shows which variable has the most impact on your returns. If most of the heatmap stays green even at -15% on both axes, you have a robust project with significant headroom.

Default Values

When you create a new project, Profivo pre-populates conservative starting values calibrated for the Lithuanian residential market. These are easily changeable — they exist so a new user can see a working model immediately, not to bias your appraisal.

// Revenue defaults
Agent commission: 0%  |  Legal fees: 0.5% of GDV  |  Deposit: 10% per unit
VAT rate: 21%  |  VAT regime: included in price (LT convention)
GIA / NIA ratio: 100% (no overhead — user adjusts per project)

// Cost defaults
Build contingency: 10% of (Preliminaries + Direct Build)
Stamp duty: 0% (LT-specific — user enters per transaction)
Other purchase costs: 0% (legal, due diligence, etc. — user adds if needed)

// Finance defaults (senior loan)
Facility: 30% LTC  |  Interest rate: 7.5% annual  |  Term: 18 months
Payout: Retained  |  Interest basis: Drawn balance
Calculation mode: Cashflow (S-curve drawdown) — recommended, matches industry standard
Commitment fee: 3% of facility

// Mezzanine defaults (disabled by default)
Rate: 10% annual  |  Term: 24 months  |  Payout: Rolled-up

// Timing & analysis
Project duration: 24 months  |  Construction: 14 months  |  Sales: 4 months
NPV discount rate: 10% annual (compounded monthly geometrically)
Cost / sales price escalation: 0% (user adds if modelling inflation)
Sensitivity range: −20% to +20% in 5% steps (9 × 9 = 81 cells)
Target profit: 20% of total costs (used in Residual Site Value calculation)

Industry-standard validation. Profivo's calculation engine was benchmarked on 2026-05-24 against Aprao (the UK's leading appraisal SaaS) on a 12-unit Vilnius residential project. Result: profit and RoC within <1% of Aprao after one S-curve drawdown improvement (now default). All metric formulas have been re-verified against the deployed code on the same date.

See these calculations in action.

Build a full appraisal in 15 minutes and watch every metric recalculate in real time.