15 yıl muhasebe · aynı masada yazılım

Kaydı tutan sistem: bugüne kadar neler kurdum

Muhasebedeki işi gördüm, sonra o işi yapan yazılımı kendim yazdım.

15 yıl enerji, madencilik, otomotiv, üretim ve akaryakıt şirketlerinde muhasebenin başında en çok zaman alan ve en çok hata çıkaran işlerle uğraştım. Bu sayfada o işlerden kurduğum sistemlerin hepsi var: ne yapıldığı, veride ne bulunduğu ve sonucun ne olduğu. Şirket adı vermiyorum; sektör ve rakam yeterince anlatıyor.

Fark nerede

Aynı iş, iki farklı kurulumda. Soldaki çoğu şirkette bugün yaşanıyor; sağdaki, kurduğum sistemlerde her gün çalışıyor.

İşAlışılmış yol Kurduğum sistemde
Fatura girişiEleman faturayı açıp elle giriyorFatura kendiliğinden kayda dönüşüyor
Yönetim raporuBirkaç gün sonra, Excel'de geliyorHer sabah hazır, e-postada
Fiyat, vade, KDV farkıDönem sonunda, mutabakatta bulunuyorAynı gün, ödemeden önce bildiriliyor
BütçeYılda bir açılan Excel dosyasıFiili rakamla yan yana, günlük ekranda
Ürün kârlılığıAlış–satış farkıNakliye payı ve vade maliyeti düşülmüş gerçek kâr
Yöneticinin sorusuMuhasebeye iletilip bekleniyorTürkçe yazılıyor, cevap tablo olarak geliyor

Muhasebe ve finans tarafında yaptıklarım

Asıl işim muhasebe. Aşağıdakilerin hepsi bir mali tablonun, bir bütçenin ya da bir maliyet hesabının içinde başladı; yazılım yalnız sonuca giden yol.

Mizandan mali teşhis panosu

Bir bayilik şirketinin mizanı 23 sayfalık bir yönetim panosuna dönüştü: likidite, borç–alacak yapısı, gelir tablosu, oranlar ve dönem karşılaştırması. Yeni mizan yüklendiğinde pano kendini yeniden kuruyor.

Ne çıktı: Mizanın miktar sütunlarından birim alış ve birim satış fiyatı çıkarıldı: mal, adet başına alış fiyatının altında satılıyordu. Kâr maldan değil üretici priminden geliyordu; prim düşerse kâr sıfırlanıyordu. Oran tablosu bunu göstermiyordu.

Sonuç: Yönetimin önüne tek satırlık, rakamla kanıtlı bir risk kondu.

Veri eksikse rapor “veri yok” der

Aynı panoya bir bütünlük kapısı kondu: satılan malın maliyeti kaydı yoksa brüt kâr ve stok devir hızı hesaplanmıyor, tahmin de edilmiyor. Maliyetsiz dönem sonucu “SMM öncesi” etiketiyle basılıyor.

Sonuç: Maliyet girildiğinde zarara dönecek bir tablo, kâr gibi sunulmuyor.

İki şirketin banka hareketlerinden konsolide nakit akışı

İhracat yapan iki şirketin banka ekstreleri ile elle tutulan mahsuplaşma defterleri tek tabloda birleşti: 1.200 ödeme, 355 tahsilat, döviz çevrimleriyle birlikte. Her satır hangi dosyanın hangi satırından geldiğini taşıyor.

Ne çıktı: Elle tutulan defterde her tahsilat bloğunun altında ara toplam satırları vardı (271 satır). Ayıklanmasa giderler iki kez sayılacaktı. Kapanmış bir kalemin iki ayrı yerde basıldığı da bu izden yakalandı.

Sonuç: Konsolide rakamın her kalemi kaynağına geri izlenebiliyor.

105 sayfalık Excel bütçesi ekrana taşındı

Satış, üretim, satınalma ve gider bütçeleri tek modülde toplandı. Bütçe rakamı girilir, fiili rakam ERP'den canlı okunur; sapma kalem kalem görünür.

Ne çıktı: Excel'de bütçe–gerçekleşme karşılaştırması hiç yoktu. Muhasebede karşılığı bulunmayan 53 gider kalemi uydurma bir eşleştirmeyle kapatılmadı, “bütçeye özel kalem” olarak ayrı tutuldu.

Sonuç: Bütçe yılda bir açılan dosya olmaktan çıkıp gün gün izlenen bir ekrana dönüştü.

