hledger-forecast 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -2
  3. data/README.md +150 -71
  4. data/example.journal +35 -0
  5. data/example.yml +35 -36
  6. data/hledger-forecast.gemspec +5 -4
  7. data/lib/hledger_forecast/cli.rb +35 -93
  8. data/lib/hledger_forecast/generator.rb +233 -90
  9. data/lib/hledger_forecast/summarize.rb +4 -5
  10. data/lib/hledger_forecast/tracker.rb +37 -0
  11. data/lib/hledger_forecast/version.rb +1 -1
  12. data/lib/hledger_forecast.rb +1 -1
  13. data/spec/command_spec.rb +14 -4
  14. data/spec/custom_spec.rb +35 -42
  15. data/spec/half-yearly_spec.rb +22 -6
  16. data/spec/modifier_spec.rb +87 -0
  17. data/spec/monthly_end_date_spec.rb +47 -0
  18. data/spec/monthly_end_date_transaction_spec.rb +32 -0
  19. data/spec/monthly_spec.rb +35 -27
  20. data/spec/once_spec.rb +22 -7
  21. data/spec/quarterly_spec.rb +21 -7
  22. data/spec/stubs/{monthly/forecast_monthly.yml → forecast.yml} +7 -7
  23. data/spec/stubs/transactions_found.journal +24 -0
  24. data/spec/stubs/transactions_found_inverse.journal +24 -0
  25. data/spec/stubs/transactions_not_found.journal +16 -0
  26. data/spec/track_spec.rb +197 -0
  27. data/spec/yearly_spec.rb +21 -7
  28. metadata +32 -74
  29. data/spec/start_date_spec.rb +0 -12
  30. data/spec/stubs/custom/forecast_custom_days.yml +0 -14
  31. data/spec/stubs/custom/forecast_custom_months.yml +0 -14
  32. data/spec/stubs/custom/forecast_custom_weeks.yml +0 -14
  33. data/spec/stubs/custom/forecast_custom_weeks_twice.yml +0 -24
  34. data/spec/stubs/custom/output_custom_days.journal +0 -24
  35. data/spec/stubs/custom/output_custom_months.journal +0 -20
  36. data/spec/stubs/custom/output_custom_weeks.journal +0 -28
  37. data/spec/stubs/custom/output_custom_weeks_twice.journal +0 -44
  38. data/spec/stubs/half-yearly/forecast_half-yearly.yml +0 -10
  39. data/spec/stubs/half-yearly/output_half-yearly.journal +0 -20
  40. data/spec/stubs/modifiers/forecast_modifiers.yml +0 -13
  41. data/spec/stubs/modifiers/output_modifiers.journal +0 -44
  42. data/spec/stubs/monthly/forecast_monthly_enddate.yml +0 -14
  43. data/spec/stubs/monthly/forecast_monthly_enddate_top.yml +0 -14
  44. data/spec/stubs/monthly/forecast_monthly_modifier.yml +0 -11
  45. data/spec/stubs/monthly/output_monthly.journal +0 -44
  46. data/spec/stubs/monthly/output_monthly_enddate.journal +0 -48
  47. data/spec/stubs/monthly/output_monthly_enddate_top.journal +0 -40
  48. data/spec/stubs/monthly/output_monthly_modifier.journal +0 -20
  49. data/spec/stubs/once/forecast_once.yml +0 -10
  50. data/spec/stubs/once/output_once.journal +0 -12
  51. data/spec/stubs/quarterly/forecast_quarterly.yml +0 -10
  52. data/spec/stubs/quarterly/output_quarterly.journal +0 -20
  53. data/spec/stubs/start_date/forecast_startdate.yml +0 -26
  54. data/spec/stubs/start_date/output_startdate.journal +0 -56
  55. data/spec/stubs/transactions.journal +0 -8
  56. data/spec/stubs/yearly/forecast_yearly.yml +0 -10
  57. data/spec/stubs/yearly/output_yearly.journal +0 -16
