Mobi banka – pregled potrošnje

Jedan od mojih zadataka (u porodici) je da pratim potrošnju i u skladu sa tim planiram budžet.

Sa druge strane, moja glavna banka je Mobi banka, koja na žalost nema podršku za kategorizaciju potrošnje.

Šta će (bivši) programer uraditi? 🙂 Pa naravno – napraviti program 🙂

Ideja je jednostavna:

  1. Uraditi eksport podataka u zadatom periodu u CSV formatu
  2. Provući CSV eksport kroz python skript
  3. On će izgenerisati inicijalnu listu prodavaca sa jednom kategorijom
  4. Modifikovati listu (dodajući kategorije, grupišući prodavce i eventualno isključujući neke) i ići ponovo na (2.)
  5. Kada smo zadovoljni, sačuvati listu prodavaca za sledeće eksporte

Gornji postupak je zahtevan samo prvi put; između dva eksporta, obično je jako mali broj novih prodavaca.

Instalacija

Aplikacija je pisana u python jeziku – izuzetnim alatom za ovakve primene. Za rad programa je potreban:

  1. Sam python – python 3.6 ili noviji; predlažem najnoviju verziju sa python.org
  2. Sama aplikacija (na github-u)

Jednom kada ste instalirali python, skinite poslednju verziju (release) programa sa github-a.

Napravite folder, i raspakujte release u njega – i to bi bilo to što se tiče instalacije 🙂

Eksport podataka

Savetujem da prilikom eksporta podataka (prikazan web interfejs banke) izaberete samo RSD i samo izlaze (isplate):

Mobi banka – filtriranje transakcija za eksport

Tako će cifre biti tačne – trenutno program ne procesira tip valute (mada, ako bude zahteva, zašto da ne 🙂 )

Kada se završi generisanje transakcija (da, da, Mobi banka nije šampion brzine), izaberite CSV tip eksporta:

Mobi banka – eksport u CSV

Time je ulazni podatak (obično imena PrintList.csv) spreman – ili zapamtite stazu do njega, ili ga prebacite u folder aplikacije.

Izvršavanje programa

Ovo je jednostavno; otvorite Windows Explorer, pozicionirate se u folder gde ste raspakovali program, desni klik i “Open in Terminal” (ovo je za Windows 11):

Otvaranje CMD-a u datom folderu

Kada ste jednom u folderu, program startujete sa:

python main.py

Opcije programa

Standardne opcije se nalaze u config.ini datoteci; ako tu sve podesite (jednom, pre startovanja programa), parametri na ulaznoj liniji vam neće ni biti potrebni.

U protivnom:

usage: main.py [-h] [-i INPUT_FILE] [-o OUT_FILE] [-c DEFAULT_CAT]

Obrada transakcija u CSV formatu od Mobi banke, za bolje praćenje troškova

options:
  -h, --help            show this help message and exit
  -i INPUT_FILE, --input_file INPUT_FILE
                        Ime ulaznog CSV fajla (eksport sa banke), default je "PrintList.csv"
  -o OUT_FILE, --out_file OUT_FILE
                        Ime rezultujućeg CSV fajla, default je "Troskovi.csv"
  -c DEFAULT_CAT, --default_cat DEFAULT_CAT
                        Naziv podrazumevane kategorije, ako se ne nađe; default je "RAZNO"

Rezultat rada

Program će proći kroz PrintList.csv i generisati tri datoteke: Merchants.csv (spisak svih prodavaca na koje je naišao), Troskovi.csv i SUM_Troskovi.csv.

U prvom prolazu će svi prodavci imati podrazumevanu kategoriju (RAZNO) – editujte fajl Merchants.csv i prilagodite kategorije. Za prodavce koji počinju na isti string možete napraviti jedan slog i to će pokriti te prodavce (radi se poređenje tipa ako string počinje sa …).

(u samoj arhivi je već primer datoteke Merchants.csv iz mog eksporta; možete je promeniti ili skroz obrisati, svakako ne smeta)

