Her metrik için tek kanonik tanım. Rapor makaleleri bu kimliklere bağlanır; bir rapor metriği farklı hesaplıyorsa fark rapor makalesinde ve CONTRADICTIONS'ta belirtilir. Tanımlar tetikleyici ve rapor fonksiyonlarından türetildi; 'doğrulanmadı' notu olanlar GAP'tır.
| Id | Metrik | Tanım |
|---|---|---|
MET-ISLEM-HACMI |
İşlem hacmi | Dönemde kaydedilen alım-satım işlemlerinin toplam büyüklüğü. |
MET-CIRO |
Ciro | Dönem satış tutarı (para birimi bazında). |
MET-ALIS |
Alış | Müşteriden alınan mal/para (kasaya giriş). |
MET-SATIS |
Satış | Müşteriye verilen mal/para (kasadan çıkış). |
MET-NET-POZISYON |
Net pozisyon | Birim bazında stok + alacak − borç; şirketin o birimde long (+) veya short (−) olduğunu gösterir. |
MET-BAKIYE |
Bakiye | Bir cari hesabın bir birimdeki net borç/alacak durumu (tarih kesiti). |
MET-STOK |
Stok | Kasa/şubede fiziksel olarak bulunan mal miktarı (birim, adet, has). |
MET-HAS |
Has | Altın hareketinin saf altın (24 ayar) karşılığı, gram. |
MET-MALIYET |
Maliyet | Metal değeri işlem anındaki ana birim (alış) kuru ile + işçilik bileşeni (LIFO). Tarihî edinme değeri saklanmaz; ağırlıklı ortalama kodda yoktur. |
MET-KAR |
Kâr | Satış (çıkış) satırlarının Kar hesaplanan kolonunun dönem toplamı: satış değeri − günün kuruyla metal maliyeti − işçilik. |
MET-KUR-FARKI |
Kur farkı | Döviz/altın pozisyonunun kur değişiminden kaynaklanan değerleme farkı. |
MET-CARI-HACIM |
Cari hacim | Bir cari hesaba bağlanan (BakiyeId > 0) işlemlerin hacmi. |
MET-PESIN-HACIM |
Peşin hacim | Kanonik: IslemTipi = 1 (PEŞİN) işlemlerin hacmi — tetikleyicide bakiye yazımını kapatan koşul budur. BakiyeId = 0 ayrı bir ölçüttür (hesapsız işlem) ve peşinle eşdeğer değildir. |
İşlem hacmi
Id: MET-ISLEM-HACMI
Tanım: Dönemde kaydedilen alım-satım işlemlerinin toplam büyüklüğü.
Hesap: Cari.Islemler IsDeleted=0 ve IslemTuru IN (0,1,4,5) satırlarında SUM(Miktar) (birim bazında) ve USD karşılığı SUM(Tutar × Kur). Alış ve satış ayrı raporlanır; toplamı 'hacim' değildir.
Hariç: Kasa hareketleri (virman, çevir, masraf, transfer), resmi (tip ≥ 10) satırlar ayrı sayılır.
Kullanan rapor fonksiyonları: Reports.GetPozisyonDetayV2, MüşteriŞemasıD.GetPozisyonDetay, Reports.MusteriUrunHacimRaporu (GENERATED)
Double-count notu: Alış+satış toplanırsa çift; çevir iki bacak.
Ciro
Id: MET-CIRO
Tanım: Dönem satış tutarı (para birimi bazında).
Hesap: Cari.Islemler IslemTuru IN (1,5) SUM(Tutar); USD'ye çevrim işlem anı kuru ile (CiroUSD).
Hariç: Alışlar ciro değildir. İade/iptal (IsDeleted) düşer.
Kullanan rapor fonksiyonları: MüşteriŞemasıD.MusteriCiroRaporu, Report.MusteriCiroRaporu, Reports.MadenCiroRaporu
Double-count notu: Müşteri özet raporunda Net ciro toplamıdır, alış−satış değil.
Alış
Id: MET-ALIS
Tanım: Müşteriden alınan mal/para (kasaya giriş).
Hesap: IslemTuru IN (0 GİRİŞ, 4 ALIŞ); veri yalnız 0 ve 4 kullanır (0≈4).
Hariç: Şubeler arası transfer girişleri alış değildir (IslemKodu transfer).
Kullanan rapor fonksiyonları: Tüm hacim/ciro raporları
Double-count notu: 0 ile 4'ü ayrı sayma.
Satış
Id: MET-SATIS
Tanım: Müşteriye verilen mal/para (kasadan çıkış).
Hesap: IslemTuru IN (1 ÇIKIŞ, 5 SATIŞ).
Hariç: Masraf çıkışı satış değildir.
Kullanan rapor fonksiyonları: Tüm hacim/ciro raporları
Double-count notu: 1 ile 5'i ayrı sayma.
Net pozisyon
Id: MET-NET-POZISYON
Tanım: Birim bazında stok + alacak − borç; şirketin o birimde long (+) veya short (−) olduğunu gösterir.
Hesap: SUM(StokHaraketleri.Miktar) + SUM(BakiyeIslem.NetBakiye) işaretli; tarih kesiti.
Hariç: Resmi işlemler hariç; vadeli dahil/hariç fonksiyona göre (V1/V2/V3).
Kullanan rapor fonksiyonları: Pozisyon.GetOldPozisyon, Pozisyon.GetPozisyonV1–V3, MüşteriŞemasıD.GetPozisyon, Reports.ResmiPozisyon
Double-count notu: Pozisyon + bakiye toplanmaz (aynı defter).
Bakiye
Id: MET-BAKIYE
Tanım: Bir cari hesabın bir birimdeki net borç/alacak durumu (tarih kesiti).
Hesap: SUM(Cari.BakiyeIslem.NetBakiye) WHERE HesapId, BirimId, Tarih<=@T; işaret kurulum profiline göre.
Hariç: Peşin işlemler (tip 1) bakiye üretmez; resmi satırlar üretmez.
Kullanan rapor fonksiyonları: Reports.BakiyeListesi*, Bakiye.GetBakiye, ReportsV2.BakiyeDokumu
Double-count notu: Hesap iki şubede tanımlıysa şube filtresiz iki kez.
Stok
Id: MET-STOK
Tanım: Kasa/şubede fiziksel olarak bulunan mal miktarı (birim, adet, has).
Hesap: SUM(Stok.StokHaraketleri.Miktar) StokId, SubeId bazında; giriş (+) çıkış (−).
Hariç: Bolum<>0 alt hareketleri fonksiyona göre; resmi stok ayrı (ResmiStokHaraketRaporu).
Kullanan rapor fonksiyonları: Reports.MadenStokExtresi, NakitStokExtresi, MüşteriŞemasıD.GetNakitStoklari, Stok.GetStokHacimRaporu
Double-count notu: Transfer çıkış+giriş brüt iki satır, net sıfır.
Has
Id: MET-HAS
Tanım: Altın hareketinin saf altın (24 ayar) karşılığı, gram.
Hesap: Has = Miktar × Milyem / 1000 (veride AuMilyem; 0 ise 1 kabul edilir — tetikleyici satır 174). Çeşni/takoz için Stok.Takoz.AgMilyem/PltMilyem/PldMilyem ayrı.
Hariç: Gümüş/platin/paladyum has'ı altın has'ıyla toplanmaz.
Kullanan rapor fonksiyonları: Tüm maden raporları, pozisyon
Double-count notu: Miktar (brüt gram) ile has (saf gram) karıştırılırsa %8–%40 hata.
Maliyet
Id: MET-MALIYET
Tanım: Metal değeri işlem anındaki ana birim (alış) kuru ile + işçilik bileşeni (LIFO). Tarihî edinme değeri saklanmaz; ağırlıklı ortalama kodda yoktur.
Hesap: Stok.StokHaraketleri.Maliyet tetikleyicide girişte Iscilik × IscilikBirimKur (yalnız işçilik TL), çıkışta 0 [DB_OBJECT:Cari.AcceptTransaction satır 433]; Stok.GetMadenMaliyeti bu kolonu LIFO (TOP 50) toplayıp maliyet birimi kuruna böler; Bilanco.OzetBilanco aynı kolonu İŞÇİLİK kalemi olarak alır. Metal maliyeti = günün kuru (BR-MALIYET-001).
Hariç: Kur farkı maliyete girmez; Maliyet kolonu metal değerini içermez (sık yanlış okuma).
Kullanan rapor fonksiyonları: Cari.MadenKarRaporu, Reports.TakozKarRaporu, MadenStokKarRaporu, Stok.GetMadenMaliyeti
Double-count notu: CTR-SEC-MALIYET-01 (CONTRADICTIONS v3) — sözlük LIFO tanımı yalnız işçilik için geçerli.
Kâr
Id: MET-KAR
Tanım: Satış (çıkış) satırlarının Kar hesaplanan kolonunun dönem toplamı: satış değeri − günün kuruyla metal maliyeti − işçilik.
Hesap: Σ Cari.Islemler.Kar (computed) IslemKodu=1, IslemTuru=1, tip 11/12 hariç [DB_OBJECT:Cari.MadenKarRaporu]; "miktar × birim maliyet" formülü kodda yok. Bilanco.GetIKar kâr değil, defter etkisinin günün kuruyla değerlemesidir.
Hariç: Gerçekleşmemiş (stoktaki) değer artışı kâr değildir; GetIKar bu metriğe sayılmaz.
Kullanan rapor fonksiyonları: Cari.MadenKarRaporu, Report.GetVadeliKarRaporu (GetIKar: değerleme)
Double-count notu: Kâr + kur farkı ayrı gösterilir; CTR-SEC-KAR-01.
Kur farkı
Id: MET-KUR-FARKI
Tanım: Döviz/altın pozisyonunun kur değişiminden kaynaklanan değerleme farkı.
Hesap: Bilanco.GetKurFarki: pozisyon × (kapanış kuru − ortalama maliyet kuru).
Hariç: Gerçekleşen alım-satım kârı hariç.
Kullanan rapor fonksiyonları: Bilanco.GetKurFarki, Bilanco.GetIBilanco
Double-count notu: Kâr ile çift sayma.
Cari hacim
Id: MET-CARI-HACIM
Tanım: Bir cari hesaba bağlanan (BakiyeId > 0) işlemlerin hacmi.
Hesap: MET-ISLEM-HACMI filtresi + BakiyeId>0. Dikkat: BakiyeId=0 peşin demek değildir (NAKİT işlemlerde BakiyeId daima 0, yine de bakiye üretir).
Hariç: IslemTipi=1 (PEŞİN) hariç tutulacaksa ayrıca filtrelenir.
Kullanan rapor fonksiyonları: Reports.GetPozisyonDetayV2 (HesapId), MüşteriŞemasıD.GetIslemKontrolRaporu
Double-count notu: BakiyeId ölçütü ile IslemTipi ölçütü farklı kümeler verir (V2: 1.261.440 vs 318.324) — CTR-SEC-BAKIYE-01. Kurulum oranı: V2 %16 / KUYUMCU %55 (BR-DEFTER-URETIMI).
Peşin hacim
Id: MET-PESIN-HACIM
Tanım: Kanonik: IslemTipi = 1 (PEŞİN) işlemlerin hacmi — tetikleyicide bakiye yazımını kapatan koşul budur. BakiyeId = 0 ayrı bir ölçüttür (hesapsız işlem) ve peşinle eşdeğer değildir.
Hesap: MET-ISLEM-HACMI filtresi + IslemTipi=1 [DB_OBJECT:Cari.AcceptTransaction satır 445–449]. Karşılaştırma için BakiyeId=0 kümesi "hesapsız hacim" olarak ayrıca raporlanabilir.
Hariç: Cari (tip≠1) hariç. KUYUMCU kurulumunda tip 1 hiç kullanılmamış (0 satır) — orada peşin hacim tanım gereği 0; kitapçık §9.4 BakiyeId=0 ile ölçmüştür.
Kullanan rapor fonksiyonları: —
Double-count notu: V2: tip1 318.324 satır; BakiyeId=0 1.261.440 satır — ikisi toplanmaz, karıştırılmaz (CTR-SEC-BAKIYE-01).