@@ -0,0 +1,197 @@
1
+ require_relative '../lib/hledger_forecast'
2
+
3
+ current_month = Date.new(Date.today.year, Date.today.month, 1)
4
+ previous_month = current_month.prev_month
5
+ next_month = current_month.next_month
6
+
7
+ base_config = <<~YAML
8
+ once:
9
+ - account: "Assets:Bank"
10
+ from: "2023-03-05"
11
+ transactions:
12
+ - amount: 3000
13
+ category: "Expenses:Tax"
14
+ description: Tax owed
15
+ track: true
16
+ - amount: 100
17
+ category: "Expenses:Food"
18
+ description: Food expenses
19
+ - amount: -1500
20
+ category: "Income:Salary"
21
+ description: Salary
22
+ to: "2023-08-01"
23
+ track: true
24
+
25
+ settings:
26
+ currency: GBP
27
+ YAML
28
+
29
+ base_output = <<~JOURNAL
30
+ ~ 2023-03-05 * Food expenses
31
+ Expenses:Food £100.00 ; Food expenses
32
+ Assets:Bank
33
+
34
+ ~ #{next_month} * [TRACKED] Tax owed
35
+ Expenses:Tax £3,000.00; Tax owed
36
+ Assets:Bank
37
+
38
+ ~ #{next_month} * [TRACKED] Salary
39
+ Income:Salary £-1,500.00; Salary
40
+ Assets:Bank
41
+
42
+ JOURNAL
43
+
44
+ RSpec.describe 'Tracking transactions -' do
45
+ it 'Determines which transactions should be tracked' do
46
+ generated = HledgerForecast::Generator
47
+ generated.generate(base_config)
48
+ tracked = generated.tracked
49
+
50
+ expect(tracked[0]['transaction']).to eq(
51
+ { "amount" => "£3,000.00", "category" => "Expenses:Tax", "description" => "Tax owed",
52
+ "inverse_amount" => "£-3,000.00", "track" => true }
53
+ )
54
+ expect(tracked[0]['account']).to eq("Assets:Bank")
55
+
56
+ expect(tracked[1]['transaction']).to eq(
57
+ { "amount" => "£-1,500.00", "category" => "Income:Salary", "description" => "Salary", "to" => "2023-08-01",
58
+ "inverse_amount" => "£1,500.00", "track" => true }
59
+ )
60
+ expect(tracked[1]['account']).to eq("Assets:Bank")
61
+ end
62
+
63
+ it 'marks a transaction as NOT FOUND if it doesnt exist' do
64
+ generated = HledgerForecast::Generator
65
+ generated.tracked = {} # Clear tracked transactions
66
+ generated.generate(base_config)
67
+ transactions_to_track = generated.tracked
68
+
69
+ track = HledgerForecast::Tracker.track(transactions_to_track, 'spec/stubs/transactions_not_found.journal')
70
+
71
+ expect(track[0]['found']).to eq(false)
72
+ expect(track[1]['found']).to eq(false)
73
+ end
74
+
75
+ it 'marks a transaction as FOUND if it exists' do
76
+ generated = HledgerForecast::Generator
77
+ generated.tracked = {} # Clear tracked transactions
78
+ generated.generate(base_config)
79
+ transactions_to_track = generated.tracked
80
+
81
+ track = HledgerForecast::Tracker.track(transactions_to_track, 'spec/stubs/transactions_found.journal')
82
+
83
+ expect(track[0]['found']).to eq(true)
84
+ expect(track[1]['found']).to eq(true)
85
+ end
86
+
87
+ it 'marks a transaction as FOUND if it exists, even if the category/amount are inversed' do
88
+ generated = HledgerForecast::Generator
89
+ generated.tracked = {} # Clear tracked transactions
90
+ generated.generate(base_config)
91
+ transactions_to_track = generated.tracked
92
+
93
+ track = HledgerForecast::Tracker.track(transactions_to_track, 'spec/stubs/transactions_found_inverse.journal')
94
+
95
+ expect(track[0]['found']).to eq(true)
96
+ end
97
+
98
+ it 'writes a NON-FOUND entry into a journal' do
99
+ options = {}
100
+ options[:transaction_file] = 'spec/stubs/transactions_not_found.journal'
101
+
102
+ generated = HledgerForecast::Generator
103
+ generated.tracked = {} # Clear tracked transactions
104
+
105
+ generated_journal = generated.generate(base_config, options)
106
+
107
+ expected_output = base_output
108
+ expect(generated_journal).to eq(expected_output)
109
+ end
110
+
111
+ it 'writes a NON-FOUND entry for dates that are close to the current period' do
112
+ require 'tempfile'
113
+
114
+ forecast_config = <<~YAML
115
+ once:
116
+ - account: "Assets:Bank"
117
+ from: "#{previous_month}"
118
+ transactions:
119
+ - amount: 5000
120
+ category: "Expenses:House"
121
+ description: New kitchen
122
+ track: true
123
+
124
+ settings:
125
+ currency: GBP
126
+ YAML
127
+
128
+ journal = <<~JOURNAL
129
+ #{previous_month} * Opening balance
130
+ Assets:Bank £1,000.00
131
+ Equity:Opening balance
132
+
133
+ #{previous_month} * Mortgage payment
134
+ Expenses:Mortgage £1,500.00
135
+ Assets:Bank
136
+
137
+ #{current_month - 10} * Groceries
138
+ Expenses:Groceries £1,500.00
139
+ Assets:Bank
140
+
141
+ JOURNAL
142
+
143
+ temp_file = Tempfile.new('journal')
144
+ temp_file.write(journal)
145
+ temp_file.close
146
+
147
+ options = {}
148
+ options[:transaction_file] = temp_file.path
149
+
150
+ generated = HledgerForecast::Generator
151
+ generated.tracked = {} # Clear tracked transactions
152
+
153
+ generated_journal = generated.generate(forecast_config, options)
154
+
155
+ expected_output = <<~JOURNAL
156
+ ~ #{next_month} * [TRACKED] New kitchen
157
+ Expenses:House £5,000.00; New kitchen
158
+ Assets:Bank
159
+
160
+ JOURNAL
161
+
162
+ expect(generated_journal).to eq(expected_output)
163
+ end
164
+
165
+ it 'treats a future tracked transaction as a regular transaction' do
166
+ forecast_config = <<~YAML
167
+ monthly:
168
+ - account: "Assets:Bank"
169
+ from: "#{next_month}"
170
+ transactions:
171
+ - amount: 100
172
+ category: "Expenses:Food"
173
+ description: Food expenses
174
+ track: true
175
+
176
+ settings:
177
+ currency: GBP
178
+ YAML
179
+
180
+ options = {}
181
+ options[:transaction_file] = 'spec/stubs/transactions_not_found.journal'
182
+
183
+ generated = HledgerForecast::Generator
184
+ generated.tracked = {} # Clear tracked transactions
185
+
186
+ generated_journal = generated.generate(forecast_config, options)
187
+
188
+ output = <<~JOURNAL
189
+ ~ monthly from #{next_month} * Food expenses
190
+ Expenses:Food £100.00; Food expenses
191
+ Assets:Bank
192
+
193
+ JOURNAL
194
+
195
+ expect(generated_journal).to eq(output)
196
+ end
197
+ end
data/spec/yearly_spec.rb CHANGED
@@ -1,13 +1,27 @@
1
1
  require_relative '../lib/hledger_forecast'