Struktura Merchants.csv fajla

StartsWithTranslateToCategoryRemove
BENU PHARMACIESBENU ApotekaAPOTEKAFALSE
Struktura CSV fajla Merchants.csv
  • StartsWith – string koji se traži u nazivu prodavca, na početku naziva
  • TranslateTo – string u koji će se zameniti naziv prodavca; generička imena su ponekad ružna
  • Category – kategorija koja će se dodati u rezultujući fajl za sve prodavce koji počinju sa StartsWith
  • Remove – ako je TRUE, prodavac će biti uklonjen iz rezultujućeg fajla

SUM_Troskovi.csv

Naravno, možete uvući Troskovi.csv u Excel i da recimo pivot tabelom uradite analizu. Ali, ako želite da dobijete samo sumu za svaku kategoriju, možete koristiti SUM_Troskovi.csv – tu su apsolutne sume i procenti za svaku kategoriju, sortirane opadajuće po sumi:

Eto 🙂 Nadam se da će ovo nekom koristiti.

Reč o “filozofiji” pregleda potrošnje – ne savetujem religijski pregled potrošnje stalno i detaljno. Ovo je više da dobijete pregled gde nepredviđeno više trošite i u skladu sa tim, korigujete potrošačke navike.

Kućni budžet ili plan potrošnje (upravljanje novcem)

Jedno od mojih kućnih dužnosti je upravljanje porodičnim budžetom – nimalo lak, možda i najteži zadatak koji imam 🙂

Kako sam jako sklon da koristim digitalno u svakodnevnom životu (ponekad i prekomerno) možete samo misliti šta sve nisam probao za ovo: od knjige računa, Excel-ova, Microsoft Money programa, online budget programa / websajtova … Sve, ili barem veliki deo.

Početak je bio kao i kod svih kućnih budžeta – pokušavao sam da za svaku najsitniju kategoriju odredim koliko mogu potrošiti od mesečnog prihoda. Procena se zasnivala na istoriji i “osećaju”, i naravno, uvek je bila netačna 🙂 To je takođe zahtevalo i da pratim, vrlo pomno i uz ogroman utrošak vremena, svaki napravljeni trošak – recimo da račun iz Hipermarketa razbijem po kategorijama (o da, i to sam radio, preko godinu dana) – možete misliti koliko je to zahvalan i inspirativan posao 😉

No, iskustvo (godine) čine čuda 🙂 Od “razbij ovaj račun iz Hipermarketa po kategorijama i unesi u MS Money” sam stigao do vrlo jednostavnog Google Sheet dokumenta u kome vodim godišnji budžet.

U nedostatku boljeg izraza, ovaj način vođenja sam nazvao “plan potrošnje”.

Plan potrošnje

Kao i kod svakog finansijskog plana, i ovaj plan se svodi na jednostavnu metodologiju – ulaz / izlaz: šta se prihoduje u porodici i na šta se troši.

Opet, kao što kažu – đavo je u detaljima – svako vođenje budžeta se može tako predstaviti 🙂 sa manje ili više uspeha u realizaciji. No, da počnem sa detaljima:

Ulaz: jednostavna priča – suma svih mesečnih prihoda (= dve plate).

Izlaz je već druga priča – zastupnik sam “koverta” metodologije – na početku meseca (ili kada već novac stiže u porodicu) odvojite iznose u “koverte” po kategorijama, a ono što ostane, trošite za operativne (dnevne troškove).

Pri tom, naravno, to ne moraju da budu (i nisu) prave fizičke koverte – to su prosto samo redovi u Google Sheet-u.

Troškove delite u tri grupe prema tipu i periodičnosti potrošnje:

  1. Fiksni mesečni troškovi
  2. Troškovi na duži period (kvartalno, polugodišnje, godišnje…)
  3. Operativa (sve ostalo što nije definisano u prethodne dve stavke)

Fiksni mesečni troškovi

Prvi korak je spisak svih fiksnih mesečnih obaveza. Pri tom ne mislim na fiksni iznos, već na to da će se pojaviti svakog meseca, sa istim ili sličnim iznosom.

