Developer Market Package
Where to build, what to build, and how fast it clears
Latest release and free sample
What is in the workbook
8 sheets, in tab order.
- Overview
- The release on one page: the headline figures, how much to trust them, the main findings and coverage by state.
- Market
- Every segment: price band, supply flow, how fast it clears, and its price and speed position.
- Insights
- Where to build (price against speed) and what the marginal bedroom earns.
- Demand
- What people ask to rent and to buy, at what budget, against what is advertised.
- Land
- Asking land rates per sqm and per plot, published rows only.
- Lookup
- One segment's full record, with a scheme price test, holding cost and site cost.
- Changes
- What moved since 2026-Q1: published segments, listings, segments in and out.
- Guide
- Appraisal steps, column meanings, method, limits and checks.
How to use it
The appraisal, in five steps
- Find what you could build. Filter Market to your state and area, then to the types and bedroom counts your site can take. Prefer neighbourhood rows; LGA rows are a separate, wider population.
- Read the median, then the band. P25 to P75 is the middle half of the market. A scheme that only works above P75 relies on being the most expensive stock in the segment.
- Read the speed before you commit. Days to clear sets your holding cost. Use Lookup to price the carry at your own finance rate.
- Size units off the bedroom step. Insights shows what each extra bedroom earns and costs in days. Check the comparison count.
- Check what is missing. A segment absent from Market did not clear the evidence floor. Building against it means building without price evidence.
Columns and what they mean
Headers are exactly as printed in the workbook. 45 columns across 3 grids, and 13 hidden helper columns (the Lookup reads them, the companion CSV carries them; unhide them in Excel to see them).
Market: price band, supply flow and clearance speed per segment
Segment
- Grain
- Neighbourhood = that neighbourhood's own listings. LGA = the whole LGA's listings. Separate populations, not a roll-up: nothing has been substituted for anything.
- State
- Where the segment is, from broad to narrow. Area is the local district people use; (whole area) means the row pools every neighbourhood of the area.
- Area
- Where the segment is, from broad to narrow. Area is the local district people use; (whole area) means the row pools every neighbourhood of the area.
- Neighbourhood
- Where the segment is, from broad to narrow. Area is the local district people use; (whole area) means the row pools every neighbourhood of the area.
- Property type
- The kind of building, its bedroom count, and new-build or existing stock. Blocks of flats and self-contained rooms are not compiled on Market.
- Beds (bedrooms)
- The kind of building, its bedroom count, and new-build or existing stock. Blocks of flats and self-contained rooms are not compiled on Market.
- Vintage
- The kind of building, its bedroom count, and new-build or existing stock. Blocks of flats and self-contained rooms are not compiled on Market.
What it fetches
- Band P25 (naira)
- The middle asking price for similar properties here and the middle half of asking prices, after outliers are removed. Measured over the price quarter.
- Median value (naira)
- The middle asking price for similar properties here and the middle half of asking prices, after outliers are removed. Measured over the price quarter.
- Band P75 (naira)
- The middle asking price for similar properties here and the middle half of asking prices, after outliers are removed. Measured over the price quarter.
- Band width (percent)
- (P75 minus P25) divided by the median. Low means the market broadly agrees on price; high means it does not.
Supply and speed
- Entrants (qtr) (listings)
- New competing listings that arrived in the segment during the quarter: supply flow, not stock standing.
- Days to clear (median) (days)
- Typical days from a listing appearing to it leaving the portals; listings still up are counted properly (Kaplan-Meier), not dropped. Leaving the portals is not proof of a sale. Reads under 8 days or 180+ at the limits of what is measurable.
- Cleared by 180 days (percent)
- The share of the stock that had gone within the watch window: the fairest like-for-like speed comparison, because the population and the window are both fixed.
- Speed grade (grade letter)
- How much to trust the speed figures, A to D, by the listings behind them (A is 100 or more).
Where to build
- Position
- High or lower price, fast or slow, split at the state's own medians over the full release. Blank where no speed is measured, the type is vague, or the state has too few segments to split.
- Notes
- Vague listing type: the listing did not say what kind of building it is, so its slowness reflects listing quality, not liquidity. Speed not measured: too few entrants, or the curve never reached halfway.
Lookup helpers (hidden)
- Segment key
- The segment's combined label (State, Area, Neighbourhood, Property type, Beds, Vintage) that the Lookup picks by. One per row, and the key the Lookup reads the grid with.
- LGA
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
- Fast quarter (days)
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
- Slow quarter (days)
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
- Speed evidence (listings)
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
- Vague listing type (yes or no)
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
Demand: what people ask for to rent and to buy, against what is advertised
Where and what
- Grain
- How wide a net the row casts. Area + bedrooms: one property type at one bedroom count in one area, the strongest form. Area, all sizes and State, all areas: pooled rows, shown only where the finer split had too few requests to publish.
- State
- What is asked for and where. Market is Rent or Sale and sets the unit of every money figure. All sizes and All areas mark a pooled row. Self-contained rooms appear at 0 beds.
- Area
- What is asked for and where. Market is Rent or Sale and sets the unit of every money figure. All sizes and All areas mark a pooled row. Self-contained rooms appear at 0 beds.
- Market
- What is asked for and where. Market is Rent or Sale and sets the unit of every money figure. All sizes and All areas mark a pooled row. Self-contained rooms appear at 0 beds.
- Property type
- What is asked for and where. Market is Rent or Sale and sets the unit of every money figure. All sizes and All areas mark a pooled row. Self-contained rooms appear at 0 beds.
- Beds (bedrooms)
- What is asked for and where. Market is Rent or Sale and sets the unit of every money figure. All sizes and All areas mark a pooled row. Self-contained rooms appear at 0 beds.
What is wanted
- Requests (requests)
- How many people asked, and how many named a budget this pack can use (inside the market's own price band). A request is a stated intention posted on a portal, not a transaction.
- With a budget (requests)
- How many people asked, and how many named a budget this pack can use (inside the market's own price band). A request is a stated intention posted on a portal, not a transaction.
- Money basis
- The unit of the money columns on the row, in words: Annual rent on a Rent row, Purchase price on a Sale row.
- Budget P25 (naira)
- The stated budgets behind the median. The median needs 5 usable budgets and the quartiles 8; blank below that.
- Median budget (naira)
- The stated budgets behind the median. The median needs 5 usable budgets and the quartiles 8; blank below that.
- Budget P75 (naira)
- The stated budgets behind the median. The median needs 5 usable budgets and the quartiles 8; blank below that.
What is advertised
- Median asking (naira)
- The middle advertised figure for the same area, type and size, and the listings behind it. Blank means no advertised segment cleared the evidence floor, not that nothing is available.
- Listings (listings)
- The middle advertised figure for the same area, type and size, and the listings behind it. Blank means no advertised segment cleared the evidence floor, not that nothing is available.
The gap
- Budget vs asking (percent)
- Median budget against median asking, within one market. A gap between two medians over two different populations, not a discount anyone was offered. Marked at -25% or worse.
Lookup helpers (hidden)
- Segment key
- The segment's combined label (State, Area, Neighbourhood, Property type, Beds, Vintage) that the Lookup picks by. One per row, and the key the Lookup reads the grid with.
Land: asking rate per square metre by area, use class and plot size
Where and what
- Grain
- Where the rate applies. Area and Neighbourhood are separate populations, not a hierarchy; commercial and mixed-use land appear at area level only.
- State
- Where the rate applies. Area and Neighbourhood are separate populations, not a hierarchy; commercial and mixed-use land appear at area level only.
- Area
- Where the rate applies. Area and Neighbourhood are separate populations, not a hierarchy; commercial and mixed-use land appear at area level only.
- Neighbourhood
- Where the rate applies. Area and Neighbourhood are separate populations, not a hierarchy; commercial and mixed-use land appear at area level only.
- Use class
- Residential, mixed use or commercial land as the source classified it. Never pooled.
- Plot size
- Standard is under 2,000 square metres; Large is 2,000 and above. Larger plots trade at a lower rate per square metre, so the two are kept apart.
Rate
- Band P25 / sqm (naira per square metre)
- The middle asking rate for land in the segment and the middle half of rates. Computed per listing and then taken as a median, so it does not move with the mix of plot sizes advertised.
- Rate per sqm (naira per square metre)
- The middle asking rate for land in the segment and the middle half of rates. Computed per listing and then taken as a median, so it does not move with the mix of plot sizes advertised.
- Band P75 / sqm (naira per square metre)
- The middle asking rate for land in the segment and the middle half of rates. Computed per listing and then taken as a median, so it does not move with the mix of plot sizes advertised.
Per plot
- Plot standard (sqm) (square metres)
- The plot size this state actually trades in, measured from listings describing themselves as one plot. There is no national plot size.
- Value per plot (naira)
- The rate per square metre multiplied by that state's plot standard, because that is how the market quotes land. It carries no evidence of its own beyond the rate. Blank where the state has no measured standard — deliberately, rather than assuming a national figure.
Trust
- Grade (grade letter)
- Graded on listing count and band width, then capped at B because title is unobserved. Listings is how many land listings the rate rests on.
- Listings (listings)
- Graded on listing count and band width, then capped at B because title is unobserved. Listings is how many land listings the rate rests on.
Lookup helpers (hidden)
- Segment key
- The segment's combined label (State, Area, Neighbourhood, Property type, Beds, Vintage) that the Lookup picks by. One per row, and the key the Lookup reads the grid with.
- Band P10 / sqm (naira per square metre)
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
- Band P90 / sqm (naira per square metre)
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
- Band width (percent)
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
- Automated check (yes or no)
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
- Withheld because (Land)
- A helper kept out of the grid to keep it readable. The Lookup reads it, and the companion CSV carries it.
Frequently asked questions
The questions asked most
How do I use this for a residual land valuation?
The product supplies the revenue side: what similar stock is asking, how tightly priced the segment is and how long it takes to clear, plus what a site costs on Land. Build cost, finance, professional fees and your required profit are yours; the residual falls out of the combination. We do not compile construction costs.
Does "Days to clear" mean the property sold?
No. It measures how long the listing was visible, from the first time we saw it on a portal to the point it was no longer there. A listing leaving the portals is not a sale. The source records no sold status, so a departure is indistinguishable from a sale, a withdrawal, an expiry or a re-post, and every figure here is an UPPER BOUND on how fast stock actually sells.
What does the bedroom step tell me?
What one extra bedroom earns, and what it costs you in extra days to sell, measured like for like: same neighbourhood, same property type, same vintage.
What does Position mean, and why is price not enough?
Position places a segment as high or lower priced and fast or slow clearing against its own state's medians. Price and speed are close to independent, so a price-only view cannot see the high-price, slow-clearing segments, which carry the largest values and the longest holding periods.
Is "Budget vs asking" a discount I can negotiate?
No. It compares two medians over two different populations: the people asking and the properties advertised are not the same set, and nobody was ever offered the gap. It is read within one market, a rent budget against an advertised rent and a purchase budget against an advertised price.
Why does Land list so few rows?
Because a rate needs 20 listings and a normal band, and title is unobserved, which caps every grade.
What we do not answer
Certain questions are outside what a data supplier should answer. The consistent response is: here is what the data shows and why — what you do with it is your policy decision. This applies to:
- Which valuation to accept
- What LTV or tolerance to set
- Whether to lend, build, or buy
- Whether a specific scheme is viable
- Which segment to invest in
- Whether a particular valuer is right
Declining these is not unhelpfulness. It is the correct scope for a data provider, it avoids straying into advice we are not licensed to give, and it protects the client's own accountability for their decision.
Methodology
- Source
Residential sale listings from Nigerian property portals, de-duplicated across platforms. Asking prices: Nigeria has no transaction register, so achieved prices are not observable. The Demand sheet adds a second feed, requirements posted by people looking to rent or buy, set against the rent or sale index.
- Price
Tukey fence at 1.5 x IQR within each segment and period, bands computed after fencing. Price floor: 20 listings in the quarter. The index itself publishes a stratum from 5 listings; this product lists a segment from 20.
- Speed
Kaplan-Meier survival over listings entering in the 12 months to 2026-04-01, each watched 180 days; at least 20 entrants and a curve that reached halfway are needed.
- Land
A rate needs 20 listings; grades are capped at B because title is unobserved. Only published rows are listed; withheld rows are in the CSV.
Limitations
- A listing leaving the portals is not a sale. The source records no sold status, so a departure is indistinguishable from a sale, a withdrawal, an expiry or a re-post, and every speed figure is an UPPER BOUND on how fast stock actually sells.
- Price is 2026-Q2; speed uses listings entering up to 2026-04-01. The two periods on a row are not the same, and speed necessarily lags price.
- Position and the bedroom step are presentation aggregations over the published rows of the full release, reproducible from Market. Position splits each state at its own medians over segments with a measured speed and a specific property type; a state with fewer than 4 such segments is not split.
- Not here: build cost, absorption or months of supply (no sold status exists), planning or title risk. Not a valuation.
- Every field, including the ones kept out of the grids, the segments below the price floor and the withheld land rows, is in the companion CSVs that ship with the licensed release (full precision, raw identity columns).
Glossary
- Band P25 / Median value / Band P75
- The middle asking price for similar properties here and the middle half of asking prices, after outliers are removed. Measured over the price quarter.
- Band P25 / Rate per sqm / Band P75 (per sqm)
- The middle asking rate for land in the segment and the middle half of rates. Computed per listing and then taken as a median, so it does not move with the mix of plot sizes advertised.
- Band width
- (P75 minus P25) divided by the median. Low means the market broadly agrees on price; high means it does not.
- Budget P25 / Median budget / Budget P75
- The stated budgets behind the median. The median needs 5 usable budgets and the quartiles 8; blank below that.
- Budget vs asking
- Median budget against median asking, within one market. A gap between two medians over two different populations, not a discount anyone was offered. Marked at -25% or worse.
- Cleared by 180 days
- The share of the stock that had gone within the watch window: the fairest like-for-like speed comparison, because the population and the window are both fixed.
- Days to clear (median)
- Typical days from a listing appearing to it leaving the portals; listings still up are counted properly (Kaplan-Meier), not dropped. Leaving the portals is not proof of a sale. Reads under 8 days or 180+ at the limits of what is measurable.
- Entrants (qtr)
- New competing listings that arrived in the segment during the quarter: supply flow, not stock standing.
- Grade / Listings
- Graded on listing count and band width, then capped at B because title is unobserved. Listings is how many land listings the rate rests on.
- Grain
- Neighbourhood = that neighbourhood's own listings. LGA = the whole LGA's listings. Separate populations, not a roll-up: nothing has been substituted for anything.
- Grain
- How wide a net the row casts. Area + bedrooms: one property type at one bedroom count in one area, the strongest form. Area, all sizes and State, all areas: pooled rows, shown only where the finer split had too few requests to publish.
- Grain / State / Area / Neighbourhood
- Where the rate applies. Area and Neighbourhood are separate populations, not a hierarchy; commercial and mixed-use land appear at area level only.
- Median asking / Listings
- The middle advertised figure for the same area, type and size, and the listings behind it. Blank means no advertised segment cleared the evidence floor, not that nothing is available.
- Money basis
- The unit of the money columns on the row, in words: Annual rent on a Rent row, Purchase price on a Sale row.
- Notes
- Vague listing type: the listing did not say what kind of building it is, so its slowness reflects listing quality, not liquidity. Speed not measured: too few entrants, or the curve never reached halfway.
- Plot size
- Standard is under 2,000 square metres; Large is 2,000 and above. Larger plots trade at a lower rate per square metre, so the two are kept apart.
- Plot standard (sqm)
- The plot size this state actually trades in, measured from listings describing themselves as one plot. There is no national plot size.
- Position
- High or lower price, fast or slow, split at the state's own medians over the full release. Blank where no speed is measured, the type is vague, or the state has too few segments to split.
- Property type / Beds / Vintage
- The kind of building, its bedroom count, and new-build or existing stock. Blocks of flats and self-contained rooms are not compiled on Market.
- Requests / With a budget
- How many people asked, and how many named a budget this pack can use (inside the market's own price band). A request is a stated intention posted on a portal, not a transaction.
- Speed grade
- How much to trust the speed figures, A to D, by the listings behind them (A is 100 or more).
- State / Area / Market / Property type / Beds
- What is asked for and where. Market is Rent or Sale and sets the unit of every money figure. All sizes and All areas mark a pooled row. Self-contained rooms appear at 0 beds.
- State / Area / Neighbourhood
- Where the segment is, from broad to narrow. Area is the local district people use; (whole area) means the row pools every neighbourhood of the area.
- Use class
- Residential, mixed use or commercial land as the source classified it. Never pooled.
- Value per plot
- The rate per square metre multiplied by that state's plot standard, because that is how the market quotes land. It carries no evidence of its own beyond the rate. Blank where the state has no measured standard — deliberately, rather than assuming a national figure.