2
2
 
3
- RSpec.describe 'generate' do
4
- it 'generates a forecast with correct YEARLY transactions' do
5
- transactions = File.read('spec/stubs/transactions.journal')
6
- forecast = File.read('spec/stubs/yearly/forecast_yearly.yml')
3
+ config = <<~YAML
4
+ settings:
5
+ currency: GBP
6
+
7
+ yearly:
8
+ - account: "Assets:Bank"
9
+ from: "2023-04-01"
10
+ transactions:
11
+ - description: Bonus
12
+ category: "Income:Bonus"
13
+ amount: -3,000.00
14
+ YAML
7
15
 
8
- generated_journal = HledgerForecast::Generator.generate(transactions, forecast, '2023-03-01', '2024-04-30')
16
+ output = <<~JOURNAL
17
+ ~ yearly from 2023-04-01 * Bonus
18
+ Income:Bonus £-3,000.00; Bonus
19
+ Assets:Bank
9
20
 
10
- expected_output = File.read('spec/stubs/yearly/output_yearly.journal')
11
- expect(generated_journal).to eq(expected_output)
21
+ JOURNAL
22
+
23
+ RSpec.describe 'generate' do
24
+ it 'generates a forecast with correct YEARLY transactions' do
25
+ expect(HledgerForecast::Generator.generate(config)).to eq(output)
12
26
  end
13
27
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hledger-forecast
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oli Morris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-22 00:00:00.000000000 Z
11
+ date: 2023-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: highline
14
+ name: colorize
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.1.0
19
+ version: 0.8.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.1.0
26
+ version: 0.8.1
27
27
  - !ruby/object:Gem::Dependency
28
- name: money
28
+ name: highline
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 6.16.0
33
+ version: 2.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 6.16.0
40
+ version: 2.1.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: colorize
42
+ name: money
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.8.1
47
+ version: 6.16.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.8.1
54
+ version: 6.16.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: terminal-table
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,8 +80,8 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.12'
83
- description: Uses a YAML file to generate monthly, quarterly, yearly and one-off transactions
84
- for better forecasting in Hledger
83
+ description: Uses a YAML file to generate forecasts which can be used to extend the
84
+ default functionality in hledger
85
85
  email: olimorris@users.noreply.github.com
