# Data status and the empty-list rule

Every profile carries `veri_durumu`: for each section, how complete it is, how it was obtained, its limits and how many notices it rests on — so "empty" never gets confused with "unknown".

## The empty-list rule

| Value | Meaning |
|---|---|
| `[]` | **We looked; there is none** (e.g. no capital notice was ever published). |
| `null` or missing key | **Not available:** not requested, not offered or still being prepared. While `profil_hazir: false`, profile sections are `null`. |
| `"yayimlanmiyor"` | The source does not publish it (e.g. `gercek_faydalanicilar`). |

## Fields

:::sema VeriDurumuBolum

| `durum` | Meaning |
|---|---|
| `tam` | Complete. |
| `kismi` | Partial; the reason is in `sinirlar`. |
| `yok` | Looked, nothing found. |
| `hazirlaniyor` | The profile or this section is still being prepared. |
| `yayimlanmiyor` | The source does not publish this. |

| `yontem` | Meaning |
|---|---|
| `ilandan` | From a single notice, with a verbatim quote. |
| `ilandan_kuruldu` | Rebuilt from several notices. |
| `turetilmis` | Derived by fixed rules (e.g. legal form). |
| `yapay_zeka` | AI summary of the notice text (e.g. articles wording, summary). |

## Example

```json
"veri_durumu": {
  "yetkililer": {"durum": "tam", "yontem": "ilandan_kuruldu", "dayanak_ilan_sayisi": 7,
                 "sinirlar": ["Yalnız Ticaret Sicili Gazetesi'nde ilan edilen atama ve ayrılmalar yansır."]},
  "ortaklik":   {"durum": "kismi", "yontem": "ilandan_kuruldu", "dayanak_ilan_sayisi": 2,
                 "sinirlar": ["Anonim şirketlerde pay devirleri ilan edilmez (pay defteri şirkette tutulur); …"]},
  "gercek_faydalanicilar": {"durum": "yayimlanmiyor", "yontem": null, "dayanak_ilan_sayisi": null, "sinirlar": ["…"]}
}
```

> Share transfers of joint-stock companies are not published, so `ortaklik` may be `kismi` and may not show today's shareholding.