Primer kod nas:

  • Vrtić
  • Infostan (komunalije)
  • Struja
  • Fiksni telefon
  • Mobilni telefoni
  • Internet
  • Kablovska (D3i)
  • Mesečna štednja za ne-mesečne troškove *

Troškovi na duži period

Naravno, nisu svi troškovi mesečnog tipa; tu su i sve obaveze koje su ređe frekvencije – godišnje, polugodišnje, kvartalno …

Primer kod nas:

  • Nova godina / Božić
  • Rođendan za klince
  • Godišnjice
  • Sezonska kupovina odeće
  • Letovanje
  • Porez na stan
  • Pretplate / članarine / software
  • Registracija / tehnički / osiguranje za kola

U zavisnosti od iznosa / učestalosti, ova kategorija formira neki iznos koji treba uštedeti mesečno – to je ona “*” od fiksnih mesečnih troškova.

Topla preporuka je da taj izračunati iznos za ne-mesečne iznose držite na posebnom računu (recimo kao što je Telenor štedni račun) ili barem na računu partnera – sama činjenica da nije odmah na raspolaganju već je potrebna (makar i minimalna akcija) će vas naterati da razmislite i odustanete (nadam se 🙂 ) pre nego li posegnete za tim u nenamenske svrhe 🙂

Postupak je, odavde, očigledan:

  • na početku meseca unesete ukupan iznos para na raspolaganju (prihod plus eventualni ostatak od prošlog meseca – zelena polja)
  • izmenite / promenite iznos “fiksnih” nameta – pri tom najviše mislim na dodavanje novih ili brisanje nevažećih – sitne promene u iznosu (za Infostan, telefon i slično) nisu potrebne – u masi će to biti zanemarljivo i obično će se poništiti između raznih kategorija (svetlo crveno)
  • odvojite deo za ne-mesečne troškove (tamno crveno)
  • Markirajte svaki put kada neki od fiksnih troškova “prođe”
  • Svaki ne-mesečni trošak plaćate iz “specijalnog” računa a ne iz operative

Google Sheet ima i malecnu formulu koja daje procenu “Operative” u zavisnosti od dana u mesecu – ovo je korisno da bi pratili potrošnju i reagovali ako je preterana.

Ovaj sistem koristim godinama i izuzetno dobro me služi. Neke od prednosti koje se ne vide odmah:

  • Sama administracija je minimalna – svodi se na markiranje da je neka obaveza plaćena
    • Gledajte da što više tih mesečnih obaveza automatizujete (recimo preko trajnog naloga) – ne gubite vreme na bilo šta što mašina može da odradi za vas
  • Imate keša ako hitno / neplanirano zatreba (“specijalni račun”) – naravno, obavezni ste da rezervu vratite na potreban nivo čim vam dođe priliv
  • Ako dobro planirate, jako su male šanse da padnete u iskušenje podizanja kredita (sem za naravno dve ogromne stavke – kola i stan)
  • Ako je iznos za Operativu premali iz meseca u mesec – ili treba da povećate prihod ili da razmislite o smanjenju neke od potrošnih kategorija

Naravno, sem želje da se uštedi / kontrolišu troškovi, svakako je potrebna i disciplina i to u najmanje prvih 6 meseci – jednom kada vam to pređe u naviku, biće mnogo lakše 🙂

Da ne zaboravim, evo ga Google Sheet.

Kako je deljenje namešteno na “View”, toplo preporučujem da odmah napravite kopiju za sebe:

Sheet - Make a Copy

Sva objašnjenja sam stavio u sam dokument, ali ste vi naravno slobodni da postavite sva pitanja u komentarima 🙂

Srećno vođenje budžeta 🙂

Komentar 1: za početak, OPERATIVU možete staviti kao razliku između celog prihoda i E2 (svih mesečnih rashoda); ako bude ostajalo na kraju meseca, polako smanjujte iznos operative sve dok ne bude tu negde.