EYDefterEmre Yakut
← tüm yazılar
Ölçüm · Sistem · derin

Isı faturası aslında nasıl hesaplanır

Apartmanda herkes kendi sayacını okutuyor. Sonra faturayı görüp “ben bu kadar yakmadım” diyor. İkisi de doğru — çünkü faturanın yarısı senin sayacından, yarısı binanın toplamından geliyor.

binanın toplam gideri — 40.000 ₺ (faturası var, kesin) sabit pay %30daire alanına göretüketim payı %70sayaçların BİRBİRİNE oranına göredaire A1.240 birimdaire B890 birimdaire C2.010 birimısı payı ölçer ENERJİ ölçmez — birimsiz bir oran üretiro oran yalnız AYNI BİNADAKİ diğer ölçerlerle kıyaslanınca anlam kazanırısı duvardan geçer · borular ısıtır · ortak alanlar ısınır → 60 sayacın toplamı ≠ binanın tüketimi

Bu işin en çok yanlış anlaşılan kısmı bu, o yüzden en baştan anlatayım.

Bir apartman kışın 40.000 TL’lik doğalgaz yakıyor. Bu rakam kesin: faturası var. Şimdi bu 40.000 TL’yi 60 daireye bölmek gerekiyor.

“Herkes sayacı kadar ödesin” diyorsun. Denersin, tutmaz. Nedenini anlamak, bu sistemin tamamını anlamak demek.

Neden tutmaz

Üç sebep var ve üçü de fiziksel:

  • Isı duvardan geçer. Sen radyatörü hiç açmasan bile üst, alt ve yan komşularından ısı alırsın. Sayacın sıfır gösterir, dairen 19 derecedir.
  • Borular ısıtır. Kazandan dairelere giden hatlar bodrumdan ve şaftlardan geçerken ısı kaybeder. O ısı kimsenin sayacında görünmez ama parası ödenmiştir.
  • Ortak alanlar ısınır. Merdiven boşluğu, giriş holü, sığınak. Kimsenin dairesi değil, herkesin gideri.

Dolayısıyla 60 sayacın toplamı, binanın gerçek tüketimine eşit değil. Sayaçlar toplam gideri değil, dairelerin birbirine göre oranını ölçer.

temel bölünme
fatura = sabit_pay + tüketim_payı

sabit pay binanın ortak giderinden düşen kısım — daire alanına göre dağıtılır. tüketim payı ise sayaçların birbirine oranına göre. Oran mevzuatla belirlenir; ısı payı ölçer kullanılan binalarda tipik dağılım %30 sabit / %70 tüketim.

Isı payı ölçer birim ölçmez

Buradaki en ters gelen şey şu: radyatörün üstündeki küçük kutu enerji ölçmüyor.

Ölçtüğü şey radyatör yüzeyi ile oda arasındaki sıcaklık farkı, zamanla çarpılmış hali. Çıkan sayının birimi yok. Bir dairede 1.240 çıkması tek başına hiçbir şey ifade etmiyor.

Anlam kazandığı tek yer binanın kendi içi:

daire A : 1.240 birim
daire B :   890 birim
daire C : 2.010 birim
…
toplam  : 74.500 birim

daire A'nın tüketim payı = 1.240 / 74.500 = %1,66

Yani bir binanın rakamını başka bir binayla kıyaslamak anlamsız. Bu, sakinlere en çok anlatmam gereken şey — ve portaldaki “bina ortalaması” kutusunun var olma sebebi.

Motorun iki fazı

Hesap tek geçişte yapılamıyor, çünkü bir dairenin payını bilmek için önce binanın toplamını bilmek gerekiyor. Motor bu yüzden iki fazlı:

FAZ 1 — topla
  her hane için:
    okuma farkı = son_okuma − ilk_okuma
    düzeltmeleri uygula   (sayaç değişimi, arıza, tahakkuk)
  bina toplamını çıkar

FAZ 2 — dağıt
  her hane için:
    tüketim payı = (hane birimi / bina toplamı) × dağıtılacak tutar
    sabit pay    = (hane alanı / bina alanı)    × sabit tutar
    muafiyet, asgari pay ve ortak alan kurallarını uygula
    fatura kalemlerini yaz

Ve sonra gerçek hayat

Yukarısı temiz hâli. Sahada bunların üstüne şunlar biniyor:

durumne yapılır
Sayaç dönem ortasında değiştiİki sayacın okumaları birleştirilir; grafikte kesinti görünmemeli
Sayaç arızalıGeçmiş dönem ortalaması ya da bina ortalaması üzerinden tahakkuk
Daire boşSıfır değil: asgari pay uygulanır (komşulardan ısı alıyor)
MuafiyetBelirli kalemlerden muaf hane, o kalemin dağıtım tabanından çıkarılır
Birden çok kazanHer kazan kendi blok grubunu besler; hesap kazan başına ayrı kurulur
Ortak alanAyrı bir “hane” gibi modellenir, payı tüm hanelere dağıtılır

Bunların her biri koda bir if olarak girmiyor — hepsi formül tanımı olarak veritabanında duruyor. Bir sitenin fatura tipi, hangi kalemlerin hangi tabana göre dağıtılacağını tarif ediyor. Yeni bir kural geldiğinde kod değişmiyor, tanım değişiyor.

En zor parça: mahsup

Bir dönem kapanıp faturalar çıktıktan sonra bir hata bulunuyor — bir sayaç yanlış okunmuş, bir daire yanlış bloğa bağlıymış.

Geçmiş dönemi yeniden hesaplayıp faturaları değiştiremezsin; o faturalar ödendi, muhasebeye girdi. Yapılan şey mahsup: farkı bir sonraki dönemin faturasına ayrı bir kalem olarak yansıtmak.

buradaki tuzak

Mahsup kaydı kaynak döneme bağlı tutulur, hedef döneme değil. Çünkü farkın tabanı o dönemin rakamlarıdır. İkisini karıştırırsan, üçüncü bir düzeltme geldiğinde hangi farkın neyin üstüne bindiğini bir daha asla çözemezsin. Bu alan sistemde “dokunma” notuyla işaretli.

Ne öğrendim

Bu motoru anlamak, bana yazılım mimarisi hakkında beklemediğim bir şey öğretti: kural ile veriyi ayırmak, mevzuatla çalışan her sistemin tek yaşama şansı.

Isı payı hesabı beş yılda birkaç kez değişti. Kod bir kez bile yeniden yazılmadı — çünkü değişen şey hiçbir zaman nasıl hesaplandığı değil, hangi oranla dağıtıldığı oldu. Biri kod, diğeri satır.

ÖlçümSistem