Stok değerleme: gerçek envanter ile şişmiş envanter

Anlık stok bakiyesi, günlük giriş–çıkış ve ürün bazında ağırlıklı alış ortalaması tek ekranda, tarih ve ürün süzgeçleriyle.

Ne çıktı: Banka komisyonu, reklam ve paketleme işçiliği gibi gider faturaları stok kartından geçiyordu; ilk ölçümde envanterin en büyük kalemi “banka komisyonu” çıktı. Müşteri iadesi ve sayım fazlası satış fiyatını taşıdığı için alış ortalamasını 4-5 kat şişiriyordu. İkisi de ayıklandı.

Sonuç: Envanter değeri gider kartlarından ve iade fiyatından arındırılmış hâliyle görünüyor.

Ürün kârlılığı: formülün içine saklanmış fiyat

Karma kutu satan bir şirketin 293 kutuluk maliyet çalışması bir senaryo simülatörüne dönüştü. Maliyet oranı tavanı, müşteriye görünen indirim ve koli ağırlığı aynı anda deneniyor.

Ne çıktı: Excel'deki “tutar” sütunu kutunun satış fiyatı değil, içeriğin perakende değeriydi; gerçek fiyat formülün içinde sabit olarak duruyordu. Doğru fiyatla medyan marj %73,8 değil %63,7 çıktı ve kutuların %55'i şirketin kendi maliyet tavanını aşıyordu.

Sonuç: Fiyat kararı, 10 puan şişmiş bir marja göre değil gerçek marja göre veriliyor.

Canlı maliyetle teklif hazırlama

Ürün seçildiğinde mal maliyeti, ambalaj ve etiketin son alış faturasından birim maliyeti, işçilik ve nakliye kendiliğinden geliyor. Taban, teklif ve hedef fiyat senaryoları marjıyla birlikte aynı ekranda.

Sonuç: Teklif fiyatı geçen yılın maliyetiyle değil, bugünkü maliyetle veriliyor.

Ambalaj emniyet stoğu ve tedarikçi nakdi

Sezon planı, sipariş takvimi ve tedarikçiye ödenecek nakit tek sayfada. Talep, geçen yılın aynı ayındaki gerçek sarftan kuruluyor.

Ne çıktı: Depolar arası transfer ve yıl sonu sayım devri de stok hareketi olduğu için ham veri tüketimi 5-10 kat büyük gösteriyordu; bir kalemde 15.187 görünen gerçek sarf 263'tü. Tedarikçinin fiilî ödeme vadesi faturalardan ölçüldü: medyan 64 gün.

Sonuç: Ambalaj sezon ortasında bitmiyor, ödeme tarihi önceden biliniyor.

Müstahsil makbuzu için veri formu

Üreticiden alınan bilgiler vergi mevzuatının istediği alanlarla toplanıyor. TCKN, VKN ve IBAN algoritmayla denetleniyor, aynı kişi ikinci kez kaydedilemiyor, kayıtlar Excel'e aktarılıyor. Kurulum gerektirmeyen tek dosyalık bir Windows uygulaması.

Sonuç: Makbuz kesilirken eksik ya da hatalı kimlik bilgisiyle geri dönülmüyor.

Yazılım ve otomasyon tarafında kurduklarım

Hepsi mevcut ERP'nin yanında çalışıyor, hiçbiri programı değiştirmeyi gerektirmedi. Nasıl bağlandığını buradan okuyabilirsiniz.

Power BI raporunun yerini alan yönetim portalı

Günlük, aylık ve yıllık satış, bölge, kargo, bütçe, stok ve teklif sayfaları tek portalda. ERP veritabanına salt okunur bağlanıyor; iki katmanlı giriş ve iki adımlı doğrulama, sayfa bazında yetki, her işlemin kaydı var. Özet rakamlar telefonun ana ekranında da görünüyor.

Sonuç: Lisanslı rapor aracına bağımlılık kalktı; veri şirketin kendi sunucusunda kalıyor.

Türkçe soru sorulan rapor asistanı

“Bu ay en çok hangi müşteriden alacağımız var?” diye yazılan soru, canlı muhasebe verisinden tabloya dönüşüyor. Yapay zekâ modeli şirketin kendi makinesinde çalışıyor; belge ve rakam dışarı gönderilmiyor.

