File: starter.beancount

package info (click to toggle)
beancount 3.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,060 kB
  • sloc: python: 22,647; yacc: 753; ansic: 586; lex: 494; cpp: 44; makefile: 39
file content (371 lines) | stat: -rwxr-xr-x 14,940 bytes parent folder | download | duplicates (5)
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
#!/usr/bin/env bean-web
;; -*- mode: org; mode: beancount; coding: utf-8; fill-column: 400; -*-
;; Starter Kit Example Ledger

* Initialization
;; This is a starter example file that you should copy to get started
;; using Beancount. This is an example starting point, with the same
;; organization choices and style in which I (the author) write my own
;; ledger files. You should delete all these explanatory comments
;; and put your own instead. When you start, the best way to begin is
;; to create one of these, with all your assets and liabilities, so
;; that you can see your balance sheet and your net worth.
;;
;; This example is written from the perspective of someone starting
;; their ledger file on 2013-12-22.
;;
;; This example uses headers in the Emacs outline mode style. Note
;; that you don't have to do that if you don't use Emacs, it's not
;; required, but it's just really convenient if you do, as you can
;; fold and unfold large sections of your input file and get an
;; overview of its structure..
;;
;; The order of directives in the file does not matter. I choose to
;; organize my transactions by-account, mostly. I create one section
;; for each accounts, and above that, I organize sections by country
;; and institution. It's entirely arbitrary, just a choice based on
;; whatever feels most comfortable for you.
;;
;; In this example file the choice of account names follows my own
;; favorite hierarchy:
;;
;; - The type (Assets/Liabilities/Equity/Expense/Income), which
;;   is required by Beancount;
;;
;; - Country. This is useful if you have accounts in multiple places;
;;
;; - Institution. These contain multiple accounts. For example, a
;;   bank has checking and savings accounts, typically. They don't
;;   have to be physical real institution at this level, but I like
;;   to have that level, it's the name of the company that holds the
;;   account, even if the account is fictional.
;;
;; - Account name within the institution.
;;
;; Again, this is entirely arbitrary, but I've evolved into this
;; choice over several years of usage, and I think it's pretty neat.
;; Feel free to elide the country, or design your own account
;; hierarchy, it should work just the same, Beancount does not
;; depend on this choice at all, beyond the first component for the
;; type. Several examples below.

** Options
;; We begin with the declaration of some global options.
;; Run "bean-doctor list_options" for the full list of available options.

option "title" "Starter Kit Beancount Ledger"

;; We will assume this user operates in US dollars.
option "operating_currency" "USD"



** General Accounts
;; We need to declare a few general accounts that we will use below.

;; Declare some sort of account to use as the source for padding
;; entries (see below). Use your birth date... that's when you began
;; accumulating equity!
1982-04-01 open Equity:Opening-Balances

** Events
;; This is a section where I declare some general properties.

;; Enter the date when this address last changed and its curent value.
2008-07-01 event "address" "12345 Brick Lane, New York City, NY 10011, USD"

;; Same thing with your employer.
2011-02-15 event "employer" "Boogle Tech Inc."

;; You can track trips here too by changing the value of a "location"
;; event (variable). Insert one of these every time you travel. It can
;; be used for various purposes (see documentation). You can also
;; choose to put them along your cash expenses somewhere below, which
;; is what I do (remember: the order of declarations in the file is
;; not important).
2013-12-22 event "location" "New York City, USA"


