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:
- Uraditi eksport podataka u zadatom periodu u CSV formatu
- Provući CSV eksport kroz python skript
- On će izgenerisati inicijalnu listu prodavaca sa jednom kategorijom
- Modifikovati listu (dodajući kategorije, grupišući prodavce i eventualno isključujući neke) i ići ponovo na (2.)
- 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:
- Sam python – python 3.6 ili noviji; predlažem najnoviju verziju sa python.org
- 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):
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:
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):
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
StartsWith | TranslateTo | Category | Remove |
---|---|---|---|
BENU PHARMACIES | BENU Apoteka | APOTEKA | FALSE |
- 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.