86
86
  executables:
87
87
  - hledger-forecast
@@ -95,49 +95,29 @@ files:
95
95
  - LICENSE
96
96
  - README.md
97
97
  - bin/hledger-forecast
98
+ - example.journal
98
99
  - example.yml
99
100
  - hledger-forecast.gemspec
100
101
  - lib/hledger_forecast.rb
101
102
  - lib/hledger_forecast/cli.rb
102
103
  - lib/hledger_forecast/generator.rb
103
104
  - lib/hledger_forecast/summarize.rb
105
+ - lib/hledger_forecast/tracker.rb
104
106
  - lib/hledger_forecast/version.rb
105
107
  - spec/command_spec.rb
106
108
  - spec/custom_spec.rb
107
109
  - spec/half-yearly_spec.rb
110
+ - spec/modifier_spec.rb
111
+ - spec/monthly_end_date_spec.rb
112
+ - spec/monthly_end_date_transaction_spec.rb
108
113
  - spec/monthly_spec.rb
109
114
  - spec/once_spec.rb
110
115
  - spec/quarterly_spec.rb
111
- - spec/start_date_spec.rb
112
- - spec/stubs/custom/forecast_custom_days.yml
113
- - spec/stubs/custom/forecast_custom_months.yml
114
- - spec/stubs/custom/forecast_custom_weeks.yml
115
- - spec/stubs/custom/forecast_custom_weeks_twice.yml
116
- - spec/stubs/custom/output_custom_days.journal
117
- - spec/stubs/custom/output_custom_months.journal
118
- - spec/stubs/custom/output_custom_weeks.journal
119
- - spec/stubs/custom/output_custom_weeks_twice.journal
120
- - spec/stubs/half-yearly/forecast_half-yearly.yml
121
- - spec/stubs/half-yearly/output_half-yearly.journal
122
- - spec/stubs/modifiers/forecast_modifiers.yml
123
- - spec/stubs/modifiers/output_modifiers.journal
124
- - spec/stubs/monthly/forecast_monthly.yml
125
- - spec/stubs/monthly/forecast_monthly_enddate.yml
126
- - spec/stubs/monthly/forecast_monthly_enddate_top.yml
127
- - spec/stubs/monthly/forecast_monthly_modifier.yml
128
- - spec/stubs/monthly/output_monthly.journal
129
- - spec/stubs/monthly/output_monthly_enddate.journal
130
- - spec/stubs/monthly/output_monthly_enddate_top.journal
131
- - spec/stubs/monthly/output_monthly_modifier.journal
132
- - spec/stubs/once/forecast_once.yml
133
- - spec/stubs/once/output_once.journal
134
- - spec/stubs/quarterly/forecast_quarterly.yml
135
- - spec/stubs/quarterly/output_quarterly.journal
136
- - spec/stubs/start_date/forecast_startdate.yml
137
- - spec/stubs/start_date/output_startdate.journal
138
- - spec/stubs/transactions.journal
139
- - spec/stubs/yearly/forecast_yearly.yml
140
- - spec/stubs/yearly/output_yearly.journal
116
+ - spec/stubs/forecast.yml
117
+ - spec/stubs/transactions_found.journal
118
+ - spec/stubs/transactions_found_inverse.journal
119
+ - spec/stubs/transactions_not_found.journal
120
+ - spec/track_spec.rb
141
121
  - spec/yearly_spec.rb
142
122
  homepage: https://github.com/olimorris/hledger-forecast
143
123
  licenses:
@@ -161,42 +141,20 @@ requirements: []
161
141
  rubygems_version: 3.4.12
162
142
  signing_key:
163
143
  specification_version: 4
164
- summary: Utility to generate forecasts in Hledger
144
+ summary: An extended wrapper around hledger's forecasting functionality
165
145
  test_files:
166
146
  - spec/command_spec.rb
167
147
  - spec/custom_spec.rb
168
148
  - spec/half-yearly_spec.rb
149
+ - spec/modifier_spec.rb
150
+ - spec/monthly_end_date_spec.rb
151
+ - spec/monthly_end_date_transaction_spec.rb
169
152
  - spec/monthly_spec.rb
170
153
  - spec/once_spec.rb
171
154
  - spec/quarterly_spec.rb
