Package: lazy-budget
Lazy finance (lbud for "lazy budget")lbudaims to help building an easy, data-driven budget solution for personal use.For examples of data, seeexample-data/.Setuppython3.9-mpipinstalllazy-budgetWorkflowlbudworks in a very specific way: you declarethe budgeting period (start and end date)how much money do you have (as of the first day of the budgeting period),how much do you wanna save (as of the last day of budgeting period),your financial operations.Provided with the data described above,lbudallows you to see certain statistics over time, answers to these questions:How much more money can I actually spend today?How much money do I spend daily on average?When I spend too much money, for how many days should I limit my spendings to keep the money I set out to keep?To start usinglbudto manage your budget,
you will need to create and
maintain at least 2 text files.Budget filebudget.ymlis a YAML file that describes a single budgeting period. It is advised to keep the period short, but i am surelbudcan handle however long budgets. Example:# total amount of money to usetotal:2000# the part of the total# that you aim to keep this monthkeep:1500# budgeting periodstart:2021-04-25end:2021-05-10# currency is optional# USD is the default and# the operations themselves can# specify the currency (lbud add "-10 CAD" taxi), as well# as the config file and CLI optionscurrency:USDHistory filehistory.csvis a CSV file that lists all of your financial operations. You may have one history file for all your budgets, history is filtered by budget period when performing calculations.
It has to have following columns:money_value- operation value; may include a currency in multi-currency setups, format:-10.99 CAD;description- operation description; may include category, format:[category] description;dttm- operation date and time, ISO format.Example:-10,[food] snacks,2021-04-26T00:00:00
-1.95,[food] bubblegum,2021-04-27T17:20:31
-9.95,[food] hot dog,2021-04-27T00:00:00
-3.33,donation,2021-04-28T00:00:00
-30,[medicine] cardiologist,2021-04-29T00:00:00Use oflbudon example files$lbudlstoday:2021-05-01totaldays:16daysleft:9available/day:$31.25CANspendtoday:$163.52spenttoday:$0.00avgspent/day:$7.89kept:$1,663.52

$lbudadd-200"club night"$cathistory.csv# added operation to history file-10,[food]snacks,2021-04-26T00:00:00
-1.95,[food]bubblegum,2021-04-27T17:20:31
-9.95,[food]hotdog,2021-04-27T00:00:00
-3.33,donation,2021-04-28T00:00:00
-30,[medicine]cardiologist,2021-04-29T00:00:00
-200,clubnight,2021-05-01T00:00:00

$lbudlstoday:2021-05-01totaldays:16daysleft:9daysuntilcanspend:2available/day:$31.25CANNOTspendtoday:$36.48spenttoday:$200.00avgspent/day:$36.46kept:$1,463.52

$lbudcatsmedicine:-30,00USDfood:-21,90USD<nocategory>:-3,33USDChartsBurndown chartProvides a bird's eye view of how things are going with the budget.$ lbud bdCategory chartAllows to determine how much money was spent/earned by which category.$ lbud catcCLI helpNote: all the defaults can be pulled from a config file at~/.lbudrc.yml.
To override the location, specifyLBUDRCenvironment variable.usage: main.py [-h] [-f HISTORY_FILE] [-c BUDGET_FILE] [-L LOCALE] [-C CURRENCY] [-t TODAY] {add,a,new,n,list-stats,ls,now,today,list,stats,s,get,burndown,bd,categories,cats,category-chart,catsc,catc,cat-chart} ...

positional arguments:
  {add,a,new,n,list-stats,ls,now,today,list,stats,s,get,burndown,bd,categories,cats,category-chart,catsc,catc,cat-chart}
                        budget operation to perform
    add (a, new, n)     add a new financial operation
    list-stats (ls, now, today, list, stats, s, get)
                        list statistics
    burndown (bd)       shows a burndown chart of the budget
    categories (cats)   display money flow by category
    category-chart (catsc, catc, cat-chart)
                        display money flow by category in a chart

optional arguments:
  -h, --help            show this help message and exit
  -f HISTORY_FILE, --history-file HISTORY_FILE
                        history file to use (default is /Users/oleksandr/finance/history.csv)
  -c BUDGET_FILE, --budget-file BUDGET_FILE
                        budget file to use (default is /Users/oleksandr/finance/budget.yml)
  -L LOCALE, --locale LOCALE
                        locale to use (default is pl_PL)
  -C CURRENCY, --currency CURRENCY
                        default currency to use in uncertain situations (default is PLN)
  -t TODAY, --today TODAY
                        a date used as "today" during stats, useful for seeing old budget infoWeird configuration stuffThere is a lot of configuration options tolbud(CLI arguments, config file, the defaults)
and since it was tested and used
in a very specific way, it might not work for you.Feel free tosubmit a ticketor a pull request (idk if it works, i'm new to this open source thing, please post a ticket about it too).Posting the way it is actively being used for clarity:budget/history files at~/finances/config file at~/.lbudrc.yml:history_file: /Users/oleksandr/finances/history.csv
budget_file: /Users/oleksandr/finances/budget.yml
locale: pl_PL
currency: PLNlbudanywhere