Teklifi gönderdiniz. Müşterinin muhasebecisi satır toplamlarını hesap makinesiyle topladı ve aradı: “Genel toplam bir kuruş eksik.” Ya da tersi oldu: kendi hazırladığınız tabloda KDV kolonunu toplayınca alttaki KDV toplamını bulamıyorsunuz. Arattığınızda karşınıza formül dersleri ve programların yardım sayfaları çıkıyor; her biri kendi programının ne yaptığını anlatıyor. Hangi hesabın neyi koruduğunu ve teklifi hazırlayan kişinin ne yapması gerektiğini anlatan yok. Bu yazı o soruya cevap veriyor.
Kısa cevap: teklifteki kuruş farkı bir hata değil, bir tercihin sonucudur. Satırları yuvarlayıp toplarsanız basılan liste basılan toplamı verir. Önce toplayıp sonra yuvarlarsanız toplam tek seferde yuvarlanmış olur, ama müşteri belgeyi elde denetleyemez. İki hesap da meşrudur. Teklifi hazırlayan kişinin işi bu tercihi bilerek yapmak ve farkın nerede ortaya çıkacağını önceden bilmektir.
Müşteri teklifi elle topladı, bir kuruş eksik çıktı
Önce rahatlatıcı kısım: büyük olasılıkla kimse yanlış hesap yapmadı. Programınız da, müşterinin hesap makinesi de doğru çalışıyor; ikisi farklı bir soruya cevap veriyor. Kuruşlu bir para biriminde her tutar iki ondalığa yuvarlanmak zorundadır ve %20 gibi bir oranla çarpılan bir sayı nadiren tam kuruşa denk gelir. Yuvarlamanın ne zaman yapıldığına göre sonuç bir kuruş oynar.
İkinci rahatlatıcı kısım: fark kaybolmaz, bir yere konur. Ya satırlarda görünür (yuvarlanmış satırların toplamı, ayrıca hesaplanan toplamdan bir kuruş farklıdır) ya da toplamda görünür (alttaki toplam, satırların elle toplanmasından bir kuruş farklıdır). Hiçbir yöntem o kuruşu yok etmez; yalnızca hangi bakışta görüneceğini seçer. Müşterinin telefonu, farkın tam onun baktığı yerde göründüğü anlamına gelir.
Kuruş farkı tek bir yerden de çıkmaz. Aşağıda tek tek açtığımız beş karar noktası var: yuvarlamanın anı, yuvarlamanın yönü, iskontonun sırası, fiyatın KDV dahil ya da hariç girilmesi ve ödeme planındaki yüzdeler. Birini bilerek seçip diğerlerini programın varsayılanına bırakırsanız fark yine çıkar, yalnızca başka bir yerden.
Kuruş farkı nereden gelir: iki meşru hesap, iki farklı sonuç
İki hesap şunlar. Birincisi: her satırın KDV'sini hesaplayıp o satırda kuruşa yuvarlarsınız, sonra yuvarlanmış satır KDV'lerini toplarsınız. İkincisi: satırların matrahlarını toplarsınız, toplam matrahın KDV'sini bir kez hesaplar ve bir kez yuvarlarsınız. Aradaki farkın matematikteki adı basittir: yuvarlanmış sayıların toplamı, toplamın yuvarlanmışına eşit olmak zorunda değildir. Her satırda eklenen ya da atılan küçük kırıntılar birikir ve yeterince satırda bir kuruşu geçer.
Örnek: aynı üç satır, iki farklı toplam
Üç satır, hepsi %20 KDV'li. Her satırın KDV'si satırda yuvarlanıyor:
| Satır | Matrah | KDV %20 (tam) | KDV (satırda yuvarlanmış) | Satır toplamı |
|---|---|---|---|---|
| 1 | 10,13 | 2,026 | 2,03 | 12,16 |
| 2 | 20,13 | 4,026 | 4,03 | 24,16 |
| 3 | 30,13 | 6,026 | 6,03 | 36,16 |
| Toplam | 60,39 | 12,078 | 12,09 | 72,48 |
Önce toplayıp sonra yuvarlarsanız: 60,39 × %20 = 12,078 → 12,08 ve genel toplam 72,47 olur. Fark bir kuruştur. Satır toplamlarını elle toplayan müşteri 72,48 bulur; belgenin altında 72,47 yazıyorsa aradığı kuruş budur. Ne oldu? Her satırda 0,004'lük bir yukarı yuvarlama yapıldı; üç satırda 0,012 birikti. Tek seferlik yuvarlamada bu birikim yoktur, toplam yalnızca 0,002 yukarı yuvarlanır.
Matrah da yuvarlanır: “brüt − iskonto” satırı neden tutmalı
Aynı olay KDV'den önce, matrahta da yaşanır. Satırda iskonto varsa belgede üç sayı basılır: brüt tutar, iskonto ve matrah. Örnek: 1,5 kg × 6,67 = 10,005 → brüt 10,01; %5 iskonto 0,50025 → 0,50. Matrahı tam hassasiyetle hesaplayıp ayrıca yuvarlarsanız 9,50475 → 9,50 çıkar. Oysa kâğıtta 10,01 − 0,50 yazıyor ve bu 9,51 eder. Belge “brüt eksi iskonto eşittir matrah” diyorsa bu eşitlik basılan sayılarla tutmalıdır. Bunun yolu, matrahı ayrıca yuvarlamak yerine basılan brütten basılan iskontoyu çıkararak bulmaktır. Round(a − b) ile Round(a) − Round(b) arasındaki bir kuruşluk fark tam olarak budur.
Çok para birimli tekliflerde aynı ilke bir adım daha uzar. Satırlar, kurun teklife dondurulması yazısında anlattığımız gibi teklife dondurulmuş kurla belge para birimine çevrilir; her satır çevrildikten sonra yuvarlanır ve toplamlar bu yuvarlanmış sayılardan kurulur. Çevrilmiş tutarlar da “basılan satırlar basılan toplamı verir” kuralına tabidir.
Hangi değişmezi seçiyorsunuz: göz denetimi mi, tek seferde yuvarlanmış toplam mı?
İki hesap da savunulabilir. Doğru soru “hangisi doğru” değil, hangi eşitliğin her zaman tutmasını istiyorsunuz?
- Satırda yuvarlama şu eşitliği korur: basılan satırların toplamı basılan toplamı verir. Müşteri belgeyi hesap makinesiyle denetleyebilir; belgedeki her sayı, belgede yazan başka sayılardan elde edilebilir. Bedeli: belge KDV'si, toplam matrah ile oranın çarpımından bir kuruş ayrışabilir.
- Toplamda yuvarlama şu eşitliği korur: toplam KDV = toplam matrah × oran. Belge tek bir çarpımla kontrol edilebilir. Bedeli: satırlarda KDV gösterirseniz satırların toplamı alttaki tutarı vermez; göstermezseniz müşteri satır düzeyinde hiçbir şeyi denetleyemez.
Teklif masasında terazi çoğu zaman göz denetiminden yana ağır basar, çünkü teklifi okuyan kişi bir denetçi değil, alıcıdır ve elindeki araç hesap makinesidir. Bir kuruşluk tutarsızlık parasal olarak önemsizdir ama güven açısından değildir: “bu belgede bir şey tutmuyor” duygusu fiyat konuşmasının önüne geçer. Yine de bu evrensel bir kural değildir. Muhasebe düzeniniz ya da müşterinizin sistemi toplam üzerinden hesabı bekliyorsa o eşitliği seçmek de meşrudur. Önemli olan seçimi bilerek yapmak ve telefon geldiğinde tek cümleyle açıklayabilmektir: “KDV satırlarda yuvarlanıyor, toplam da onların toplamı.”
Teklifi bir hesap tablosunda hazırlıyorsanız tuzak bir kat daha derindedir. Hücre biçimini iki ondalığa ayarlamak sayıyı yalnızca görünüşte yuvarlar: hücrede 2,026 durmaya devam eder ve TOPLA, ekranda görünen 2,03'leri değil saklanan 2,026'ları toplar. Sonuç: KDV kolonu ekranda 2,03 + 4,03 + 6,03 gösterir ama alttaki toplam 12,08 çıkar. Satırda yuvarlamayı seçtiyseniz her satırın KDV formülünü YUVARLA(...; 2) içine almanız gerekir; ancak o zaman toplam, görünen sayıların toplamı olur.
Yuvarlama yönü de bir karardır: 0,005 nereye gider?
Satırda mı toplamda mı sorusunu cevapladıktan sonra daha sessiz bir karar kalır: tam ortadaki değer nereye gider? %10 KDV'li 12,25'lik bir matrahın vergisi 1,225'tir. Elde hesapta kullandığımız yöntem, yani yarıyı yukarı yuvarlamak, 1,23 verir. Bankacı yuvarlaması denen yöntem ise yarıları en yakın çift basamağa gönderir ve 1,22 verir.
Bankacı yuvarlaması bir hata değildir; çok sayıda işlemde yukarı ve aşağı yuvarlamalar birbirini dengelesin diye tasarlanmıştır ve bazı programlama dillerinin ve kütüphanelerin varsayılanıdır. Sorun, varsayılanın sizin beklentiniz olmayabilmesidir: müşterinin hesap makinesi yarıyı yukarı yuvarlar ve sonuç yine bir kuruş ayrışır. Kullandığınız aracın hangisini yaptığını bir kez, bilinen bir örnekle (12,25 × %10 gibi) denemek yeterlidir.
KDV dahil fiyatla çalışıyorsanız ikinci bir yuvarlama noktası var
Fiyatı KDV dahil veriyorsanız matrah fiyatın içinden geri çıkarılır: fiyat ÷ (1 + oran). Bu bölme de nadiren tam kuruşa denk gelir. Örnek, %20 KDV: KDV dahil birim fiyat 10,05, miktar 1. Matrah 10,05 ÷ 1,20 = 8,375 → 8,38; KDV 8,375 × 0,20 = 1,675 → 1,68; matrah + KDV = 10,06. Siz 10,05 yazdınız, belge 10,06 topluyor. Bu genel bir aritmetik örneğidir: matrah ile KDV'nin ayrı ayrı yuvarlandığı her hesapta ortaya çıkabilir.
Bu sapmayı bedelsiz ortadan kaldıran bir yol yoktur. KDV'yi dahil fiyattan farkla bulursanız (10,05 − 8,38 = 1,67) toplam girdiğiniz fiyatı tutar, ama bu kez KDV, matrah × oranla bir kuruş ayrışır. Hangisini koruyacağınız yine bir tercihtir. Burada yalnız aritmetikten söz ediyoruz; fiyatların hangi esasta verildiğini belgede nasıl göstereceğiniz aşağıdaki bölümün konusu.
İskontoyu nereye koyarsanız matrah değişir
Üçüncü kaynak iskontonun sırasıdır ve burada fark kuruşla sınırlı kalmayabilir. Sağlıklı sıra şudur: önce satır iskontosu, sonra belge iskontosu, sonra matrah, sonra KDV, en son toplam. KDV, iskonto düşüldükten sonra kalan tutar üzerinden hesaplanır. GİB'in e-Fatura formatı da matrahı bu sırayla tarif eder: kılavuz, vergiler hariç tutar alanı (TaxExclusiveAmount) için “Vergiler hariç, iskonto veya artırım dahil toplam tutar girilir. (Vergi Matrahı)” der.
Belge iskontosunu KDV'den sonra, KDV dahil genel toplamdan düşmek pratikte görülen bir kestirmedir ve matrahı şişirir: KDV, indirimden önceki daha büyük tutar üzerinden hesaplanmış olur. Müşteri indirim aldığını görür ama belgedeki KDV indirimsiz fiyatın KDV'sidir.
Teklifte farklı KDV oranlı satırlar varsa belge iskontosu tek bir rakam olarak düşülemez: hangi oranın matrahından düştüğü belirsiz kalır ve oran bazlı KDV dağılımı yanlış çıkar. Çözüm, belge iskontosunu satırlara tutarlarıyla orantılı dağıtmaktır. Her satır kendi payını alır; matrahı ve KDV'si o pay düşüldükten sonra hesaplanır. Bu dağıtım da her satırda yuvarlanan yeni bir sayı üretir, yani bir kuruşun daha oynayabileceği bir nokta.
İskontonun bir de onay tarafı var: iskontonun onay eşiğinde nasıl ölçüldüğü ayrı bir yazının konusu.
Belgeyi denetlenebilir yapan üç şey: KDV dağılımı, KDV esası notu, kolon başlığı
Yuvarlama tercihlerinizi yaptıktan sonra geriye müşterinin bunları belgeden okuyabilmesi kalır. Üç küçük şey bir teklifi elde denetlenebilir yapar.
- Oran oran KDV dağılımı. Toplamların altında her oran için ayrı bir satır: matrah ve vergi. %20'lik ve %10'luk satırların karıştığı bir teklifte tek bir KDV satırı, müşterinin hangi tutarın hangi oranla vergilendiğini görmesini engeller. Dağılım satırları da yuvarlanmış satırların toplamı olmalıdır ki kendi içinde tutsun.
- KDV esası notu. Toplamların altında tek cümle: “Birim fiyatlara KDV dahil değildir.” ya da “Birim fiyatlara KDV dahildir.” Aynı satırlar KDV hariç girildiğinde bir, dahil girildiğinde başka bir genel toplam verir; esası söylemeyen bir belgeyi iki okur iki farklı şekilde toplar.
- Kolon başlığı. Tutar kolonu yalnızca “Tutar” derse kimi okur onu KDV dahil, kimi hariç sanır ve ikisi arasında %20 fark vardır. “Tutar (KDV hariç)” gibi bir başlık, müşterinin miktar × birim fiyat − iskonto hesabını hesap makinesiyle yapıp kolondaki sayıyı bulmasını sağlar.
Bu düzen faturada zaten beklenen düzendir. GİB'in UBL-TR Fatura kılavuzunda vergi toplamı elemanı (TaxTotal) zorunludur ve birden çok kez yer alabilir (1..n); vergi belgede ayrıştırılmış olarak taşınır. Teklifi baştan aynı düzenle hazırlamak, faturaya geçerken sürpriz çıkmasını önler.
Ödeme planındaki yüzdeler: artığı son satır üstlenir
Son kaynak, çoğu zaman en son akla gelendir. Genel toplamı 1.000,01 olan bir teklifte ödeme planı %30 / %40 / %30 olsun. Her yüzde ayrı ayrı yuvarlanırsa plan genel toplamı tutmaz:
| Plan satırı | Tam tutar | Her biri ayrı yuvarlanırsa | Artığı son satır üstlenirse |
|---|---|---|---|
| %30 | 300,003 | 300,00 | 300,00 |
| %40 | 400,004 | 400,00 | 400,00 |
| %30 | 300,003 | 300,00 | 300,01 |
| Toplam | 1.000,01 | 1.000,00 | 1.000,01 |
Ayrı ayrı yuvarlanan plan 1.000,00 eder; bir kuruş, ne genel toplamda ne planda, hiçbir yerde yoktur. Çözüm, son satırı yüzdeyle değil farkla hesaplamaktır: genel toplamdan önceki satırların toplamı çıkarılır ve son satır 300,01 olur. Hangi satırın artığı üstleneceği de bir tercihtir; son satırın avantajı en kolay açıklanan olmasıdır, çünkü “kalan tutar” zaten son ödemenin doğal adıdır.
Ödeme planının kendisi bu yazının konusu değil; proformadaki ödeme planı ve diğer alanlar ayrı bir yazıda anlatıldı.
Fark faturaya taşınırsa: yuvarlama gizlenmez, yazılır
Teklif mali belge değildir; teklifteki kuruş farkı bir güven meselesidir, vergi meselesi değil. Kabul edilen teklif faturaya dönüştüğünde ise fark beyan edilen bir sayıya dönüşür. Burada iki şeyi bilmek yeterli.
Birincisi: e-Fatura formatı yuvarlamayı saklamak yerine yazmak için yer ayırır. GİB'in UBL-TR kılavuzlarında parasal toplamlar elemanında (MonetaryTotal) PayableRoundingAmount adlı bir alan vardır; tanımı “Yuvarlama tutarı girilir.” şeklindedir ve alan seçimlidir (0..1). Aynı elemanda satır tutarları toplamı (LineExtensionAmount), vergiler hariç tutar (TaxExclusiveAmount), vergiler dahil tutar (TaxInclusiveAmount) ve ödenecek tutar (PayableAmount) zorunludur (GİB, UBL-TR 1.2.1 kılavuzları — Ortak Elemanlar, 2.2.37 MonetaryTotal).
İkincisi: bu bir format bilgisidir, hüküm değildir. Kılavuz, yuvarlama tutarının nereye yazılacağını gösterir; faturada satır mı toplam mı yuvarlanacağına ya da o alanın hangi durumda kullanılacağına dair bir yorum yapmaz. O kararı faturayı düzenleyen sisteminiz ve mali müşaviriniz verir; bu yazı bir mevzuat yorumu değildir.
Pratik sonuç şu: teklifte yaptığınız yuvarlama tercihini faturayı düzenleyen kişiye söyleyin. Teklif satırda yuvarladıysa ve fatura toplamda yuvarlıyorsa, müşteri kabul ettiği belgeyle aldığı belge arasında bir kuruş bulur. Bu kez telefon muhasebeye gelir.
Biz bu tarafta ne yapıyoruz, ne yapmıyoruz
Smartifie Quote'ta teklif aritmetiği tek bir yerde durur: ekranın gösterdiği, PDF'in bastığı ve kaydedilen tutarlar aynı hesaptan gelir. Bu yazıdaki kararları şöyle verdik:
- Yuvarlama anı: hesap boyunca tam hassasiyet korunur, yalnız gösterilen ve saklanan değer yuvarlanır. Belge KDV'si, yuvarlanmış satır KDV'lerinin toplamıdır; basılan satırlar basılan toplamı verir.
- Matrah: yuvarlanmış parçalardan türetilir (brüt − satır iskontosu − belge iskontosu payı), ayrıca yuvarlanmaz; basılan “brüt − iskonto” basılan matrahı tutar.
- Yön: yarı, sıfırdan uzağa yuvarlanır (0,005 yukarı); elde hesapla uyuşan muhasebe geleneği budur. Bankacı yuvarlaması kullanılmaz.
- İskonto sırası: satır iskontosu → belge iskontosu (satırlara oransal dağıtılır) → matrah → KDV → toplam.
- Birden çok para birimi: her satır teklife dondurulmuş kurla belge para birimine çevrilir ve satır satır yuvarlanır; “ara toplam − iskontolar = matrah” ve “matrah + KDV = genel toplam” eşitlikleri birebir tutar.
- Belge: toplamların altında oran bazlı KDV dağılımı basılır (varsayılan olarak açık; kapatırsanız KDV tek satır olarak görünür, gizlenmez). “Birim fiyatlara KDV dahil değildir.” ya da “…dahildir.” notu her belgede yer alır ve Tutar kolonu KDV esasını başlığında söyler.
- KDV oranı: satırın oranı şirketinizin izinli oran listesinden seçilir (varsayılan 0, 1, 10, 20); listede olmayan bir oran işaretlenir ve teklif kaydedilmez.
- Ödeme planı: yüzdeler tutara çevrilirken artığı son satır üstlenir; plan genel toplamı kuruşu kuruşuna verir.
- Kuruşsuz para birimleri (JPY, KRW, CLP, ISK, VND) sıfır ondalıkla basılır.
Yapmadıklarımızı da açık yazalım. Yuvarlama yöntemi ve ondalık sayısı bir ayar değildir; yukarıdaki kararlar sabittir. Ayarlanabilen şeyler fiyatların KDV dahil ya da hariç girilmesi, varsayılan KDV oranı, izinli oran listesi ve KDV dağılımının görünürlüğüdür. Kuruş farkının hiç çıkmayacağını da söylemiyoruz: KDV dahil fiyatla çalışıyorsanız, yukarıda anlatılan nedenle genel toplam girdiğiniz dahil fiyattan bir kuruş ayrışabilir. Söz verdiğimiz şey basılan satırların basılan toplamı vermesi ve KDV esasının belgede yazılı olmasıdır. Ve ürün fatura üretmez: teklif mali belge değildir, fatura ve e-Fatura ayrı bir dünyadır. Yukarıdaki format bilgisi o dünyaya dair bir nottur, ürünün bir özelliği değil.
Kapanış tek cümlede: kuruş farkı bir hata değil, bir tercihtir. Tercihi bilerek yapın, belgeye yazın ve farkın nerede çıkacağını telefon gelmeden bilin.