How Brixfox Computes Its Numbers
Every figure on a Brixfox property page has a stored, auditable basis. This page explains that basis once, in full — what feeds each number, which corrections we apply, and the cases where we deliberately show no number at all.
Expected ADR: booked rate, not asking rate
The nightly rate we project is the rate a villa is expected to actually book at — not the rate nearby hosts ask for. Airbnb asking prices in Bali run well above what calendars close at, so we correct comparable listings' asking prices by a measured asking-to-booked factor (about −29% on Bali, measured listing by listing against AirDNA on 164 homes). The area rate a villa starts from is then calibrated per bedroom count against AirDNA's figures for comparable homes. That calibration was fitted on villas of one to four bedrooms. For five bedrooms and more it is extended rather than fitted, and there the model runs low: on 34 villas of five to seven bedrooms our revenue came out about 13% under AirDNA's, a small sample. Comp cards on property pages show raw asking prices and are labelled as such; the headline ADR is always the corrected booked basis.
Where a villa is matched to its own live Airbnb listing, its own observed rates take precedence over area comps.
Occupancy: measured over the whole year
Projected occupancy is AirDNA's measured twelve-month occupancy for comparable homes near the villa: the same bedroom count within 5 km. Where fewer than three such homes are measured there, we widen to one bedroom more or fewer within 10 km, and failing that we use the median for that size across all measured homes. It is counted over every night of the year rather than only the nights a home is open, so occupancy × 365 is the nights it books. Where a villa is matched to its own Airbnb listing with at least ten reviews and three full months on record, that listing's own months set the occupancy instead, adjusted for the season and for nights an owner blocks. Revenue built this way lands within 3% of AirDNA's for comparable homes, on the median, at every size from one to four bedrooms.
Net yield: all-in cost basis
Net yield is net operating income divided by the all-in investment — the asking price plus the acquisition and setup costs a remote buyer actually pays (legal, notary, furnishing, STR launch), never the sticker price alone. It is stated after local operating taxes and before home-country personal tax and financing costs.
For leasehold villas, the remaining lease term materially changes the calculation: cash flows past the lease end are worth nothing to the buyer, so decaying leaseholds are modelled on their remaining years, not on freehold arithmetic.
Value growth: the land rises, the building wears out
A villa's future value is modelled per part. The land, priced from nearby land listings, rises at its area's rate in rupiah less the rupiah's fall against the dollar (about 3% a year over the last ten years). The building wears out at its replacement cost spread over a 45-year life. On that basis a freehold villa in the Canggu belt roughly holds its value in dollars over five years, Seminyak gains a little more and most other areas lose a little, while a leasehold runs down to the end of its lease. The area rates are Brixfox's model assumption, not a measured price history, and value growth is never part of the headline yields.
The top grades are investment grades. A+ needs an economic return of 5% a year (the net yield, plus the land's growth in dollars, minus the building's wear and, on a leasehold, the land the lease uses up), at least 3% of it in cash, and a villa that is already built; A needs 3%. A high grade cannot rest on the land's expected rise alone.
Management basis: the Brixfox Standard
Every headline figure assumes a full-service villa manager whose commission is charged on top of the Airbnb/Booking channel fees — the platform is paid whoever manages, so that line is the same in both scenarios. Changeover cleaning is funded by guest cleaning fees, with the residual borne by the owner. A self-managed scenario is shown separately where relevant: it drops the commission, keeps the channel fees, buys back the villa staff the manager would supervise and pays a higher cleaning residual — and prices the owner's time at zero, which is why we treat it as an upper bound rather than the default.
Comparables: distance, not district names
Comps are selected by real distance from the villa's coordinates within an adaptive radius, weighted by proximity and by how much calendar data each comp actually has. Administrative area names are labels, not selection criteria — within a single area, performance can differ sharply between the coast and a few kilometres inland, and distance-based selection is what keeps that difference visible.
When we show no number
A projection with too little behind it is worse than none. When there are too few comparable listings, when the nearest comps are too far away, or when the sample is too dispersed to trust, the engines refuse rather than guess — the page shows no figure for that layer. The same floor applies to area statistics: an area earns a median only with a sufficient sample of live listings behind it.
Asking prices, honestly labelled
Indonesia has no public register of closed sales, so villa and land prices on Brixfox are asking prices, clearly labelled as such. Sellers ask more than buyers close at — treat medians as the top of the negotiating range. Delisting dates reflect when we detected a listing's removal, not the day it sold.