aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 949b6c6999f4acabf85b6356a38854abf4ec3841 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# finbudg

Quick cli tool to calculate your expenses and balance for a set period of time.

## TO-DO

* Take into account shared expenses
* Make AUR package
* Make error messages more useful
* Show what is being spent most money on
* (Maybe) a way to interactively edit an input file

## How to install

For now the only way to install this, is by cloning or downloading the repo, and
building it from source with cargo:

```
cargo build --release
```

From there, if you would like to have this program on your path, you can copy
it -- for example on Arch Linux -- to `/usr/bin/`.

## Example

```
finbudg input.toml
```

### Input:

```toml
start_date = 2020-10-01
end_date = 2020-10-31
budget = 420.0
essential_categories = [
  "products",
  "transport",
  "utilities",
]

[[days]]
date = 2020-10-01

  [[days.expenses]]
  name = "Potato masher"
  price = 3.81
  category = "supplies"

  [[days.expenses]]
  name = "Bacon"
  price = 3.33
  category = "products"
  shared = 2

  [[days.expenses]]
  name = "Yoghurt"
  price = 1.24
  category = "products"
  qty = 2

  [[days.expenses]]
  name = "Onion"
  price = 0.15
  category = "products"

  [[days.expenses]]
  name = "Chicken"
  price = 2.28
  category = "products"
  shared = 2

[[days]]
date = 2020-10-02

  [[days.expenses]]
  name = "VPS"
  price = 5.0
  category = "utilities"
  recurring = true

  [[days.expenses]]
  name = "Transport card"
  price = 6.9
  category = "transport"
```

### Output:

```
Your expenses for the period of 2020-10-01 - 2020-10-31
Last day on entry: 2020-10-02
Days until period end: 29
Budget: 420.00

Average per day in utilities: 2.50
Average per day in supplies: 1.91
Average per day in transport: 3.45
Average per day in products: 3.50
Average per day in essential expenses: 9.45
Average per day: 11.36

Total in products: 7.00
Total in transport: 6.90
Total in supplies: 3.81
Total in utilities: 5.00
Total in essential expenses: 18.90
Total: 22.71

Left on balance: 397.29

Days until balance runs out:
...taking into account all expenses: 34.99
...taking into account only essential expenses: 42.04

Your expenses are healthy, they should last you from your last day on entry
through your last day of the period.
```