Uygunluk Kuralları — R001–R013 + R003M / R00T / R00L
Bir mahsuplaşma grubu, hesaba girmeden önce bir dizi uygunluk kuralından
geçer. Bu sayfa, kural motorunun (EligibilityRuleEngine) çalıştırdığı tüm
kuralları anlatır: her kuralın ne kontrol ettiğini, önem seviyesini
(severity), üretebildiği sonuçları (status) ve — en önemlisi — o sonucu
gördüğünüzde ne yapmanız gerektiğini (somut aksiyon).
Kural motoru POST /api/mahsuplasma/groups/{id}/evaluate ile çalışır; sonucu
GET /api/mahsuplasma/groups/{id}/eligibility ile okursunuz. Sihirbazda ise
7. adım (Önizleme) uygunluk sonucunu otomatik gösterir — ayrıca bir şey
çağırmanıza gerek yoktur (bkz. Grup Kurulum Sihirbazı).
Önce Önem seviyeleri ve Kural durumları bölümlerini okuyun (kısa iki tablo). Sonra grubunuzda hangi kod kırmızı/sarı çıktıysa, aşağıdaki Kural kataloğu tablosundan o koda gidin ve "NE YAPMALI" satırını uygulayın. "Grubum neden geçerli değil?" tipi hızlı çözümler için SSS ve Sorun Giderme sayfası da var.
Önem seviyeleri (severity)
Her kural bir severity taşır. Severity, bir kuralın FAIL (veya blocking için
not_checked) olması durumunda grubun genel durumunu (eligibility_status) nasıl
etkilediğini belirler:
| Severity | Anlamı | Grubu nasıl etkiler |
|---|---|---|
| blocking | Mevzuat gereği grubu geçersiz kılan ihlal (regime, abone grubu, tek tedarikçi, ana sayaç, tarife, limit) | FAIL → grup blocked; not_checked → grup not_checked (asla valid olamaz) |
| error | Veri bütünlüğü sorunu (sayaç kanalı bilinmiyor, çakışma) | FAIL → valid_with_warnings (blocking sorun yoksa) |
| warning | Yaklaşıklık / eksik beyan (çoklu bölge, kurulu güç bilinmiyor, transfer değerlendirmesi) | FAIL → valid_with_warnings (blocking sorun yoksa); grubu durdurmaz |
| info | Doğrulama bekleyen tespit / etiketleme (özel hesap tipi, OSB/EB) | Genel durumu değiştirmez |
Bir kural not_checked çıktığında ne olacağı severity'ye bağlıdır:
- blocking bir kural
not_checkedise → grup en fazlanot_checkedolur, aslavalidolmaz (aşağıdaki "kritik ilke" kutusuna bakın). - warning/info bir kural
not_checkedise → grubun genel durumunu etkilemez (örn. R008, R009, R011 süreklinot_checked'tir ama grubu bloklamaz, çünkü bunlar warning'dir).
Kural durumları (status)
Her kuralın çalışması bir status üretir:
| Status | Anlamı | Örnek |
|---|---|---|
pass | Kural sağlandı | Tüm üyeler lum_yonetmelik_26 → R001 pass |
fail | Kural ihlal edildi | İki farklı abone grubu → R002 fail |
not_checked | Kural değerlendirilemedi (eksik veri veya ilgili faz henüz gelmedi) | sktt_status beyanı yok → R008 not_checked |
not_applicable | Kural bu gruba uygulanmadı (koşul yok) | Grupta tüketim tesisi yok → R003 not_applicable |
not_checked ASLA "uygun" (geçerli) sayılmazBu, modülün en önemli ilkesidir. Bir blocking sınıfı kural henüz
doğrulanamadığı sürece (örneğin ilgili veri kaynağı bağlanmadığı, ya da zorunlu
bir beyan eksik olduğu için) grup en fazla not_checked olur — hiçbir zaman
valid. "Blocking-fail olmaması" ile "anlamlı geçerlilik" aynı şey değildir.
Bu yüzden üyesiz bir grup veya zorunlu verisi eksik bir grup valid damgası
alamaz. Bir eksiği "kontrol edilmedi diye sorun yok" varsaymak yasaktır.
Genel durum (aggregate_status) mantığı
Grubun genel eligibility_status'u kural sonuçlarından türetilir. Öncelik
sırası: blocked > not_checked > valid_with_warnings > valid.
Grup valid (geçerli / yeşil) SADECE şu üç koşulun HEPSİ sağlanınca atanır:
- Hiç blocking-
failyok, VE - Hiç blocking-
not_checkedyok, VE - En az bir anlamlı (substantif) blocking kural fiilen
pass/failolarak değerlendirildi.
Diğer durumlar:
blocked(kırmızı) — en az bir blocking kuralfail. (Bu, olası bir eksikten daha kesin bir engeldir; bu yüzdennot_checked'ten önce gelir.)not_checked(gri) — bir blocking kuralnot_checked, VEYA hiçbir anlamlı blocking kural değerlendirilemedi (örn. üyesiz grup: tüm blocking'lernot_applicable). Bu durum aslavalidsayılmaz.valid_with_warnings(amber) — blocking sorun yok ama warning/error sınıfı birfailvar (örn. çoklu bölge). Hesap koşar; sonuç "yaklaşık/uyarılı"dır.
Yalnızca R013 (aşağıya bakın) türev/agregat bir kuraldır — kendi başına
gerçek bir koşul doğrulamaz, sadece diğer blocking kuralların sonucunu toplar.
Bu yüzden R013'ün pass olması "anlamlı geçerlilik" saymaz. Somut örnek: üyesi
olmayan bir grupta bütün gerçek kurallar not_applicable döner, R013 ise pass
olur; buna rağmen grup valid yapılmaz, not_checked kalır. "Önce bir üye
ve zorunlu beyanları ekle, sonra geçerlilikten söz edelim" mantığı.
Karar akışını görselleştirirsek:
blocked bile olsa hesap koşar (bedelsiz senaryo)Bir grup blocked olsa dahi, saatlik hesap motoru hesabı durdurmaz: grup
koşulları sağlanmıyorsa (R013 — Md.6(4)/9(6)(10)) grubun tüm üretimi bedelsiz
sanal sayaca yazılır (invalid_group_bedelsiz senaryosu). Yani blocked
"hiç hesaplanmaz" demek değil, "bedelli mahsuplaşmaya konu edilemez, bedelsiz
riski var" demektir. Bu risk (TL) ilgili dashboard widget'ında gösterilir.
Amaç: hatayı görünür kılmak ve gelir kaybını sessizce oluşturmamak.
Kural kataloğu — hızlı referans
Aşağıdaki tablo tüm kuralları, önem seviyelerini, üretebildikleri status'ları ve bu sürümdeki gerçek davranışlarını özetler. Her kodun ayrıntısı ve NE YAPMALI adımları takip eden bölümlerdedir.
| Kod | Severity | Ne kontrol eder? | Üretebildiği status'lar | Bu sürüm |
|---|---|---|---|---|
| R001 | blocking | Tüm üyeler lum_yonetmelik_26 kapsamında mı? (Md.26) | pass / fail / not_applicable | ✅ Aktif |
| R002 | blocking | Tüketim tesisleri aynı abone grubunda mı? (Md.5(3)) | pass / fail / not_checked / not_applicable | ✅ Aktif |
| R003 | blocking | Çoklu tüketimde tek tedarikçi (Md.5(5); OSB/EB + DUY 17/2 istisnası) | pass / fail / not_checked / not_applicable | ✅ Aktif |
| R003M | blocking | Ana üretim sayacı (main_production) atanmış mı? | pass / fail / not_applicable | ✅ Aktif |
| R004 | warning | Tesisler tek dağıtım bölgesinde mi? (çoklu-bölge yaklaşıklığı) | pass / fail / not_checked / not_applicable | ✅ Aktif |
| R005 | info | Özel hesap tipi tespiti (5.1.ç / 5.1.d) | pass / not_applicable | ✅ Aktif (tespit) |
| R006 | blocking | 5.1.ç ilişkilendirme matrisi statik ihlalleri (Md.6(3)c/(9)) | pass / fail / not_applicable | ✅ Aktif (statik) |
| R007 | blocking | Mesken-dışı grupta her tüketim tesisi için bedelli limit hesabı var mı? (Md.7(1)) | pass / fail / not_applicable | ✅ Aktif (PR-4) |
| R008 | warning | SKTT durumu beyan edildi mi? | pass / not_checked / not_applicable | 🔜 not_checked (tam hesap PR-8) |
| R009 | warning | Üretim kurulu güç beyanı var mı? (Md.5(8) saatlik tavan) | not_checked | 🔜 not_checked (saatlik kontrol PR-5) |
| R010 | warning | Limit hesabı başka grup(lar)ca da kullanılmış mı? (transfer; Md.5(4)+28/7) | pass / fail / not_applicable | ✅ Aktif (PR-6) |
| R011 | warning | Tesis devredilmiş mi? (Md.5(10)(11)) | not_checked | 🔜 not_checked (ileri PR) |
| R012 | info | OSB/EB senaryosu var mı? (Md.9(8)(9)) | pass / not_applicable | ✅ Aktif (tespit) |
| R013 | blocking | Agregat türev: önceki blocking-fail varsa bedelsiz riski (Md.6(4)/9(6)(10)) | pass / fail | ✅ Aktif (türev) |
| R00T | blocking | Cari dönem için onaylı regüle tarife seti + abone grubu eşleşmesi var mı? (Md.11) | pass / fail / not_checked / not_applicable | ✅ Aktif (PR-6) |
| R00L | blocking | Bedelli limit hesabı yok (R007 ile eş alt-kod) | — (R007 kapsar) | ✅ R007 üzerinden (PR-4) |
Eski dokümanlarda R00T "PR-8", R010 ise "not_checked" olarak geçiyordu. İkisi de
PR-6 ile canlıdır: R00T bloklayıcı olarak fail/pass üretir (onaylı dönem
tarife seti yoksa fail), R010 ise uyarı olarak pass/fail üretir (limit başka
grupta kullanılmışsa fail). Kaynak: eligibility.py + services/groups.py
(değerlendirme girdisi bu iki alanı fiilen dolduruyor).
Blocking kurallar (grubu geçersiz kılabilir) — ayrıntı
Blocking bir kural fail olursa grup blocked olur; not_checked olursa grup
not_checked olur (asla valid). Aşağıda her biri için ne zaman hangi sonucun
çıktığı ve ne yapmanız gerektiği verilmiştir.
R001 — Tüm üyeler LÜM/Yönetmelik-26 kapsamında mı?
- Kontrol: Grubun her üye tesisinin
mahsuplasma_regimealanılum_yonetmelik_26mı? (Md.26). Mahsuplaşma hesabı yalnızca bu kapsamdaki tesislerle yapılabilir. - Ne zaman ne çıkar: Grupta üye yoksa
not_applicable; bir/daha fazla üye 26 dışı bir regime taşıyorsafail(evidence.violationsiçinde tesis id + regime listelenir); hepsi 26 isepass. Bu kuralnot_checkedüretmez — regime alanı her zaman bir değer (en kötüunknown) taşır veunknownda 26 dışı sayılıpfailverir. - FAIL görürsen NE YAPMALI:
evidence'taki kapsam-dışı tesisleri gruptan çıkarın, ya da yanlış beyan edildiyse rejimi düzeltin (sihirbaz → 4. adım Özel Kurallar → Mahsuplaşma rejimi alanı; değeri çağrı mektubu / lisans belgesinden doğrulayın). 26 dışı (örn.excluded_yonetmelik_23,licensed,unknown) bir tesis mahsuplaşma grubunda yer alamaz.
R002 — Tüketim tesisleri aynı abone grubunda mı? (Md.5(3))
- Kontrol: Tüketim/karma rollü üyelerin
abone_grubudeğerleri (mesken, ticarethane, sanayi, tarımsal sulama, aydınlatma, diğer) tek bir grupta mı? - Ne zaman ne çıkar: Tüketim/karma tesis yoksa
not_applicable; bir tüketim tesisininabone_grububeyanı eksiksenot_checked(blocking → grupvalidolamaz); birden fazla farklı abone grubu varsafail; hepsi aynıysapass. not_checkedgörürsen NE YAPMALI: Eksik tesislerin abone grubunu doldurun (4. adım Özel Kurallar → Abone grubu). Değeri elektrik faturanızdaki "abone grubu" satırından okuyun.- FAIL görürsen NE YAPMALI: Farklı abone gruplarındaki tüketim tesislerini ayrı gruplara bölün, ya da yanlış beyanı düzeltin. Aynı mahsuplaşma grubundaki tüm tüketim tesisleri aynı abone grubunda olmak zorundadır.
R003 — Çoklu tüketimde tek tedarikçi (Md.5(5))
- Kontrol: Grupta birden fazla tüketim tesisi varsa hepsi aynı
tedarikçiden mi alım yapıyor? (
supplier_id). - İstisna (kural uygulanmaz): Grup OSB/EB üzerinden beslenen tesis var
işaretliyse veya bir tesis OSB/EB'ye bağlıysa kural
not_applicabledöner (Md.5(5) + DUY 17/2 istisnası). - Ne zaman ne çıkar: Tüketim tesisi ≤1 veya OSB/EB istisnası →
not_applicable; tüketim tesisinin tedarikçi beyanı eksik →not_checked; farklı tedarikçiler →fail; tek tedarikçi →pass. not_checkedgörürsen NE YAPMALI: R003, her tüketim tesisinin tedarikçi kurumu bağlantısına (supplier_id— görünür resmî tedarikçi kurumu) bakar; bu bağlantı eksiksenot_checkedçıkar. Dikkat: Sihirbazın Ek-1 adımındaki serbest-metin Tedarikçi adı (supplier_name) alanı yalnızca bilgi amaçlıdır ve tek başına bu kuralı karşılamaz — kural tedarikçi kurumunu (supplier_id) arar. Bu bağlantı bu sürümde sihirbazda ayrı bir alan olarak sunulmaz; tesis kaydındasupplier_iddoldurulduğunda (API:PATCH /api/mahsuplasma/facilities/{id}) R003 artık değerlendirilebilir ve eksik-beyannot_checkeddurumu kalkar. Tedarikçi adını elektrik faturanızdan bulabilirsiniz.- FAIL görürsen NE YAPMALI: Tüm tüketim tesislerini tek tedarikçide toplayın. Gerçekten OSB/EB üzerinden besleniyorsanız, 4. adım Özel Kurallar → OSB/EB üzerinden beslenen tesis var kutusunu işaretleyin; kural o zaman istisna kapsamına girer.
R003M — Ana üretim sayacı atanmış mı?
- Kontrol: Grubun alt bölgelerinde
main_production(ana üretim) ölçüm rolü atanmış bir sayaç var mı? Mahsuplaşma hesabı, ana üretim ölçümü olmadan yapılamaz. - Ne zaman ne çıkar: Grupta üye yoksa
not_applicable;main_productionrolü atanmamışsafail; atanmışsapass(varsa ana tüketim sayacı da mesajda belirtilir). - FAIL görürsen NE YAPMALI: Bir cihaza ana üretim sayacı rolü atayın.
Sihirbazın 5. adımı (Sayaç + ESS) veya Sayaç Atama ve Kanal Eşleme
sihirbazından Ölçüm rolü = main_production seçin. (API:
POST /api/mahsuplasma/meters/assign.)
R006 — 5.1.ç ilişkilendirme matrisi (statik ihlaller)
- Kontrol: Grupta bir 5.1.ç (öz-tüketim) üretim tesisi varken, statik/kesin
mevzuat ihlalleri var mı? İki ihlal aranır:
- Md.6(9): 5.1.ç yalnız 5.1.h üretim tesisleriyle ilişkilenebilir — grupta 5.1.ç ile birlikte 5.1.h dışı başka bir üretim tipi (5.1.c/f/g...) varsa ihlal.
- Md.6(3)c: 5.1.ç grubuna müstakil (aynı ölçüm noktası dışı) tüketim tesisi eklenemez.
- Ne zaman ne çıkar: Grupta 5.1.ç üretim tesisi yoksa
not_applicable; yukarıdaki statik ihlaller varsafail(evidence.violations); statik kurallar sağlanıyorsapass. Belirsiz/veri-bağımlı kısımlar (5.1.d çağrı tarihi vb.) burada değerlendirilmez. - FAIL görürsen NE YAPMALI:
evidence'taki uyumsuz üye kombinasyonunu düzeltin — 5.1.ç ile birlikte 5.1.h dışı üretim tipini gruptan çıkarın, veya müstakil tüketim tesisini gruptan çıkarıp aynı ölçüm noktasıyla ilişkilendirin.
R007 — Bedelli limit hesabı var mı? (Md.7(1))
- Kontrol: Mesken-dışı bir grupta, her tüketim/karma tesis için ilgili
yıla (
fatura_donemi_baslangic.year) ait bir bedelli limit hesabı var mı? - Ne zaman ne çıkar: Grup mesken grubuysa (
is_mesken_group=true) veya hiç tüketim tesisi yoksanot_applicable; en az bir tüketim tesisinin limit hesabı eksiksefail(evidence.missing_facilities); hepsi varsapass. - FAIL görürsen NE YAPMALI: Eksik tesisler için limit hesabı açın.
Sihirbazın 6. adımı (Limit) veya Limit Hesapları
ekranından girin (API:
POST /api/mahsuplasma/limits/accounts). Başlangıç limitini LÜM resmî limitinden ya da müşteri beyanından alın.
Mesken grupları (is_mesken_group=true) Md.7(4) gereği bu kuralın dışındadır
(aylık hesap, limit sınırlaması yok) ve R007 bu durumda not_applicable döner.
Mesken-dışı gruplarda ise en az bir eksik limit hesabı grubu blocked yapar.
Ayrıntı: Limit Hesapları.
R00T — Cari dönem için onaylı regüle tarife seti var mı? (Md.11)
R00T, PR-6 ile aktif bir bloklayıcı kuraldır. Kod, değerlendirme anında cari
dönemin onaylı tarife setini fiilen sorgular (services/groups.py →
approved_set_exists), dolayısıyla gerçek pass/fail üretir — "ileride
gelecek" değildir.
- Kontrol: İki şey birden aranır (Md.11 tutar motorunun girdisi):
- Cari fatura dönemi (değerlendirme anındaki takvim ayı başı) için
approved(onaylı) bir regüle tarife seti var mı? - Grubun tüketim tesislerinin her abone grubu için o sette
mahsuplasma_related_tariffamaçlı bir fiyat satırı tanımlı mı?
- Cari fatura dönemi (değerlendirme anındaki takvim ayı başı) için
- Ne zaman ne çıkar:
- Tüketim/karma tesis yoksa →
not_applicable. - Onaylı set yoksa →
fail. - Set var ama bazı abone grupları için ilgili tarife fiyatı yoksa →
fail(evidence.missing_abone_groups). - Bir tüketim tesisinin
abone_grububeyanı eksikse →not_checked(eşleşme doğrulanamaz; blocking → grupvalidolamaz). - Set var + tüm tüketici abone grupları tanımlı →
pass.
- Tüketim/karma tesis yoksa →
- FAIL /
not_checkedgörürsen NE YAPMALI:- Onaylı set yok: Bir superadmin, Regüle Tarifeler
ekranından (
/console/regulated-tariffs) ilgili dönemin fiyat setini içe aktarıp onaylasın (draft → approved). Fiyatları EPDK'nın yayımladığı tarife tablosundan alın. - Eksik abone grubu: Aynı ekrandan, eksik abone gruplarının
mahsuplasma_related_tarifffiyat satırlarını ekleyin. not_checked(abone grubu eksik): Önce tesislerinabone_grubualanını doldurun (bkz. R002), sonra yeniden değerlendirin.
- Onaylı set yok: Bir superadmin, Regüle Tarifeler
ekranından (
R00L — Bedelli limit hesabı yok (R007 ile eş alt-kod)
- Kontrol: R00L, "limit hesabı yok" durumunun eş bir bloklayıcı alt kodudur (PR-4). Motor ayrı bir R00L sonucu üretmez; bu koşul R007 tarafından değerlendirilir. R00L yalnızca severity haritasında tanımlıdır (bloklayıcı sınıflandırması için).
- NE YAPMALI: Grubunuzda limit eksikliği bir sorunsa R007'yi giderin (yukarıya bakın). Ayrı bir R00L aksiyonu yoktur.
R013 — Grup koşulları sağlanmıyorsa bedelsiz riski (agregat türev)
- Kontrol: R013 türev bir kuraldır — kendinden önceki tüm kuralların
blocking-
fail'lerini toplar (Md.6(4)/9(6)(10)). En az bir blocking-failvarsa "bedelsiz riski" bulgusu üretir. - Ne zaman ne çıkar: Önceki kurallarda blocking-
failvarsafail(evidence.triggering_rules= tetikleyen kod listesi); yoksapass. - FAIL görürsen NE YAPMALI: R013'ü doğrudan düzeltemezsiniz — bu bir
sonuçtur.
evidence.triggering_rulesiçindeki blocking kuralları (R001, R002, R003, R003M, R006, R007, R00T...) tek tek giderin; hepsi geçtiğinde R013 de kendiliğindenpassolur. R013failise grubun tüm üretimi bedelsiz sanal sayaca yazılır (yukarıdaki bedelsiz senaryo kutusu).
Uyarı (warning) kuralları — ayrıntı
Warning bir kural fail olursa grup valid_with_warnings olur; hesap koşar,
sonuç "yaklaşık/uyarılı"dır. Warning kuralların not_checked olması grubu
bloklamaz (yalnızca blocking not_checked bloklar).
R004 — Tesisler tek dağıtım bölgesinde mi? (çoklu-bölge)
- Kontrol: Grup tesisleri tek bir dağıtım bölgesinde mi? Farklı bölgeler hesabı "yaklaşık" hale getirir (Md.6(7)(8) + plan §4.2 Açık Konu #15).
- Ne zaman ne çıkar: Üye yoksa
not_applicable; hiçbir tesiste bölge beyanı yoksanot_checked(warning — bloklamaz); birden fazla bölge varsafail(yaklaşık hesap uyarısı); tek bölge isepass. - NE YAPMALI: Zorunlu değil. Çoklu bölge grubu, LÜM pratiğinde teyit edilene
kadar yaklaşık hesaplanır; olduğu gibi bırakabilirsiniz. Belirsizliği azaltmak
isterseniz tesislerin dağıtım bölgesi beyanını (
distribution_region) doldurabilirsiniz. Bu beyan, Ek-1'deki Dağıtım şirketi (distribution_company_id) seçiminden ayrı bir tesis-kaydı alanıdır — R004 yalnızcadistribution_regiondeğerine bakar, dağıtım şirketi seçimi bu kuralı etkilemez. Bu sürümde sihirbazda ayrı bir alan olarak sunulmaz; tesis kaydından ayarlanır (API:PATCH /api/mahsuplasma/facilities/{id}).
R008 — SKTT durumu beyan edildi mi?
- Kontrol: Tesislerin
sktt_status(Serbest Tüketici / SKTT durumu) beyanı var mı? - Ne zaman ne çıkar: Beyan eksikse
not_checked; grupta üye yoksanot_applicable; hepsinde beyan varsapass. Bu sürümde çoğunluklanot_checked'tir (tam SKTT hesabı PR-8). - NE YAPMALI: Şu an bir aksiyon gerekmez. SKTT durumu beyanı (
sktt_status) için bu sürümde henüz bir arayüz alanı yoktur; R008 uyarı (warning) severity'sinde olduğu içinnot_checkedkalması grubu engellemez. Tam SKTT değerlendirmesi ve beyan alanı ileri fazda (PR-8) gelecektir.
R009 — Üretim kurulu güç beyanı (Md.5(8) saatlik tavan)
- Kontrol: Üretim tesislerinde kurulu güç beyanı (
installed_power_kw/lum_installed_power_kw) var mı? Saatlik tavan karşılaştırması ileri fazda yapılır. - Ne zaman ne çıkar: Bu sürümde her zaman
not_checkeddöner — beyan eksikse "kurulu güç bilinmiyor", beyan varsa "statik kontrol geçti, saatlik tavan PR-5'te". Warning severity olduğu için grubu bloklamaz. - NE YAPMALI: Kurulu güç beyanını girin (Ek-1 adımı → Kurulu güç; değeri proje/lisans/çağrı mektubundan). Saatlik tavan kontrolü PR-5 resolver'da aktifleşecektir.
R010 — Limit hesabı başka grup(lar)ca da kullanılmış mı? (transfer)
R010, PR-6 tam kalibrasyonu ile gerçek sonuç üretir: services/groups.py
değerlendirme girdisinde, tüketim tesisinin limit hesabında bu grup dışında
kullanım hareketi olup olmadığını fiilen sorgular. Dolayısıyla pass/fail
üretir (not_checked değildir).
- Kontrol: Grubun bir tüketim tesisinin bedelli limit hesabı, başka grup(lar) tarafından da kullanılmış mı? (Md.5(4) + Yönetmelik 28/7 kalan-limit transferi değerlendirmesi).
- Ne zaman ne çıkar: Tüketim/karma tesis yoksa
not_applicable; bir tesisin limiti başka grupta kullanılmışsafail(evidence.facilities_with_cross_group_usage); başka-grup kullanımı yoksapass. - FAIL görürsen NE YAPMALI: Uyarı niteliğindedir, hesabı durdurmaz. Tesis
grup değiştirmiş olabilir; kalan limitin bu gruba transferini
POST /api/mahsuplasma/limits/transferile değerlendirin. Sözleşme gücü ön koşulu beyanı transfer isteğinde taşınır (Zeus'ta sözleşme gücü verisi otomatik doğrulanmaz; bu yüzden kural bloklayıcı değil, uyarıdır).
R011 — Tesis devredilmiş mi? (Md.5(10)(11))
- Kontrol: Bir üye tesis devredilmiş mi? Devredilen tesiste yeni bedelli limit, devir tarihinden itibaren aylık hesaplanır.
- Ne zaman ne çıkar: Bu sürümde her zaman
not_checked— tesis sahiplik değişikliği veri modeli henüz yok. Warning severity → grubu bloklamaz. - NE YAPMALI: Şu an bir aksiyon yok; devir kontrolü ileri PR'da aktifleşecektir.
Bilgi (info) kuralları — ayrıntı
Info kurallar yalnızca tespit/etiketleme yapar; grubun genel durumunu değiştirmez. Aksiyon gerektirmezler, ilgili özel hesap dalını bilgilendirirler.
R005 — Özel hesap tipi tespiti (5.1.ç / 5.1.d)
- Kontrol: Grupta 5.1.ç (öz-tüketim) veya 5.1.d (kojenerasyon) tipli üretim tesisi var mı? (Md.9(4)/(5)).
- Ne zaman ne çıkar: Özel tip yoksa
not_applicable; varsa tesis başınapass(bilgi —facility_iddoldurulur). - NE YAPMALI: Bilgi amaçlıdır, aksiyon gerekmez. Özel hesap dalı ileri fazda (PR-5+) uygulanır.
R012 — OSB/EB senaryosu var mı? (Md.9(8)(9))
- Kontrol: Grup OSB/EB üzerinden beslenen tesis var işaretli mi veya bir tesis OSB/EB'ye bağlı mı? OSB/EB özel çekiş/verisi hesap dalı gerektirir.
- Ne zaman ne çıkar: OSB/EB senaryosu yoksa
not_applicable; varsapass(bilgi). Bu tespit ayrıca R003'ün tek-tedarikçi istisnasını da tetikler. - NE YAPMALI: Bilgi amaçlıdır. OSB/EB hesap dalı PR-5+ resolver'da uygulanır; ana sayaç bilgisi eksikse sonuç yaklaşık olabilir.
Bulunca ne yapmalı — özet karar tablosu
Değerlendirme sonucunda grubunuz aşağıdaki genel durumlardan birinde olur:
| Genel durum | Renk | Anlamı | İlk adımınız |
|---|---|---|---|
valid | 🟢 yeşil | Tüm blocking kurallar geçti | Hesaba hazır — bir şey yapmanıza gerek yok |
valid_with_warnings | 🟡 amber | Blocking sorun yok, ama warning fail var (örn. çoklu bölge) | Uyarıları gözden geçirin; hesap koşar, sonuç yaklaşıktır |
not_checked | ⚪ gri | Bir blocking kural doğrulanamadı (eksik beyan/veri) veya hiç anlamlı blocking değerlendirilmedi | Eksik beyanı tamamlayın (abone grubu, tedarikçi, tarife...) ve yeniden değerlendirin |
blocked | 🔴 kırmızı | En az bir blocking kural fail | Kırmızı kod(lar)ın "NE YAPMALI" adımını uygulayın; sonra yeniden değerlendirin |
Yeniden değerlendirmek için: sihirbazda 7. adıma (Önizleme) dönün ya da
POST /api/mahsuplasma/groups/{id}/evaluate çağırın. Her düzeltmeden sonra sonuç
anında güncellenir.
Bent tipleri (facility_type_code) hatırlatma
R005/R006 kuralları tesis bent tiplerine bakar. Kısaca:
| Kod | Bent | Anlamı |
|---|---|---|
m5_1_c | 5.1.c | Klasik çağrı-mektuplu YEK (≤1 MW); kurulu güç ≤ tüketim sözleşme gücü |
m5_1_cedilla | 5.1.ç | Öz-tüketim: üretim+tüketim aynı ölçüm noktasında; şebekeye verilen → bedelsiz |
m5_1_d | 5.1.d | Bakanlık verimlilik kategorisinde kojenerasyon; şebekeye verilen → bedelsiz |
m5_1_h | 5.1.h | Aynı/farklı ölçüm noktalı YEK; kurulum bölgesizliği olan tek tip |
m5_1_f / m5_1_g / m5_1_g_breve / m5_1_i_dotless / m5_1_i | 5.1.f/g/ğ/ı/i | Belediye/DSİ/sulama birliği vb. özel tesisler |
m11_1 / m11_3 | md.11/1, md.11/3 | ≤25 kW tip proje / çatı-cephe (10-yıl kapsamına dahil) |
R006 statik ihlalleri (blocking):
- 5.1.ç yalnız 5.1.h ile ilişkilenebilir (Md.6(9)) — grupta 5.1.ç ile birlikte 5.1.h dışı başka bir üretim tipi varsa ihlal.
- 5.1.ç grubuna müstakil tüketim tesisi eklenemez (Md.6(3)c) — aynı ölçüm noktası dışı bağımsız tüketim tesisi varsa ihlal.
İlgili sayfalar
- Grup Kurulum Sihirbazı — uygunluk sonucunu gösteren 7. adım (Önizleme) ve düzeltmeleri gireceğiniz adımlar.
- Limit Hesapları — R007/R00L'in gerektirdiği bedelli limit hesapları ve R010 transfer akışı.
- Sayaç Atama ve Kanal Eşleme — R003M için ana üretim sayacı atama.
- Regüle Tarifeler (Superadmin) — R00T için dönem fiyat setinin içe aktarımı ve onayı.
- Hesap Çekirdeği —
blockedgrupların bedelsiz senaryosu. - SSS ve Sorun Giderme — "grubum neden blocked?" vb.
- Teknik: Mahsuplaşma Mimarisi — Uygunluk motoru