Skip to content
Dubai Wealth Index
Search
Search buildings, areas and projects by name.

Every field, and what its absence means

The reference for the JSON records and for every machine-readable representation of this index.

Edition DWI-DOCS-FIELDS

A null in these records is a suppressed figure, not a zero. That distinction is the one most often lost in translation, so every field below states what its absence means as well as what its presence does.

Identity and provenance

id
Stable absolute identifier for the record, of the form <canonicalUrl>#record. It does not change across data refreshes.
Grainone building recordWhen nullNever null.
canonicalUrl
The human-readable page this record mirrors. Cite this, not the JSON URL.
Grainone building recordWhen nullNever null.
dataAsOfISO date
The edition of the registered data every figure in the record was computed from. Quote it with any figure taken from here.
Grainthe whole recordWhen nullNever null on a published record.
sources
The registries the figures came from. Airbnb appears only where short-let metrics are present.
Grainthe whole recordWhen nullNever null.
bedroom
One of all, studio, 1br, 2br, 3br, 4br_plus. "all" is the building-wide median across every unit size, not a sum or an average of the rows below it.
Grainone metric rowWhen nullNever null.
purpose
Which market the row measures: sale, rent, offplan or short_let. A building has a row per bedroom type per purpose.
Grainone metric rowWhen nullNever null.

Sale prices

medianPriceAED
Median registered sale price. A median of recorded transactions — not an asking price, not a valuation, and not the price of any particular unit.
Grainbuilding × bedroom, trailing 24 monthsWhen nullToo few registered sales in the window to publish a median that would hold. It does not mean nothing sold.
medianPriceSqftAED per sqft
Median registered sale price per square foot of measured floor area.
Grainbuilding × bedroom, trailing 24 monthsWhen nullNo publishable price median, or no measured area on the records.
fairPsfAED per sqft
The recorded price: median price per square foot over the most recent window holding at least five registered sales of READY units — 3 months, else 6, else 12. Ready-only and never wider than a year, unlike medianPriceSqft (24 months, all sales) and yieldPrice (pooled with off-plan, falls back to the last five sales however old). Read it with fairWindowMonths and fairSaleCount; the figure is not publishable without them.
Grainbuilding x bedroom, freshest window clearing 5 ready salesWhen nullNo window in the last 12 months held five ready sales. Not zero and not stale — the building has not traded enough recently for a median to mean anything.
fairPriceAED
Median total price over the same window as fairPsf. A median across the units that happened to trade, never a valuation of one apartment: floor, view, condition and layout all move a real price and none is in this figure.
Grainbuilding x bedroom, same window as fairPsfWhen nullAs fairPsf.
fairWindowMonthsmonths
Which rung of the ladder fairPsf landed on: 3, 6 or 12. A price whose window is unstated is not evidence, so every surface prints this beside the figure.
Grainbuilding x bedroomWhen nullfairPsf is null.
fairSaleCountsales
Registered ready sales inside the window. Never fewer than five: a price computed from two sales moves by a third when one penthouse trades.
Grainbuilding x bedroomWhen nullfairPsf is null.
fairAsofdate
Date of the most recent sale inside the window. A 12-month window whose newest sale is eleven months old is a different claim from one closing last week, and this is what separates them.
Grainbuilding x bedroomWhen nullfairPsf is null.
growth12mPctpercent
Change in the median price per square foot, last 12 months against the 12 before. Positive is a rise.
Grainbuilding × bedroomWhen nullOne of the two windows has too few sales to compare. A flat market returns 0, not null.
yearlyAED and AED per sqft
Per-year medians and transaction counts. Rows exist per bedroom type and per purpose — filter to one of each before plotting a line, or a mix shift reads as a price move.
Grainbuilding × bedroom × purpose × yearWhen nullEmpty for a building with no history in the registry.
monthlyAED and AED per sqft
Monthly medians. Carried at bedroom 'all' only. Future-dated rent contracts exist in the registry, so clip the series at dataAsOf.
Grainbuilding × month × purposeWhen nullEmpty where the monthly series is too thin to publish.

Registered rents

medianRentAED per year
Median annual rent on new Ejari contracts. Registered contracts, not listing asks.
Grainbuilding × bedroom, trailing 24 monthsWhen nullToo few registered contracts in the window to publish a median.
medianRentSqftAED per year per sqft
Median annual rent per square foot. Annual, not monthly — the most common misreading of this field.
Grainbuilding × bedroom, trailing 24 monthsWhen nullNo publishable rent median, or no measured area.
medianRentRenewAED per year
Median annual rent on renewal contracts — what a sitting tenant pays, as against medianRent for a new one.
Grainbuilding × bedroom, trailing 24 monthsWhen nullToo few renewals registered in the window.
rentSource
The grain the rent was measured at: building, project or vicinity. A project- or vicinity-grain rent is pooled from nearby stock and is weaker evidence for this building than a building-grain one.
Grainone metric rowWhen nullNo rent figure on the row.

Returns

grossYieldPctpercent
A year of registered rent as a share of the median resale price. Gross — before service charge, agency fees, maintenance and vacant months.
Grainbuilding × bedroomWhen nullSuppressed, not zero: the price base behind the yield was too thin to publish, or the median price falls below the publication floor.
yieldBasis
How the yield's denominator was built: 'current' means the last 3 months of sales, 'last_sales' means the last 5 sales however old they are.
Grainone metric rowWhen nullNo published yield on the row.
yieldPriceNcount
How many sales the yield's denominator rests on.
Grainone metric rowWhen nullNo published yield on the row.
yieldPriceAsofISO date
Date of the most recent sale in the yield's denominator. The 'last_sales' fallback is uncapped, so this can be years old — check it before treating a yield as current.
Grainone metric rowWhen nullNo published yield on the row.
turnoverUpsidePctpercent
The gap between what a new tenant pays and what a sitting tenant renews at, in the same building and bedroom type.
Grainbuilding × bedroomWhen nullBelow the materiality floor, or too few renewals. Dubai rents cluster on round numbers, so small gaps are noise and are not published.
offplanUpliftPctpercent
What off-plan buyers made when their units later resold: resale price against off-plan purchase price. Longitudinal, not a windowed median.
Grainbuilding × bedroomWhen nullNo off-plan units in this building have resold. Units that never resold cannot appear, so the published set skews toward the ones that performed.

Short-let

medianAdrAED per night
Median nightly asking rate from public Airbnb search results, sampled for every month of the next twelve. An asking rate, not a transaction.
Grainbuilding × bedroomWhen nullNo short-let listings seen for this building and bedroom type.
distinctListingscount
How many distinct public listings the nightly rate was taken from. A floor, not a census of the building's short-let stock.
Grainbuilding × bedroomWhen nullNo short-let listings seen.
shortLetMonthlyAED per night
The forward nightly-rate curve: one row per month of the next twelve, with the listing count behind each. strSource says whether the rate is the building's own or pooled from within 500m.
Grainbuilding × bedroom × stay monthWhen nullEmpty where no short-let pricing was collected.

Evidence

txnCount24mcount
Registered sales in the trailing 24 months. This is the sample size behind the price figures — quote it with them.
Grainbuilding × bedroomWhen nullNever null; zero means no registered sales in the window.
rentCount24mcount
Registered new rental contracts in the trailing 24 months. The sample size behind the rent figures.
Grainbuilding × bedroomWhen nullNever null; zero means no new contracts registered in the window.
isPageEligible
Whether this row cleared the publication gate. False rows exist in the data and are not published as pages.
Grainone metric rowWhen nullNever null.