Ne çıktı: Model çok koşullu sorularda bir koşulu sessizce düşürebiliyor: tek bir ürün için on binlerce adet çıkan bir cevap böyle yakalandı. Bu yüzden cevabın yanında üretilen sorgu da gösteriliyor, filtre gözle doğrulanabiliyor.

Sonuç: Yönetici rapor için muhasebeyi beklemiyor; cevabın neye dayandığını da görüyor.

Kendi kendini izleyen nöbetçiler

Saatte bir çalışan küçük programlar. Biri telafi siparişlerini tarıyor: aynı telefon numarası farklı bir e-postayla açılmış ve indirimli abonelik almış bir hesapta da varsa haber veriyor. Diğerleri kargo takip numarası gelmeyen siparişleri, düşen veri köprülerini ve duran raporları izliyor.

Ne çıktı: Telafi kuralı tüm geçmişte yalnız 20 siparişi işaretliyor; ayda bir uyarı demek. Uyarı az geldiği için ciddiye alınıyor.

Sonuç: Kural çağrı merkezine ezberletilmedi, nöbetçiye bağlandı; kimse hatırlamak zorunda değil.

Depodaki ekran donmasının kök nedeni

Barkod okutulduğunda el terminali 10-16 saniye donuyordu. İstasyonda saniyede iki kez, veritabanında üç saniyede bir ölçüm alındı.

Ne çıktı: Yirmi dakikalık ölçümde 46 donma, toplam 214 saniye çıktı — sürenin %35'i. Her okutmada stok bakiyesi, yetki süzgeçli bir görünüm üzerinden baştan hesaplanıyordu.

Sonuç: Tahminle “sunucu yavaş” denmedi; sorun ölçümle tek bir sorguya indirildi.

Fatura girişini üstlenen aktarım motoru

Gelen e-fatura portaldan kendiliğinden çekiliyor; cari, malzeme ve muhasebe hesabı geçmiş kayıtlardan bulunuyor ve kayıt ERP'de açılıyor.

Ne çıktı: 10 faturanın 9,5'i doğru eşleşiyor; emin olunamayan fatura kaydedilmeden önce önünüze konuyor.

Sonuç: Elle fatura girişi neredeyse bitti.

Bu site

Sayfalar günde dört kez kendiliğinden yeniden üretiliyor; gündem, kurduğum haber hattından geliyor. Siteden hiçbir üçüncü tarafa istek gitmiyor, her sayfanın kendi güvenlik politikası üretim anında hesaplanıyor.

Sonuç: Kanıt uzakta değil: şu an okuduğunuz sayfa bu hattın çıktısı.

Yayındaki uygulamalar

Yazdığım yazılımın bir kısmı şirket içinde değil, herkesin elinde. App Store'da 7 uygulama yayında; soru bankalarındaki her açıklamanın aritmetiği, yapay zekânın ayıkladığı işlemin programla yeniden hesaplanmasıyla denetleniyor. Çıkmış sorular ve çözümleri de web'de ücretsiz.

Çalışma ilkeleri

Yukarıdaki bulguların neredeyse hepsi bu kurallardan birine takılınca ortaya çıktı.

Sayının tutması tanımın doğru olduğunu göstermezBir rakam beklenen sonuca denk geldi diye sorgu doğru sayılmaz; önce sistemin o rakamı nasıl tanımladığı bulunur.
Veri yoksa tahmin yazılmazEksik veriyle üretilen “kâr” müşteriye yanlış rapor demektir; ekranda “veri yok” yazar.
Her rakam kaynağına geri izlenirKonsolide tablodaki her satır hangi dosyanın hangi satırından geldiğini taşır.
Yalnız sapma bildirilirHer şey yolundaysa e-posta gelmez. Gürültü yapmayan sistem, uyardığında dinlenir.
Yapay zekâ ayıklar, hesabı kod yaparModel metinden işlemi çıkarır; toplamı program doğrular. Sayı uydurma riski böyle kapanır.
Salt okunur bağlantı, şirket içi veriSistemler ERP'ye yalnız okumak için bağlanır; veri şirketin sunucusundan çıkmaz.

Kullandığım araçlar

  • SQL Server
  • Python
  • Node.js
  • Go
  • Swift / SwiftUI
  • Flutter
  • Şirket içi yapay zekâ modelleri
  • Zamanlanmış işler ve e-posta bildirimi
  • Logo, Netsis, Canias ve benzeri ERP'ler
  • e-Fatura / e-Arşiv / e-Defter
Soru sor