172
- - spec/start_date_spec.rb
173
- - spec/stubs/custom/forecast_custom_days.yml
174
- - spec/stubs/custom/forecast_custom_months.yml
175
- - spec/stubs/custom/forecast_custom_weeks.yml
176
- - spec/stubs/custom/forecast_custom_weeks_twice.yml
177
- - spec/stubs/custom/output_custom_days.journal
178
- - spec/stubs/custom/output_custom_months.journal
179
- - spec/stubs/custom/output_custom_weeks.journal
180
- - spec/stubs/custom/output_custom_weeks_twice.journal
181
- - spec/stubs/half-yearly/forecast_half-yearly.yml
182
- - spec/stubs/half-yearly/output_half-yearly.journal
183
- - spec/stubs/modifiers/forecast_modifiers.yml
184
- - spec/stubs/modifiers/output_modifiers.journal
185
- - spec/stubs/monthly/forecast_monthly.yml
186
- - spec/stubs/monthly/forecast_monthly_enddate.yml
187
- - spec/stubs/monthly/forecast_monthly_enddate_top.yml
188
- - spec/stubs/monthly/forecast_monthly_modifier.yml
189
- - spec/stubs/monthly/output_monthly.journal
190
- - spec/stubs/monthly/output_monthly_enddate.journal
191
- - spec/stubs/monthly/output_monthly_enddate_top.journal
192
- - spec/stubs/monthly/output_monthly_modifier.journal
193
- - spec/stubs/once/forecast_once.yml
194
- - spec/stubs/once/output_once.journal
195
- - spec/stubs/quarterly/forecast_quarterly.yml
196
- - spec/stubs/quarterly/output_quarterly.journal
197
- - spec/stubs/start_date/forecast_startdate.yml
198
- - spec/stubs/start_date/output_startdate.journal
199
- - spec/stubs/transactions.journal
200
- - spec/stubs/yearly/forecast_yearly.yml
201
- - spec/stubs/yearly/output_yearly.journal
155
+ - spec/stubs/forecast.yml
156
+ - spec/stubs/transactions_found.journal
157
+ - spec/stubs/transactions_found_inverse.journal
158
+ - spec/stubs/transactions_not_found.journal
159
+ - spec/track_spec.rb
202
160
  - spec/yearly_spec.rb
