Files
kolaytercih/docs/gece-vardiyasi/2026-09-22/18-yazar-kac-net.md
bilalgursen 2b350d0c5d content(rehber): gece vardiyasının 14 yeni yazısı + 2 düzeltme, ekip raporları ve kurallar
14 yeni rehber yazısı (hepsi editör denetiminden geçti, 46 yazıda 829 iç link
tarandı, 0 kırık hedef; 180+ DB rakamı yazıların kendi filtreleriyle yeniden
koşuldu):

  taban-siralamalari-alti-yilda-nasil-degisti · kac-net-ile-hangi-bolum ·
  siralama-bandlari-hangi-kapilar-acilir · ayni-bolum-farkli-universite-siralama-farki ·
  hangi-bolumlerin-kontenjani-azaldi · yeni-acilan-bolumler-nasil-degerlendirilir ·
  bilgisayar-mi-yazilim-muhendisligi-mi · kktc-universiteleri-okunur-mu ·
  yapay-zekaya-tercih-sordum-guvenilir-mi · ek-madde-1-puanim-yetiyor-mu ·
  universitede-ilk-hafta-ders-kaydi-muafiyet-kayit-dondurma · yks-2027-takvimi ·
  rehber-ogretmenler-icin-veri-kaynaklari · bolumumu-sevmedim-hangi-kapilar-var

İki canlı yazı düzeltildi:
- veliler-icin-tercih-rehberi: veli diliyle kapanış; altındaki "sıralamanı gir"
  kutusu artık veliye ölü uç değil
- bos-kontenjanlar-ne-anlatiyor: "birkaç yüz kişilik fark" aslında ~9 bin
  (ÖSYM 265.356 ↔ bizim 256.532); payda açıklaması tersti — ek kontenjan
  paydaya girseydi oran düşerdi. guncelleme alanı eklendi (sitemap lastmod).

Kurallar (AGENTS.md):
- Yayın sonrası arama motoru bildirimi: URL denetimi yalnız canlıda 200 dönen
  adrese; kota sayacı; mülk/hesap notu; sitemap grep kuralı
