Skip to content

Commit

Permalink
add content
Browse files Browse the repository at this point in the history
  • Loading branch information
Westley-Winks committed Sep 1, 2024
1 parent 610351d commit a368aa7
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 10 deletions.
17 changes: 9 additions & 8 deletions src/content/writing/finances-and-bookkeeping.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ slug: finances-and-bookkeeping
lastmod: 2024-08-21
publish: true
tags:
- plain text
- plain text
title: Finances and Bookkeeping
toc: true
---
Expand Down Expand Up @@ -34,7 +34,7 @@ There are four main account types that we can have: `Income`, `Expenses`, `Asset
- **Income.** Things that you get in exchange for something else (usually you getting money in exchange for your time)
- **Expenses.** Things that you give in exchange for something else (usually you giving money in exchange for goods and services)

Income and expense both refer to an exchange of goods and services. Assets and liabilities are set amounts. The difference here is that assets and liabilities are absolute while income and expenses are relative. What I mean by that is that you are usually interested in the balance of an asset or liability account at *one moment in time* while you are interested in the *change between two points in time* in expenses or income accounts. (*How much money do I have in my checking account right now?* vs. *How much did I spend on toilet paper last month?*)
Income and expense both refer to an exchange of goods and services. Assets and liabilities are set amounts. The difference here is that assets and liabilities are absolute while income and expenses are relative. What I mean by that is that you are usually interested in the balance of an asset or liability account at _one moment in time_ while you are interested in the _change between two points in time_ in expenses or income accounts. (_How much money do I have in my checking account right now?_ vs. _How much did I spend on toilet paper last month?_)

## The Tools (Plain Text Accounting and Beancount)

Expand All @@ -47,6 +47,7 @@ Let's say you put your entire financial life on Quicken. All your investments, e
Funnily enough, a few weeks after I initially posted this, this exact thing happened. Mint, a popular bookkeeping and budgeting app by Intuit, announced that it will be shutting down at the turn of the year. Intuit decided that Mint wasn't worth it to keep it running so users have no choice but to move to another tool. They, of course, pushed users to move to their other tool in Credit Karma but this new one doesn't have the same budgeting tools that Mint did. You as a user get no say in this and are under a time limit before the service is inaccessible.

> I am so legitimately upset about this. 12+ years of my financial history is about to be gone. My entire adult life.
>
> - u/NotEmmaStone
A different (and, for me, preferable) approach is to maintain it all in **plain text**. This is text that you can open on any computer and you can read. It is letters and numbers put together in a cohesive order that you can understand rather than ones and zeros that only a computer can understand. Plain text will never change its pricing structure and it will never go out of business. Even if all computers disappeared off the face of the Earth, I could still print out my ledger onto physical paper and still be able to see and understand all of my financial data.
Expand All @@ -55,7 +56,7 @@ My whole financial life, all of my transactions, my entire ledger is written dow

There are currently three main choices for plain text accounting software: [Ledger](https://ledger-cli.org/), [hledger](https://hledger.org/), and my choice [beancount](https://github.com/beancount/beancount). These are all open source projects written by lots of smart people. They are also all great choices but have different philosophies and rules that govern what they look like. Again, all these do is parse your ledger file and do cool calculations and reporting with it. I went with beancount because the syntax made the most sense to me and I really liked the documentation. Also because [Derek Sivers uses it](https://sive.rs/uses).

I won't go deep into the details of beancount because there is already *excellent* [documentation](https://beancount.github.io/docs/index.html) out there. There are also lots of parts of beancount that add functionality that I just don't use. My ledger looks something like this:
I won't go deep into the details of beancount because there is already _excellent_ [documentation](https://beancount.github.io/docs/index.html) out there. There are also lots of parts of beancount that add functionality that I just don't use. My ledger looks something like this:

```bash
2023-09-20 * "Souq trip"
Expand All @@ -80,11 +81,11 @@ I won't go deep into the details of beancount because there is already *excellen
Assets:Peace-Corps:Annual-Leave-Days 2.00 PCDAYS
```

Don't mind the account hierarchy yet (see below). In this snippet, I have three types of money, called **commodities**: American dollars, Moroccan dirhams, and Peace Corps leave days. Did I mention that [I'm a Peace Corps Volunteer and I live in Morocco?]({{< relref peace-corps >}})
Don't mind the account hierarchy yet (see below). In this snippet, I have three types of money, called **commodities**: American dollars, Moroccan dirhams, and Peace Corps leave days. Did I mention that [I'm a Peace Corps Volunteer and I live in Morocco?](/peace-corps/)

Each transaction (i.e. every time money changes hands) is given a date, an optional payee, and some narration text. Each line below that tells beancount which account it is and how much money is being added or subtracted from it and what kind of money it is. Importantly, I can go through my whole ledger and read, line by line, and understand all of my transactions. You will also notice that, according to the double entry accounting method, all of the commodities each sum to zero.

Every week, as part of a more general weekly review session, I balance my ledger. I thought "balancing your checkbook" was just something old people did but I finally understand what they mean. I sit down and open up my ledger on my computer and input any pending transactions that I have from the week. Then, I generate a **balance statement** (more on in the reporting section) that shows me exactly how much money is currently in each account. I go on my various bank apps and verify that the number on my balance statement matches what the bank says I have to make sure I didn't miss any transactions (and neither did they). I also hand-count all of my cash. There is usually a discrepancy here because I almost exclusively use cash in my day-to-day life and make small purchases often. Sometimes I forget to write down small transations or just plain lose coins. In this case, I make a balance assertion in my ledger (*hey, ledger, I know that based on your calculations I should have this amount of money but I actually have this much*) and put the difference into an `Expenses:Uncategorized` account.
Every week, as part of a more general weekly review session, I balance my ledger. I thought "balancing your checkbook" was just something old people did but I finally understand what they mean. I sit down and open up my ledger on my computer and input any pending transactions that I have from the week. Then, I generate a **balance statement** (more on in the reporting section) that shows me exactly how much money is currently in each account. I go on my various bank apps and verify that the number on my balance statement matches what the bank says I have to make sure I didn't miss any transactions (and neither did they). I also hand-count all of my cash. There is usually a discrepancy here because I almost exclusively use cash in my day-to-day life and make small purchases often. Sometimes I forget to write down small transations or just plain lose coins. In this case, I make a balance assertion in my ledger (_hey, ledger, I know that based on your calculations I should have this amount of money but I actually have this much_) and put the difference into an `Expenses:Uncategorized` account.

## Reporting

Expand All @@ -100,15 +101,15 @@ Now, as we saw above, every time you spend money on something, that money goes i

The general consensus that I found online was to just track your expenses and figure it out as you go to develop meaningful expense categories. That didn't feel right to me. It made more sense to have a set structure from the get-go and push transactions into those as I go. So, I did some cherry-picking and came across [a whitepaper](https://unstats.un.org/unsd/classifications/unsdclassifications/#coicop) published by the United Nations Statistics Division. It is titled "Classification of Individual Consumption According to Purpose (COICOP) 2018."

Basically, COICOP is an international standard to classify household expenditure. It is a framework that allows for all kinds of cool statistics to be calculated like CPI, living standards analysis, budget surveys, and stats related to food and tourism. It splits up household expenses into increasingly fine-grained categories starting from a division (*01 Food and non-alcoholic beverage*) to a group (*01.1 Food*) to classes (*01.1.1 Cereals and cereal products*) and further down to subclasses (*01.1.1.3 Bread and bakery products*). These are all organized by the purpose of the expense. The current 2018 revision has 15 divisions, 63 groups, 186 classes, and 338 subclass categories.
Basically, COICOP is an international standard to classify household expenditure. It is a framework that allows for all kinds of cool statistics to be calculated like CPI, living standards analysis, budget surveys, and stats related to food and tourism. It splits up household expenses into increasingly fine-grained categories starting from a division (_01 Food and non-alcoholic beverage_) to a group (_01.1 Food_) to classes (_01.1.1 Cereals and cereal products_) and further down to subclasses (_01.1.1.3 Bread and bakery products_). These are all organized by the purpose of the expense. The current 2018 revision has 15 divisions, 63 groups, 186 classes, and 338 subclass categories.

I decided to use COICOP for my personal finances for three reasons:

- **Unambiguous.** There is a giant 265 page document that outlines exactly what categories a certain expense falls into.
- **Thought out.** Lots of people much smarter than me spent way more time than I ever will thinking about this.
- **Standardized.** I can see how my expenses compare with others using the same standard (lots of stats available online).

To avoid the problem of being too fine-grained, I opted for using the broad structure (chapter VIII in the whitepaper) which only goes down to groups meaning each expense category is defined by a three digit code *DD.G* where *DD* is the division number and *G* is the group number. I live a simple life and some expenses don't make sense for me so I cut them out of my chart of accounts but I can always add them back later. Using the entire broad structure, there are 52 possible "buckets" all of my expenses can fall into. With the accounts I don't need cut out, I actually have 20. My actual chart of accounts for my expenses looks like this:
To avoid the problem of being too fine-grained, I opted for using the broad structure (chapter VIII in the whitepaper) which only goes down to groups meaning each expense category is defined by a three digit code _DD.G_ where _DD_ is the division number and _G_ is the group number. I live a simple life and some expenses don't make sense for me so I cut them out of my chart of accounts but I can always add them back later. Using the entire broad structure, there are 52 possible "buckets" all of my expenses can fall into. With the accounts I don't need cut out, I actually have 20. My actual chart of accounts for my expenses looks like this:

```bash
`-- Expenses
Expand Down Expand Up @@ -188,7 +189,7 @@ To pay my friend back, I give them cash when I get back to my wallet.

## Lending and Borrowing Goods and Services (Accrual Accounting)

You may have noticed in the last section that expenses happen when the *good or service is exchanged* not the actual money. When I went out for dinner, I accrued the expenses then and there, not when I paid back my friend later. This is the basis of [accrual accounting.](https://www.investopedia.com/terms/a/accrualaccounting.asp)
You may have noticed in the last section that expenses happen when the _good or service is exchanged_ not the actual money. When I went out for dinner, I accrued the expenses then and there, not when I paid back my friend later. This is the basis of [accrual accounting.](https://www.investopedia.com/terms/a/accrualaccounting.asp)

But what happens when I pay for something in advance? I've given someone money but I haven't received a good or service. The other party owes me but it's not money. For example, I see my landlord a few days before rent is due and I pay him then or I buy plane tickets now for a trip a few months later.
Expand Down
4 changes: 2 additions & 2 deletions src/content/writing/weekly-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ Again, this is another place where "stuff" tends to pile up and get lost. I go t

Inspired by [Julia Evans' blog post](https://jvns.ca/blog/brag-documents/), I write down all of my important accomplishments and activities I did in the previous week. [I wrote](/writing/brag-document-as-a-pcv/) in depth about this system.

- [ ] **Balance ledger**
- [ ] **Balance [ledger](/writing/finances-and-bookkeeping/)**

I use [beancount](https://github.com/beancount/beancount) to track where every dollar or dirham of mine comes from and goes. I usually send myself a WhatsApp message whenever I buy something that includes the price and what it was. I collect all of these messages and properly put them into my ledger each week. I also check the balances on all of my accounts and make sure they agree with my ledger. I wrote about this system in depth as well.
I use [beancount](https://github.com/beancount/beancount) to track where every dollar or dirham of mine comes from and goes. I usually send myself a WhatsApp message whenever I buy something that includes the price and what it was. I collect all of these messages and properly put them into my ledger each week. I also check the balances on all of my accounts and make sure they agree with my ledger. [I wrote](/writing/finances-and-bookkeeping/) about this system in depth as well.

- [ ] **Backup files**

Expand Down
41 changes: 41 additions & 0 deletions src/content/writing/weeknotes-2024W35.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
collection: writing
date: 2024-09-01
description: Mostly just traveling around with my friends before summer ends. Weeknotes for the 35th week of the year 2024.
lastmod: 2024-09-01
publish: true
slug: weeknotes-2024W35
tags:
- weeknotes
title: Weeknotes 2024W35
toc: true
---

I went on a short vacation last week and didn't get around to writing out my weeknotes so this edition will cover last week and the one before. Enjoy!

## Went on a boy's trip in Northern Morocco

It was so fun. It started with a night of incredible shrimp tacos and deep conversations about our lives when we get back to the United States. After that, we spent a few days in El Houcima on the northern Mediterranean coast.

Most of the days, we'd wake up late after a night of games and gin and tonic. We'd make a standard Moroccan breakfast (eggs and bread) with some instant coffee and get ready to go to the beach. We went to a different beach each day and they were all incredible. The beaches were busy but we had our own little table and umbrella to relax at. The water was calm and some of the clearest water I've ever seen. One big personal gripe that I have with vacationing in Morocco with a group of Americans is the comments and attention we get just by existing. There was none of that in El Houcima, thankfully.

After getting back from the beach, we'd usually play a few games of my current favorite dice game (10,000) or a new card game (escoba) while everyone rotated using the shower. We went to the marina a few times and had a nice dinner. After that, we'd go home and play more games and drink and talk and stay up too late.

On the last full day, we jumped in a taxi and went to a beach called Tala Youssef just a short drive West. It was the most beautiful beach I'd ever seen. We got a table at one of the small restaurants along the beach and swam in the cool water. After a few hours of swimming and collecting cool rocks, we split a couple of tagines for lunch before going home.

I said goodbye to my friend who is leaving next week. I have no idea when I'll see him again and it felt bittersweet to say goodbye. I'm glad he's leaving after a two year gauntlet in Morocco. At the same time, like I said, I don't know when I'll see him again and I'm sad that we won't have an excuse to hang out every few months.

## Bits and bobs

- I added a section about accrual accounting to my [Finances and Bookkeeping](/writing/finances-and-bookkeeping/) piece and cleaned up some broken links that were in there
- I gave up on trying to read [Transitions](https://wmbridges.com/books/) and bought [The agile comms handbook](https://agilecommshandbook.com/) by Giles Turnbull. I'm excited to read it!
- [Departure Mono](https://departuremono.com/) is making the rounds on the internet. It's my new terminal font and Obsidian interface font and I love it.
- Finished reading [The Women](https://kristinhannah.com/books/the-women/) by Kristin Hannah. What a journey of a book, absolutely incredible. I learned a lot about the horrors of the Vietnam War and especially the sentiment and hardships that come with returning to "the world" after being in Vietnam. The Women is a story about invisibility, shame, and healing and I would recommend it to nearly everyone.

## Links

- [The Hydrant Directory](https://www.dayroselane.com/hydrants) by day lane. This is a public domain directory of fire hydrants where a color palette gets extracted from each one. I'm going to be using one as a color scheme on my website at some point in the future.
- [The secret inside One Million Checkboxes](http://eieio.games/essays/the-secret-in-one-million-checkboxes/) on eieio.games. I've really been enjoying Nolen Royalty's write-ups on this fun checkbox project.
- [Index card system to track daily, weekly, and monthly routines](https://analogoffice.net/2024/08/17/index-card-system.html) by Analog Office. I really love Anna's systems and how she writes about them. I'm interested in creating some kind of tickler system that is not just my calendar.
- [HashVer versioning scheme](https://miniscruff.github.io/hashver/) with a hat tip to David Brownman's [Versioning as Communication](https://xavd.id/blog/post/versioning-as-communication/) post. None of my coding projects are significant enough to warrant a proper SemVer scheme so this seems perfect for most of my use cases.
- [The Communal Plot](https://perthirtysix.com/communal-plot-daily-poll) by PerThirtySix. Each day, it asks you to answer two questions on a spectrum, forming a scatter plot of responses. It then shows you how everyone else answered and some basic stats on how you answered compared to others.
8 changes: 8 additions & 0 deletions src/pages/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
- `Removed` for now removed features or content.
- `Fixed` for any typos or bug fixes.

## 2024-09-01

- Added [weeknotes 2024W35](/writing/weeknotes-2024W35)

## 2024-08-21

- Changed [Finances and Bookkeeping](/writing/finances-and-bookkeeping) by adding a section about accrual accounting

## 2024-08-18

- Added [weeknotes 2024W33](/writing/weeknotes-2024W33)
Expand Down

0 comments on commit a368aa7

Please sign in to comment.