@@ -1,12 +0,0 @@
1
- require_relative '../lib/hledger_forecast'
2
- RSpec.describe 'generate' do
3
- it 'generates a forecast with correct MONTHLY transactions that have a START DATE' do
4
- transactions = File.read('spec/stubs/transactions.journal')
5
- forecast = File.read('spec/stubs/start_date/forecast_startdate.yml')
6
-
7
- generated_journal = HledgerForecast::Generator.generate(transactions, forecast, '2023-03-01', '2023-08-30')
8
-
9
- expected_output = File.read('spec/stubs/start_date/output_startdate.journal')
10
- expect(generated_journal).to eq(expected_output)
11
- end
12
- end
@@ -1,14 +0,0 @@
1
- custom:
2
- - description: Repeat every 3 days
3
- recurrence:
4
- period: days
5
- quantity: 3
6
- account: "[Assets:Bank]"
7
- start: "2023-03-01"
8
- transactions:
9
- - amount: 80
10
- category: "[Expenses:Personal Care]"
11
- description: Hair and beauty
12
-
13
- settings:
14
- currency: GBP
@@ -1,14 +0,0 @@
1
- custom:
2
- - description: Repeat every 5 months
3
- recurrence:
4
- period: months
5
- quantity: 5
6
- account: "[Assets:Bank]"
7
- start: "2023-03-01"
8
- transactions:
9
- - amount: 100
10
- category: "[Expenses:Personal Care]"
11
- description: Hair and beauty
12
-
13
- settings:
14
- currency: GBP
@@ -1,14 +0,0 @@
1
- custom:
2
- - description: Repeat every 2 weeks
3
- recurrence:
4
- period: weeks
5
- quantity: 2
6
- account: "[Assets:Bank]"
7
- start: "2023-03-01"
8
- transactions:
9
- - amount: 75
10
- category: "[Expenses:Personal Care]"
11
- description: Hair and beauty
12
-
13
- settings:
14
- currency: GBP
@@ -1,24 +0,0 @@
1
- custom:
2
- - description: Beauty expenses every 2 weeks
3
- recurrence:
4
- period: weeks
5
- quantity: 2
6
- account: "[Assets:Bank]"
7
- start: "2023-03-01"
8
- transactions:
9
- - amount: 75
10
- category: "[Expenses:Personal Care]"
11
- description: Hair and beauty
12
- - description: Car fuel every 5 days
13
- recurrence:
14
- period: days
15
- quantity: 5
16
- account: "[Assets:Bank]"
17
- start: "2023-03-01"
18
- transactions:
19
- - amount: 150
20
- category: "[Expenses:Car:Fuel]"
21
- description: Car Fuel
22
-
23
- settings:
24
- currency: GBP
@@ -1,24 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Hair and beauty
10
- [Expenses:Personal Care] £80.00
11
- [Assets:Bank]
12
-
13
- 2023-03-04 * Hair and beauty
14
- [Expenses:Personal Care] £80.00
15
- [Assets:Bank]
16
-
17
- 2023-03-07 * Hair and beauty
18
- [Expenses:Personal Care] £80.00
19
- [Assets:Bank]
20
-
21
- 2023-03-10 * Hair and beauty
22
- [Expenses:Personal Care] £80.00
23
- [Assets:Bank]
24
-
@@ -1,20 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Hair and beauty
10
- [Expenses:Personal Care] £100.00
11
- [Assets:Bank]
12
-
13
- 2023-08-01 * Hair and beauty
14
- [Expenses:Personal Care] £100.00
15
- [Assets:Bank]
16
-
17
- 2024-01-01 * Hair and beauty
18
- [Expenses:Personal Care] £100.00
19
- [Assets:Bank]
20
-
@@ -1,28 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Hair and beauty
10
- [Expenses:Personal Care] £75.00
11
- [Assets:Bank]
12
-
13
- 2023-03-15 * Hair and beauty
14
- [Expenses:Personal Care] £75.00
15
- [Assets:Bank]
16
-
17
- 2023-03-29 * Hair and beauty
18
- [Expenses:Personal Care] £75.00
19
- [Assets:Bank]
20
-
21
- 2023-04-12 * Hair and beauty
22
- [Expenses:Personal Care] £75.00
23
- [Assets:Bank]
24
-
25
- 2023-04-26 * Hair and beauty
26
- [Expenses:Personal Care] £75.00
27
- [Assets:Bank]
28
-
@@ -1,44 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Hair and beauty
10
- [Expenses:Personal Care] £75.00
11
- [Assets:Bank]
12
-
13
- 2023-03-01 * Car Fuel
14
- [Expenses:Car:Fuel] £150.00
15
- [Assets:Bank]
16
-
17
- 2023-03-06 * Car Fuel
18
- [Expenses:Car:Fuel] £150.00
19
- [Assets:Bank]
20
-
21
- 2023-03-11 * Car Fuel
22
- [Expenses:Car:Fuel] £150.00
23
- [Assets:Bank]
24
-
25
- 2023-03-15 * Hair and beauty
26
- [Expenses:Personal Care] £75.00
27
- [Assets:Bank]
28
-
29
- 2023-03-16 * Car Fuel
30
- [Expenses:Car:Fuel] £150.00
31
- [Assets:Bank]
32
-
33
- 2023-03-21 * Car Fuel
34
- [Expenses:Car:Fuel] £150.00
35
- [Assets:Bank]
36
-
37
- 2023-03-26 * Car Fuel
38
- [Expenses:Car:Fuel] £150.00
39
- [Assets:Bank]
40
-
41
- 2023-03-29 * Hair and beauty
42
- [Expenses:Personal Care] £75.00
43
- [Assets:Bank]
44
-
@@ -1,10 +0,0 @@
1
- settings:
2
- currency: GBP
3
-
4
- half-yearly:
5
- - start: "2023-04-01"
6
- account: "[Assets:Bank]"
7
- transactions:
8
- - description: Holiday
9
- category: "[Expenses:Holiday]"
10
- amount: 500
@@ -1,20 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-04-01 * Holiday
10
- [Expenses:Holiday] £500.00
11
- [Assets:Bank]
12
-
13
- 2023-10-01 * Holiday
14
- [Expenses:Holiday] £500.00
15
- [Assets:Bank]
16
-
17
- 2024-04-01 * Holiday
18
- [Expenses:Holiday] £500.00
19
- [Assets:Bank]
20
-
@@ -1,13 +0,0 @@
1
- monthly:
2
- - account: "[Assets:Bank]"
3
- start: "2023-03-01"
4
- transactions:
5
- - amount: 2000
6
- category: "[Expenses:Mortgage]"
7
- description: Mortgage
8
- modifier:
9
- amount: 2.0
10
- period: yearly
11
-
12
- settings:
13
- currency: GBP