* USA Accounts
** BofA Bank
;; This example individual has some regular accounts in Bank of America
;; (we'll abbreviate as BofA) and a credit card with them.

*** Checking
;; A main checking account.

;; Open the account at the approximate date where you think you
;; actually created it if you don't remember; if you do, find the
;; date and put it here.
;; You don't really have to put a currency constraint, but for a
;; bank account it makes sense to do so, because it really
;; cannot contain any other kinds of beans. This is a US dollar
;; account, so I choose to introduce the "USD" currency here (it's
;; otherwise not pre-defined in any way, it just comes into being
;; as you use it, I could have typed any other all-caps word
;; instead of "USD" here, like "EUR", or "POINTS").
2004-08-01 open Assets:US:BofABank:Checking     USD

;; Then we don't want to have to go and enter all the history from the
;; past here before we get working... so we'll declare a padding
;; directive right at the opening date that will take care of
;; inserting the correct amount to make the following assert balance.
2004-08-01 pad  Assets:US:BofABank:Checking  Equity:Opening-Balances

;; Now insert the balance as of the last date that you have a
;; statement for (or if this is available, you can log into your
;; online account and check that your current account balance is).
2013-12-22 balance  Assets:US:BofABank:Checking   973.03 USD

;; That's it! That is the main template. The rest of this file
;; just follows this example in order to setup all the available
;; accounts. From this point on, you can add or import new
;; transactions following the check date.



*** Savings
;; A high-interest savings account, presumably opened on the same date..

2004-08-01 open   Assets:US:BofABank:Savings  USD
2004-08-01 pad    Assets:US:BofABank:Savings  Equity:Opening-Balances
2013-12-22 balance  Assets:US:BofABank:Savings  2402.81 USD



*** Mortgage
;; A mortgage loan account associated with a Brick Lane property
;; declared below. The date is the same as the purchase of the
;; property, because that's when the mortgage loan began.

2010-03-20 open   Liabilities:US:BofABank:Mortgage  USD

;; Pad this for payments whose detail we won't enter yet.
2010-03-20 pad    Liabilities:US:BofABank:Mortgage  Equity:Opening-Balances

;; Current value of mortgage.
2013-12-22 balance   Liabilities:US:BofABank:Mortgage  -101832.34 USD



** American Express
; He also has an American Express BlueCash Everyday card (we'll
;; abbreviate as Amex).

2009-08-01 open   Liabilities:US:Amex:BlueCash  USD
2009-08-01 pad    Liabilities:US:Amex:BlueCash  Equity:Opening-Balances
2013-12-22 balance  Liabilities:US:Amex:BlueCash  -1121.26 USD



** Fidelity Investments
;; His employer deposits 401k matching amounts in a Fidelity 401k
;; account.

;; Also, note how I create a subaccount for each instrument type
;; being held; this is not strickly necessary, but I like to do this,
;; as it results in nicer output, where each type of instrument has
;; its own journal and it's just overall less messy.
;;
;; Since this is a 401k account and all the amounts deposited are
;; immediately invested, there is no need to declare a Cash account.

2009-08-01 open  Assets:US:Fidelity:Boogle401k:RGAGX  RGAGX
2009-08-01 open  Assets:US:Fidelity:Boogle401k:VBMPX  VBMPX

2009-08-01 pad    Assets:US:Fidelity:Boogle401k:RGAGX  Equity:Opening-Balances
2009-08-01 pad    Assets:US:Fidelity:Boogle401k:VBMPX  Equity:Opening-Balances

;; Here we just add the contents of the investment account (mutual
;; funds) and their current market value, because this is a registered
;; account (401k) and it is not taxable, so we don't care about the
;; capital gains detail. If you decide later on to add all the
;; purchase transactions, you would find the capital gain appearing.
;;

2013-12-22 balance  Assets:US:Fidelity:Boogle401k:RGAGX  201.02 RGAGX
2013-12-22 balance  Assets:US:Fidelity:Boogle401k:VBMPX  743.82 VBMPX

2013-12-22 price RGAGX  40.93 USD
2013-12-22 price VBMPX  10.02 USD




** E*Trade
;; In addition, he has an E*Trade taxable trading account with some
;; stocks he buys into.

;; In this account, we do have a cash component, which holds our
;; deposits and whose contents is converted against stock during
;; transactions. We pad the cash account to account for past
;; deposits.
2011-03-15 open   Assets:US:ETrade:Investment:Cash  USD
2011-03-15 pad    Assets:US:ETrade:Investment:Cash  Equity:Opening-Balances
2013-12-22 balance  Assets:US:ETrade:Investment:Cash  102.10 USD


;; These we won't pad; because there's a tax consequence on the
;; capital gain, we want to make sure that we have at least the
;; book value for each position. (Ideally we'd go backwards
;; and enter all the real transactions in the past.)
2011-03-15 open   Assets:US:ETrade:Investment:HOOL  HOOL
2011-03-15 open   Assets:US:ETrade:Investment:AAPL  AAPL


;; For each of our current positions, add an assertion for the
;; position, as well as the original transaction that got us
;; that position, which provides its cost (book value).

2013-02-03 * "Bought some stock"
  Assets:US:ETrade:Investment:HOOL         8 HOOL {701.20 USD}
  Expenses:Financial:Commissions         7.95 USD
  Assets:US:ETrade:Investment:Cash

2013-09-03 * "Bought some stock"
  Assets:US:ETrade:Investment:HOOL         4 HOOL {850.08 USD}
  Expenses:Financial:Commissions         7.95 USD
  Assets:US:ETrade:Investment:Cash

2013-12-22 balance  Assets:US:ETrade:Investment:HOOL  12 HOOL
2013-12-22 price  HOOL   1101.02 USD


;; Some other stock.

2013-06-02 * "Bought some Apple stock"
  Assets:US:ETrade:Investment:AAPL         10 AAPL {450.72 USD}
  Expenses:Financial:Commissions         7.95 USD
  Assets:US:ETrade:Investment:Cash

2013-12-22 balance  Assets:US:ETrade:Investment:AAPL  10 AAPL
2013-12-22 price  AAPL   549.02 USD



** Brick Lane Home
;; A while back, he bought a property on Brick Lane. Since there
;; is no stock ticker or currency denomination for "his property,"
;; we'll simply create one as a new symbol: "BRICKHOME" and we'll
;; deposit 1 unit of this home in an account. If he bought another
;; home we would create a different symbol.

2010-03-20 open Assets:US:RealEstate:BrickHome  BRICKHOME

2010-03-20 * "Bought the beautiful Brick Lane house from Joe Oldowner"
  Assets:US:RealEstate:BrickHome      1 BRICKHOME {175000 USD}
  Assets:US:BofABank:Checking                      -50000 USD  ; Downpayment
  Liabilities:US:BofABank:Mortgage                -125000 USD  ; Loan


;; Now, for a large asset that has been held over a long period of
;; time, it's unlikely that its current value is the same as that
;; it was when it was purchased, so we'll put as a price the most
;; current evaluation.
2013-06-15 price BRICKHOME  210000 USD




* Expenses
;; You should declare a list of buckets for booking expenses into.
;; This is useful in your income statement, to see where your
;; money is going, where it is being spent.
;;
;; I keep all the unused ones commented, because Beancount generates
;; a warning for unused accounts. Uncomment as needed. Because this
;; ledger does not yet contain any history of spending, they're
;; almost all commented out for now.

;1982-04-01 open Expenses:Financial:Fees
1982-04-01 open Expenses:Financial:Commissions    USD
;1982-04-01 open Expenses:Financial:Interest
;1982-04-01 open Expenses:Insurance:Life
;1982-04-01 open Expenses:Communications:Phone
;1982-04-01 open Expenses:Communications:Email
;1982-04-01 open Expenses:Communications:Internet
;1982-04-01 open Expenses:Clothing
;1982-04-01 open Expenses:Clothing:Cleaning
;1982-04-01 open Expenses:Beauty:Hair
;1982-04-01 open Expenses:Health:Massage
;1982-04-01 open Expenses:Sports:Gear
;1982-04-01 open Expenses:Sports:Cycling
;1982-04-01 open Expenses:Sports:Yoga
;1982-04-01 open Expenses:Fun:Movie
;1982-04-01 open Expenses:Fun:Theater
;1982-04-01 open Expenses:Fun:Concerts
;1982-04-01 open Expenses:Fun:Museum
;1982-04-01 open Expenses:Food:Restaurant
;1982-04-01 open Expenses:Food:Grocery
;1982-04-01 open Expenses:Food:Alcohol
;1982-04-01 open Expenses:Books
;1982-04-01 open Expenses:Gifts
;1982-04-01 open Expenses:Travel:Accommodation
;1982-04-01 open Expenses:Travel:Gear
;1982-04-01 open Expenses:Travel:Documents
;1982-04-01 open Expenses:Travel:Tours
;1982-04-01 open Expenses:Travel:Communications
;1982-04-01 open Expenses:Travel:Insurance
;1982-04-01 open Expenses:Transportation:Flights
;1982-04-01 open Expenses:Transportation:Parking
;1982-04-01 open Expenses:Transportation:Taxi
;1982-04-01 open Expenses:Transportation:Train
;1982-04-01 open Expenses:Transportation:Bus
;1982-04-01 open Expenses:Transportation:Car-Rental
;1982-04-01 open Expenses:Transportation:Gas
;1982-04-01 open Expenses:Moving
;1982-04-01 open Expenses:Toys:Photography
;1982-04-01 open Expenses:Toys:Computer
;1982-04-01 open Expenses:Toys:Electronics
;1982-04-01 open Expenses:Office-Supplies
;1982-04-01 open Expenses:Misc
;1982-04-01 open Expenses:Govt-Services:Drivers-License
;1982-04-01 open Expenses:Medical:Insurance                 ;; Paying for insurance coverage
;1982-04-01 open Expenses:Medical:Copay                     ;; Copays
;1982-04-01 open Expenses:Medical:Deductible                ;; Amount towards deductible
;1982-04-01 open Expenses:Medical:MaxOutOfPocket            ;; Amount towards max out-of-pocket expenses
;1982-04-01 open Expenses:Medical:Drugs                     ;; Pills, drugs, and other OTC medicine
;1982-04-01 open Expenses:Medical:Dental                    ;; Costs of dentist
;1982-04-01 open Expenses:Medical:Glasses                   ;; Corrective glasses
;1982-04-01 open Expenses:Medical:Acupuncture
;1982-04-01 open Expenses:Charity
;1982-04-01 open Expenses:Tips

;;; ... add more here, add your own categories ...



* Cash Daybook
;; This is a section you can use to enter transactions by hand,
;; that is, not from imported OFX files.




;;------------------------------------------------------------------------------------------------------------------------
;; That's it! Run bean-web on this file and you should view a basic
;; balance sheet.
;;
;; Now, the income statement will be sparse and won't reflect the
;; reality of spending and income. You then need to add transactions to
;; it. You can do a few things from here on:
;;
;; 1. You can simply forget all the past history, and begin entering
;;    new transactions from this point onwards.
;;
;; 2. You can decide to enter the details of the past history of
;;    these accounts back to the beginnign of the calendar year.
;;    This provides a good useful starting dataset, because you
;;    will be able to use the ledger to figure out amounts to
;;    declare on your taxes.
;;
;; 3. For some accounts, you may decide to enter all the past history
;;    back to the actual beginning of the account. This would make
;;    sense for your investment accounts, for instance, if you don't
;;    have too many transactions. For each account whose detail has
;;    been fully entered until its beginning, you can delete the
;;    corresponding pad entry.
;;
;;    Depending on how excited you are about this, you might even
;;    choose to try to complete all your accounts a few years back.
;;    It's entirely up to you.