- Yıkıcı git komutları yasak: reset/checkout --/restore/clean/stash
- Tarayıcı açma: tasarımcı ve UX gerekli gördüğünde açabilir (yetenek için
  .claude/agents/tasarimci.md'ye tarayıcı araçları eklendi)

docs/gece-vardiyasi/2026-09-22/ — 34 rapor: CEO kararları ve kapanış turu,
marka/ödeme analizi, sıfır ödeme teşhisi, SEO konu planı, veri kalitesi,
editör denetimi, CTO şartnamesi, yazılımcı ve güvenlik raporları, SABAH-OZETI.

docs/ekip/YAYIN-KUYRUGU.md — Search Console bildirim kuyruğu.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 23:25:34 +03:00

19 KiB
Raw Blame History

18 — Yazar raporu: kac-net-ile-hangi-bolum

Rol: rehber-yazari · Tarih: 22 Eylül 2026 (gece vardiyası) · Şartname: 02-seo-konu-plani.md §0 + §2 Dalga A #2 Yazılan tek dosya: content/rehber/kac-net-ile-hangi-bolum.md · Commit atılmadı, git add yapılmadı, başka dosyaya dokunulmadı.


Özet (5 madde)

  1. Şartnamedeki en temel iddia yanlıştı ve düzeltildi. SEO planı (§2 #2) ve görev brief'i netler tablosunu "yerleşenlerin gerçekte yaptığı netlerin ortalaması" diye tanımlıyor. Veri bunu desteklemiyor: bu tablo YÖK Atlas'ın "son yerleşen kişinin netleri" (Net Sihirbazı) verisidir — tek bir öğrencinin, taban puanı yapan kişinin profili. Üç bağımsız kanıt aşağıda. Yazı bu doğru tanımla kuruldu; "yerleşenlerin ortalaması" cümlesi yazının içinde açıkça yanlış okuma olarak işaretlendi.
  2. Rakamlar YÖK Atlas'ın canlı servisinden 5 programda alan alan doğrulandı (Hacettepe Tıp, ODTÜ Bilgisayar Müh., Boğaziçi Bilgisayar Müh., Ankara Ü. Hukuk, İstanbul Ü. Psikoloji, Ege Ü. Hemşirelik — 6 program, 6/6 birebir tuttu). Yayımlanabilir.
  3. "2026 net verisi yok" iddiası doğrudan kaynaktan teyit edildi: canlı API yil DESC sıralandığında en yeni kayıt 2025 (22 Eyl 2026, 03:40 civarı). Yazıda her net rakamının yanında yıl etiketi var; ayrı bir H2 "Neden 2026 netleri yok?" bunu okura anlatıyor.
  4. Vaat dili yok. "Şu kadar net yaparsan girersin" cümlesi kurulmadı; tersine, üç ayrı bölüm (OBP, puan türü ağırlıkları, yılın sınav zorluğu) neden kurulamayacağını anlatıyor. /rehber/obp-nedir-nasil-hesaplanir ve /rehber/taban-puan-mi-siralama-mi bağlantıları istenen yerde.
  5. 40 iç linkin 40'ı doğrulandı (bölüm slug'ları turkishSlugify(bolumBazAdi(isim)) ile DB'deki 634 slug havuzuna karşı, rehber linkleri content/rehber/ dosya listesine karşı, #hero-form src/app/page.tsx:241'e karşı). /tercih-robotu kullanılmadı.

1. Şartname düzeltmesi: netler ne değildir

SEO planı §2 #2: "bu rakamlar hedef değil, yerleşenlerin gerçekte yaptığı netlerin ortalaması". Bu tanım yanlış. Kanıtlar:

(a) Kod zaten doğrusunu yazıyor. src/features/katalog/components/program-netleri.tsx:3-4 — "YÖK Atlas'ın 'yerleşen son kişinin netleri' verisini … gösterir". Aynı ifade scripts/detay.ts:5 başlığında: "A) Yerleşen son kişinin netleri".

(b) Değerler tek kişiye ait. Net = doğru − yanlış/4 olduğu için tek bir kişinin neti daima 0,25'in katıdır; yüzlerce kişinin ortalaması neredeyse hiç tam çeyreğe oturmaz.

SELECT COUNT(*) toplam,
 SUM(CASE WHEN ABS(tytMatNet*4 - ROUND(tytMatNet*4)) < 1e-9 THEN 1 ELSE 0 END) ceyrek_katlari
FROM netler WHERE yil=2025 AND tytMatNet IS NOT NULL;
-- çıktı: 20821 | 20820   (%99,995)

(c) Satırın taban puanı = programın taban puanı. Yani satırın sahibi, o programın taban puanını yapan kişi = en son yerleşen.

SELECT COUNT(*) FROM netler n JOIN programs p ON p.id=n.program_id
WHERE n.yil=2025 AND ABS(n.tabanPuan - p.puan2025) < 0.0001;          -- 17265
SELECT COUNT(*) FROM netler n JOIN programs p ON p.id=n.program_id
WHERE n.yil=2025 AND n.tabanPuan IS NOT NULL AND p.puan2025 IS NOT NULL; -- 17301
-- %99,8

scripts/detay.ts:158-183 bu eşitliği zaten bir emniyet kilidi olarak kullanıyor (≥%95 tutmazsa betik duruyor).

Sonuç: Veri aslında daha kullanışlı — "ortalama" bölümü tanıtır, "son yerleşen" ise o yıl o programa en düşük hangi profille girilebildiğini söyler. Ama "eşik/baraj" diye satılamaz, çünkü tek kişilik bir gözlem ve yıldan yıla çok oynuyor. Yazı tam olarak bunu anlatıyor.

Editöre not: 02-seo-konu-plani.md §2 #2'deki tanım ve "İlk paragraf cevabı" cümlesi düzeltilmeli; ayrıca §2 #15 (veli yazısı) aynı yanlış tanımı devralmasın. Ben o dosyaya dokunmadım.


2. Kullanılan SQL sorguları (tam metin)

Hepsi sqlite3 -readonly /Users/bilalgursen/Desktop/kolaytercih/data/yokatlas.db ile koşuldu.

2.1 Kapsam / kapsama kontrolü

SELECT yil, COUNT(*) FROM netler GROUP BY yil;
-- 2023|21341   2024|20813   2025|20821
SELECT COUNT(*) FROM netler;                      -- 62975
SELECT COUNT(DISTINCT program_id) FROM netler;    -- 25166
SELECT COUNT(*) FROM netler x JOIN programs p ON p.id=x.program_id
 WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.sira2025 IS NOT NULL;  -- 5801
SELECT COUNT(DISTINCT p.isim) FROM netler x JOIN programs p ON p.id=x.program_id
 WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.sira2025 IS NOT NULL;  -- 409

2.2 Tablo 2 — SAY bölüm ortalamaları (yazıdaki ana tablo)

SELECT p.isim, COUNT(*) n,
 ROUND(AVG(x.tytTrkNet),1) tyt_trk, ROUND(AVG(x.tytMatNet),1) tyt_mat,
 ROUND(AVG(x.aytMatNet),1) ayt_mat,
 ROUND(AVG(x.aytFizNet + x.aytKimNet + x.aytBioNet),1) ayt_fen,
 CAST(AVG(p.sira2025) AS INT) s25
FROM netler x JOIN programs p ON p.id=x.program_id
WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.tur='SAYISAL'
  AND p.sira2025 IS NOT NULL
  AND p.isim IN ('Tıp','Diş Hekimliği','Eczacılık','Endüstri Mühendisliği',
   'Bilgisayar Mühendisliği','Hemşirelik','Elektrik-Elektronik Mühendisliği',
   'Yazılım Mühendisliği','Makine Mühendisliği','Veteriner','Mimarlık',
   'İnşaat Mühendisliği','Beslenme ve Diyetetik','Fizyoterapi ve Rehabilitasyon',
   'Moleküler Biyoloji ve Genetik')
GROUP BY p.isim ORDER BY s25 ASC;

Çıktı (yazıdaki tabloyla birebir):

isim                              n    tyt_trk tyt_mat ayt_mat ayt_fen s25
Tıp                               106  31.5    28.2    33.8    34.5    17237
Diş Hekimliği                     75   30.2    25.5    30.9    31.9    31607
Eczacılık                         36   29.1    24.4    29.2    29.6    44463
Endüstri Mühendisliği             64   28.6    21.0    22.0    23.8    111114
Bilgisayar Mühendisliği           114  27.9    19.4    20.7    23.2    120182
Hemşirelik                        116  26.6    16.1    17.2    19.9    143896
Elektrik-Elektronik Mühendisliği  110  27.0    18.3    17.9    21.4    147235
Yazılım Mühendisliği              37   26.3    17.6    17.1    20.1    152171
Makine Mühendisliği               101  26.0    16.9    18.1    19.4    163481
Veteriner                         34   26.7    16.0    17.1    21.4    164612
Mimarlık                          57   27.3    16.3    15.9    18.2    165879
İnşaat Mühendisliği               95   25.8    14.9    14.3    16.1    206016
Fizyoterapi ve Rehabilitasyon     63   24.8    11.3    11.0    13.1    260335
Beslenme ve Diyetetik             65   25.5    12.8    10.5    11.3    271607
Moleküler Biyoloji ve Genetik     43   25.0    12.2     9.6    13.3    327838

2.3 Tablo 3 — EA / SÖZ / DİL

SELECT p.tur, p.isim, COUNT(*) n,
 ROUND(AVG(x.tytTrkNet),1) tyt_trk, ROUND(AVG(x.tytMatNet),1) tyt_mat,
 ROUND(AVG(x.aytMatNet),1) ayt_mat, ROUND(AVG(x.aytTdeNet),1) tde,
 ROUND(AVG(x.aytTrh1Net + x.aytCog1Net),1) sos1,
 ROUND(AVG(x.ydtYdilNet),1) ydt,
 CAST(AVG(p.sira2025) AS INT) s25
FROM netler x JOIN programs p ON p.id=x.program_id
WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.sira2025 IS NOT NULL
  AND p.isim IN ('Hukuk','Psikoloji','Rehberlik ve Psikolojik Danışmanlık',
   'Sınıf Öğretmenliği','İşletme','İktisat','Uluslararası İlişkiler',
   'Özel Eğitim Öğretmenliği','Okul Öncesi Öğretmenliği','Türkçe Öğretmenliği',
   'Tarih','Türk Dili ve Edebiyatı','İngilizce Öğretmenliği',
   'İngiliz Dili ve Edebiyatı','İlahiyat','Sosyal Hizmet')
GROUP BY p.tur, p.isim ORDER BY p.tur, s25 ASC;

Çıktı:

tur   isim                                 n    trk  tmat amat tde  sos1 ydt  s25
DİL   İngilizce Öğretmenliği               66   29.3 8.2  -    -    -    64.5 20078
DİL   İngiliz Dili ve Edebiyatı            60   28.0 4.8  -    -    -    56.7 32283
EA    Hukuk                                51   30.1 19.4 21.9 17.6 11.5 -    22999
EA    Sınıf Öğretmenliği                   75   28.0 13.8 12.8 16.3  9.1 -    94565
EA    Psikoloji                            72   28.8 12.8 12.0 16.7  9.0 -    126270
EA    Rehberlik ve Psikolojik Danışmanlık  72   27.4 12.1 10.0 15.8  8.8 -    133579
EA    Uluslararası İlişkiler               61   23.9  7.6  7.1 11.8  6.8 -    425022
EA    İşletme                              146  24.0  8.4  7.5 11.6  6.4 -    441022
EA    Sosyal Hizmet                        61   24.4  4.3  3.0 12.9  5.9 -    449096
EA    İktisat                              120  23.2  6.6  6.3 10.5  5.3 -    549489
SÖZ   Özel Eğitim Öğretmenliği             54   29.4  5.3  -   18.4 12.4 -    9538
SÖZ   Okul Öncesi Öğretmenliği             69   26.6  5.2  -   16.5 11.4 -    18849
SÖZ   Türkçe Öğretmenliği                  71   25.3  4.6  -   13.4  9.0 -    73366
SÖZ   Türk Dili ve Edebiyatı               100  21.0  2.3  -    9.8  5.0 -    330169
SÖZ   Tarih                                107  20.1  2.6  -    8.2  6.4 -    365385
SÖZ   İlahiyat                             164  18.1  1.8  -    6.9  4.2 -    478545

2.4 Tablo 4 — aynı bölüm içinde bant dağılımı

SELECT CASE WHEN p.sira2025<=10000 THEN 'ilk 10 bin'
            WHEN p.sira2025<=50000 THEN '10-50 bin'
            WHEN p.sira2025<=150000 THEN '50-150 bin'
            ELSE '150 bin ustu' END bant,
 COUNT(*) n, ROUND(AVG(x.tytTrkNet),1), ROUND(AVG(x.tytMatNet),1),
 ROUND(AVG(x.aytMatNet),1), ROUND(AVG(x.aytFizNet),1),
 ROUND(AVG(x.aytKimNet),1), ROUND(AVG(x.aytBioNet),1)
FROM netler x JOIN programs p ON p.id=x.program_id
WHERE x.yil=2025 AND p.isim='Bilgisayar Mühendisliği' AND p.unitur='DEVLET'
  AND p.onlisans=0 AND p.sira2025 IS NOT NULL
GROUP BY bant;
-- ilk 10 bin    |  5 | 33.3 | 31.8 | 39.5 | 12.5 | 12.0 | 12.0
-- 10-50 bin     | 18 | 31.9 | 25.4 | 31.1 | 10.6 | 11.3 | 10.0
-- 50-150 bin    | 52 | 28.2 | 20.2 | 21.3 |  8.3 |  8.3 |  7.6
-- 150 bin ustu  | 39 | 25.0 | 13.9 | 12.8 |  6.1 |  4.4 |  5.5

2.5 Tablo 5 — üç yıl eşleşmeli karşılaştırma

WITH uc AS (
  SELECT program_id FROM netler WHERE yil IN (2023,2024,2025)
  GROUP BY program_id HAVING COUNT(DISTINCT yil)=3
)
SELECT p.isim, COUNT(DISTINCT p.id) n,
 ROUND(AVG(CASE WHEN x.yil=2023 THEN x.tytMatNet END),1) tm23,
 ROUND(AVG(CASE WHEN x.yil=2024 THEN x.tytMatNet END),1) tm24,
 ROUND(AVG(CASE WHEN x.yil=2025 THEN x.tytMatNet END),1) tm25,
 ROUND(AVG(CASE WHEN x.yil=2023 THEN x.aytMatNet END),1) am23,
 ROUND(AVG(CASE WHEN x.yil=2024 THEN x.aytMatNet END),1) am24,
 ROUND(AVG(CASE WHEN x.yil=2025 THEN x.aytMatNet END),1) am25
FROM netler x JOIN programs p ON p.id=x.program_id JOIN uc ON uc.program_id=x.program_id
WHERE p.onlisans=0 AND p.unitur='DEVLET'
  AND p.isim IN ('Tıp','Hukuk','Bilgisayar Mühendisliği','Psikoloji','Hemşirelik')
GROUP BY p.isim;
-- Tıp                     102 | 34.6 34.9 28.4 | 35.1 29.6 33.8
-- Bilgisayar Mühendisliği 111 | 27.1 24.2 19.3 | 26.4 17.9 20.6
-- Hukuk                    50 | 24.8 23.4 19.3 | 23.8 17.4 21.9
-- Hemşirelik              110 | 19.2 19.5 16.2 | 18.5 12.4 17.3
-- Psikoloji                62 | 17.8 15.7 12.5 | 15.7  9.9 12.0

Aynı CTE ile tüm devlet lisans kesiti (yazının en güçlü tek bulgusu):

-- ... aynı uc CTE ...
SELECT COUNT(DISTINCT p.id) n,
 ROUND(AVG(CASE WHEN x.yil=2023 THEN x.tytMatNet END),1),
 ROUND(AVG(CASE WHEN x.yil=2024 THEN x.tytMatNet END),1),
 ROUND(AVG(CASE WHEN x.yil=2025 THEN x.tytMatNet END),1),
 ROUND(AVG(CASE WHEN x.yil=2023 THEN x.tytTrkNet END),1),
 ROUND(AVG(CASE WHEN x.yil=2024 THEN x.tytTrkNet END),1),
 ROUND(AVG(CASE WHEN x.yil=2025 THEN x.tytTrkNet END),1)
FROM netler x JOIN programs p ON p.id=x.program_id JOIN uc ON uc.program_id=x.program_id
WHERE p.onlisans=0 AND p.unitur='DEVLET';
-- n=5213 | TYT Mat  13.6 → 12.5 → 9.9  | TYT Türkçe  24.0 → 24.3 → 24.6

2.6 OBP rakamları

SELECT COUNT(*), ROUND(AVG(x.obp),0) FROM netler x JOIN programs p ON p.id=x.program_id
WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.sira2025 IS NOT NULL;
-- 5801 | 411
-- aynı filtreyle: Tıp (n=106) 478 · Psikoloji (n=72) 433

2.7 Adlandırma kontrolü (tabloya girmeyen varyantlar)

SELECT isim, COUNT(*) FROM programs
WHERE unitur='DEVLET' AND onlisans=0 AND isim LIKE 'Bilgisayar Mühendisliği%' GROUP BY isim;
-- Bilgisayar Mühendisliği                     125
-- Bilgisayar Mühendisliği (KKTC Uyruklu)        2
-- Bilgisayar Mühendisliği (İngilizce)           5
-- (İngilizce) (%50 İndirimli)                   1
-- (İngilizce) (KKTC Uyruklu)                    1
-- (İngilizce) (UOLP-Saraybosna) (%25 İndirimli) 3

programs.isim 2026 kılavuzundaki adı taşıyor (2.537 programın adında parantez var). ODTÜ ve Boğaziçi Bilgisayar Mühendisliği 2026'da düz adla geçiyor, bu yüzden tabloya giriyorlar. Bu kısıt yazının "nasıl hesaplandı" kutusunda açıkça yazılı.


3. YÖK Atlas gözle doğrulaması

YÖK Atlas 2026'da SPA'ya geçtiği için eski lisans-panel.php / content/lisans-dynamic/*.php panelleri artık HTML dönmüyor (hepsi boş React kabuğu; scripts/detay.ts:27 bunu zaten not etmiş). netler-tablo.php ve net-sihirbazi sayfaları da SPA. Bu yüzden doğrulama sitenin kendi canlı servisinden (POST /api/netler/search, tarayıcıdaki Net Sihirbazı'nın çağırdığı uç) program program yapıldı. Değerler bugün (22 Eyl 2026) canlıdan çekildi ve data/yokatlas.db ile alan alan karşılaştırıldı.

# Program (kılavuz kodu) Alan Canlı YÖK Atlas (2025) Bizim DB Sonuç
1 Hacettepe Ü. Tıp (104810617) tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / Fiz / Kim / Biyo 530.58733 / 483.88 / 35,25 / 36,25 / 37,5 / 14,0 / 13,0 / 11,75 aynı ✅ birebir
2 ODTÜ Bilgisayar Müh. (İng.) (108410336) tabanPuan / TYT Trk / TYT Mat / AYT Mat 534.56656 / 32,25 / 32,25 / 40,0 aynı ✅ birebir
3 Boğaziçi Bilgisayar Müh. (İng.) (102210277) tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / Fiz / Kim / Biyo 533.05003 / 473.958 / 33,75 / 38,75 / 38,75 / 12,75 / 11,75 / 13,0 aynı ✅ birebir
4 Ankara Ü. Hukuk (101110518) tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / TDE / Trh1 / Coğ1 461.84071 / 459.008 / 34,25 / 26,75 / 27,25 / 19,0 / 10,0 / 4,75 aynı ✅ birebir
5 İstanbul Ü. Psikoloji (105610255) tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / TDE / Trh1 / Coğ1 417.22453 / 433.971 / 28,25 / 9,25 / 27,0 / 19,0 / 8,75 / 2,25 aynı ✅ birebir
6 Ege Ü. Hemşirelik (103410793) tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / Fiz / Kim / Biyo 400.41912 / 398.02 / 17,5 / 16,5 / 24,25 / 10,25 / 10,5 / 11,75 aynı ✅ birebir

Ek olarak filtresiz ilk sayfadaki 4 kayıt (Medipol Tıp İng. Burslu 203110477, Koç Tıp İng. Burslu 203910699, Koç Tarih 203910187, Koç Ekonomi 203910275) da alan alan tuttu — 10/10.

2026 verisinin yokluğu doğrudan teyit edildi:

POST /api/netler/search  {"filters":{},"page":0,"size":3,"sortBy":"yil","direction":"DESC"}
→ totalElements: 63063 ;  ilk 3 kaydın hepsi yil=2025

Yani canlı serviste en yeni net yılı 2025. (Bizde 62.975 satır var; canlıda 63.063 → %99,86 kapsama. Fark küçük, yazının hiçbir iddiasını etkilemiyor, ama veri mühendisine not.)

Hüküm: YAYIMLANABİLİR. Veri doğrulandı, editör notuna gerek yok.


4. Çıkarılan / yazılmayan iddialar

İddia Neden yazılmadı
"Şu kadar net yaparsan X bölümüne girersin" Veri tek kişilik gözlem; ÖSYM net barajı yayımlamıyor. Yazı bunun yerine "en son yerleşenin profili" dilini kullanıyor.
"Yerleşenlerin ortalama neti" Veri ortalama değil (bkz. §1). Yazıda bilerek yanlış okuma olarak işaretlendi.
2026 net rakamı YÖK Atlas yayımlamamış (canlı API ile teyit). "Açıklanmadı" diye yazıldı.
Vakıf üniversitesi net tablosu Burslu/İndirimli/Ücretli varyantları bölüm adında ayrışıyor ve karşılaştırma yanıltıcı olurdu; SEO planı §1 bu kesiti zaten ayrı yazıya bırakmış. Kapsam DEVLET ile sınırlandı.
Önlisans (TYT) net tablosu Kapsam dışı bırakıldı (yazı lisans odaklı); ayrı yazı konusu.
n < 10 olan bölümler Tabloya alınmadı. Brief "5'ten az" diyordu, eşik 10'a çekildi (daha muhafazakâr). Tek istisna görünürdeki bant tablosunun "ilk 10 bin" satırı: n=5, satırın yanında açıkça yazıyor.
"Net → sıralama" dönüşüm tablosu Resmî bir dönüşüm tablosu yok; kurumların tahmini tabloları kaynak gösterilemezdi. Yazı yalnızca "denemeni sıralamaya çevir" diyor, rakam vermiyor.

5. Engeller ve veri kalitesi notları (editör / veri mühendisi için)

  1. SEO planı §2 #2'deki tanım hatalı (bkz. §1). 02-seo-konu-plani.md düzeltilmeli; aynı hatayı devralabilecek konu: §2 #15 (veli yazısı, "net tablosu tekrarlamaz ama tek örnek verir").
  2. Brief'in "netler tablosu sitede hiçbir yerde kullanılmadı" varsayımı yanlış. Tablo zaten katalogda ve liste ekranında kullanılıyor: src/app/api/netler/route.ts, src/features/katalog/components/program-netleri.tsx (program satırındaki "netler" butonu → modal), universite-program-tablosu.tsx:114, bolum-program-listesi.tsx:262, liste/components/program-tablosu.tsx:387. Yazıda kullanılmamıştı, doğrusu bu. Fark önemli, çünkü modal zaten "son yerleşen kişi" dilini kullanıyor; yazı onunla tutarlı.
  3. Şüpheli program kayıtları (veri kalitesi). Bölüm içi uç değer taramasında fakulte alanı bölümle uyuşmayan kayıtlar çıktı — ör. 108411025 ORTA DOĞU TEKNİK ÜNİVERSİTESİ / isim "Psikoloji" / fakülte "Mühendislik Fakültesi" / sira2025 = 750343; benzer şekilde 108410857 ODTÜ "Bilgisayar Mühendisliği" / Mühendislik Fakültesi / sira2025 = 252139. Bunlar büyük olasılıkla KKTC uyruklu / özel kontenjan satırları ama adlarında ek taşımıyor. Yazıda hiçbiri tek tek anılmadı; yalnızca 72 ve 114 programlık ortalamaların içinde kaldılar (etkileri ihmal edilebilir). veri-muhendisi'ne bakması için not.
  4. Kapsama farkı: canlı API 63.063 satır, bizde 62.975 (88 satır eksik, %0,14). Sebebi incelenmedi.
  5. Disk: vardiya sırasında makinenin kök diski doldu (/ %100, ~117 MB boş); iki komut ENOSPC ile düştü ve tekrar denenerek aşıldı. Orkestratöre not.

Bilal'den istenen (yayın öncesi kontrol)

  1. Terminoloji onayı: Yazı, YÖK Atlas net verisini "yerleşenlerin ortalaması" değil "o programa en son yerleşen kişinin neti" diye anlatıyor (kanıtlar raporda). Bu dil ürünün her yerinde aynı kalmalı — onaylıyor musun? (~5 dk)
  2. Tablo genişliği: Sayısal tablosu 7, EA/SÖZ/DİL tablosu 10 kolon. Mobilde yatay kayan rehber-tablo sarmalayıcısına giriyor ama bir göz atman iyi olur. (~3 dk)
  3. Güncelleme tetiği: YÖK Atlas 2026 netlerini yayımladığında bu yazı ve tabloları yenilenmeli; backlog'a "2026 netleri gelince kac-net-ile-hangi-bolum güncelle" kalemi açılsın mı? (~2 dk)