# Prompt 02 — Tbilisi Residential Real-Estate Monitor

Report type 2 in `../reports.md`. Modelled on the *structure* of TBC
Capital's "Tbilisi Residential Market: Monthly Watch" (July 2026 issue read
in full — sources NAPR, NBG, TAS, myhome.ge, no proprietary survey) and
Galt & Taggart's residential report (same public data plus a proprietary
developer survey that this prompt does not attempt to replace).

Worked example: `examples/2026-09-21-real-estate-monitor.md`, built from
`examples/2026-09-21-real-estate-monitor-inputs.md`.

## Honest scope: what is and is not publicly reproducible

| Block in the bank reports | Public source found | Granularity | Verdict |
|---|---|---|---|
| Transactions (count, market size) | NAPR statistics API — purchase registrations by municipality | **annual** (current year to date) | reproducible annually; the banks' *monthly* counts come from NAPR data not on the public page |
| Price dynamics | Geostat Residential Property Price Index (flats / houses) | quarterly | reproducible |
| Asking sale and rent prices, by district | ss.ge listings (server-rendered JSON) | any day, sample | reproducible as a *sample statistic* (myhome.ge, the banks' source, blocks automation) |
| Rental yield | derived: asking rent ÷ asking price | any day | reproducible from the two above, with the same caveats |
| Construction permits (potential supply) | Geostat "Permissions granted for construction" | annual/quarterly by region, Tbilisi share | reproducible; the banks' by-district sqm figures come from Tbilisi City Hall (TAS), no public page found |
| New vs old apartments | NAPR "first registration of flat/unit" by municipality | annual | reproducible as a proxy |
| Mortgage conditions | NBG loans statistics (interactive) | monthly | manual fetch |

So the public version is a **quarterly monitor with a same-day asking-price
snapshot**, not a monthly transaction watch. Say so in the title.

## How to run it

**Option A — model with code execution.** Run `scripts/ssge_prices.py sale`
and `scripts/ssge_prices.py rent`, pull the three official sources below,
then write.

**Option B — model without tools.** Read the Geostat RPPI table and permits
workbook in a browser, read the NAPR statistics page (real-estate registry
tab, "purchase" rows for Tbilisi), take asking prices from any listing
site's search page for the districts you need (record the date and sample
size), paste as an input pack, run Part 2.

---

## Part 1 — Gather inputs

1. **Price index** — Geostat PX-Web,
   `Price Statistics/Residential Property Price Index/`: tables
   `RPPI_2020_average=100.px`, `RPPI_previous_quarter=100.px`,
   `RPPI_same_quarter_of_previous_year_=_100.px`; Groups 0 Total, 1
   Flats, 2 Detached houses; Year codes start at 2020 (2021 for the YoY
   table); Quarter 0–3. Record Flats and Total for the latest quarter,
   previous quarter, same quarter a year earlier: level (2020=100), QoQ,
   YoY.
2. **Transactions** — `GET https://napr.gov.ge/api/statistic/landreg`
   (JSON, ~3.5 MB, no parameters accepted). Key `chartSatisfyRegistration`:
   rows with `LABEL` = "ნასყიდობა" (purchase) give registered purchase
   decisions by `YEARS` and `REG_ZONE_ID` (0 = Georgia, 1 = Tbilisi; other
   ids follow the municipality order on the page). `LABEL` = "პირველადი
   რეგისტრაცია ბინა/ერთეულზე" gives first registrations of flats/units
   (new-supply proxy). The current year is year-to-date as of
   `PROCCED_DATE`. Record Tbilisi and Georgia purchases for the last three
   full years and YTD, and flat first-registrations likewise.
3. **Asking prices** — `python3 scripts/ssge_prices.py sale 40` and
   `... rent 40` (Tbilisi flats, ~640 newest-activity listings each; the
   script prints median and mean USD/m² overall and by district and the
   share of promoted listings). Record the date, sample sizes, medians by
   district, and compute gross rental yield = 12 × median rent USD/m² ÷
   median sale USD/m² (state it is asking-on-asking).
4. **Construction permits** — Geostat category "Information about
   permissions granted for construction and completed objects"
   (https://www.geostat.ge/en/modules/categories/621/…): workbook
   `0503EN020101_Permissions.xls` (permits by type of facility, 2006–
   latest year) and the quarterly news release ("construction permits …
   January–<month>") for the Tbilisi share. Record: number of permits and
   total area for the latest period with YoY, and Tbilisi's share.
5. **Comparator** (optional, for the "how this compares" note only): the
   latest TBC Capital Monthly Watch teaser at
   tbccapital.ge/en/publications (market size, sales count, asking price,
   rent, yield) — never copy its numbers into the monitor as if they were
   yours.

---

## Part 2 — Write the monitor

```
You are writing a quarterly residential real-estate monitor for Tbilisi
for professional readers (investors, developers, lenders). Use only the
INPUT PACK. Every figure must carry its period and source; asking-price
statistics must state the listing site, date and sample size. Do not
estimate transaction counts for periods the pack does not cover.

TITLE: "Tbilisi Residential Monitor — <Quarter Year>, asking prices as of
<date>"

KEY TAKEAWAYS — 4–6 bullets, each with a number.

1. PRICES — Geostat RPPI for flats: latest level (2020=100), QoQ and YoY,
   with the previous quarter and the same quarter last year for context;
   one sentence on houses vs flats if they diverge.
2. ASKING PRICES BY DISTRICT — table: District | Listings | Median sale
   USD/m² | Median rent USD/m² | Gross yield. Sorted by median sale price.
   One paragraph naming the most and least expensive districts and the
   city-wide medians. Footnote: source site, date, sample, "asking, not
   transaction".
3. TRANSACTIONS — NAPR purchase registrations, Tbilisi and Georgia: last
   three full years and year-to-date with the as-of date; YoY for the
   last full year. Flat first-registrations as the new-supply proxy. Say
   explicitly that monthly counts are not on the public page.
4. SUPPLY PIPELINE — permits: latest period count and area, YoY, Tbilisi
   share.
5. CALENDAR — next RPPI quarter, next permits release, NAPR data refresh
   (PROCCED_DATE cadence).
6. SOURCES — Institution — dataset — period — URL/endpoint — date
   accessed; scripts named where used.

Register: dense, institutional; no forecasts, no adjectives without a
number. Define QoQ/YoY once. Re-check every number against the input pack,
then output the monitor only.
```

---

## Known limits
- Asking prices from listings are a biased sample (promoted listings,
  duplicates, agency re-posts); the script reports the promoted share and
  filters absurd areas, nothing more. Medians, not means, in the text.
- ss.ge's `unitPriceUsd` is the site's own price ÷ area; check a few rows.
- NAPR's API is annual; the current-year figure is YTD and moves with each
  refresh — always print `PROCCED_DATE`.
- The developer-survey content of Galt & Taggart's report (primary-market
  sales by developer, absorption) is not reproducible from public data
  and is not attempted.
