A concise recap of Plim’s bucket budgeting metaphor, with a description of each critical concept and data file in the system.
◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
Summary
At the start of every month, you assemble your buckets, give each one a purpose, and fill them with funds from the cistern. Then you spend the rest of the month shooting holes in those buckets by spending money. The goal is to keep shunting funds around between the buckets to keep the leaks from draining them completely. Then next month, you gather whatever funds you have left back into the cistern and start again.
From time to time throughout the month, you “reckon the tally” by downloading Tally Sheets (account statements) from each Tally Keeper (financial institution) and assigning each transaction to a bucket, thus introducing more leaks to manage.
Definitions
Tally Keeper: Any 3rd party (person or institution) that maintains an itemized recap of your financial transactions.
Tally Sheet: A report of all transactions recorded by a Tally Keeper over a specific period of time.
Tally Line: A specific transaction record from a Tally Sheet.
Bucket: A container of virtual money allocated in your budget for a specific purpose.
Cistern: The master reservoir bucket in your budget that collects all incoming funds and holds them until they’re allocated to other buckets.
Leak: An assignment of a specific tally line to specific bucket describing a reduction of virtual funds in the bucket.
Fill: An assignment of a specific tally line to specific bucket describing an increase of virtual funds in the bucket.
Shunt: A transfer of virtual funds between any two buckets, including the cistern.
Transaction Stamp: The date and time of a transaction represented by a tally line.
Plim Stamp: The date and time at which a record was added to the Plim system.
Files
TallyKeepers.csv
A file that describes the structure of the fields in the Tally Sheets provided by each Tally Keeper. Since the format of the tally sheets might change over time, the structures described in this file only apply to the sheets registered in the current month.
- Fields??? I need to include the fields of the tallykeepers.csv file that describe the structure of individual tally sheets.
Tally Sheets
The details change from Tally Keeper to Tally Keeper, as described in TallyKeepers.csv, but at a minimum, they contain:
-
transaction date
-
transaction destination (an account, a creditor, a merchant, etc)
-
transaction amount
Note: There can be any number of sheets registered for a given Tally Keeper in a given month. This means that a single transaction can appear multiple times if the date ranges of two Tally Sheets overlap. When the files are loaded, each Tally Line is given a unique id, but if the same transaction appears in two different sheets, both versions will be given the same id. This means Tally Lines are not guaranteed to be unique, but tally_ids are.
Buckets.csv
A list of all the Buckets you have allocated in your budget for the month. Does not include the cistern, which is automatically created every month.
-
bucket name
-
plim stamp
-
description
Note: The buckets.csv file does not contain information about how much virtual money is in each Bucket. This information is computed on the fly by summing the shunts/bails, fills, and leaks.
Shunts.csv
A file that records every movement of virtual funds between Buckets.
-
plim stamp
-
amount
-
from Bucket name
-
to Bucket name
-
explanatory note
Leaks.csv
A file that assigns tally_ids to Buckets. Since Tally Lines can represent a single transaction that needs to be split between multiple Buckets, there may be more than one allocation triplet.
-
plim stamp
-
tally_id
-
allocations string
- format = “[bucketname|amount|note]+”
Note: The sum of multiple allocation amounts must equal the amount of the Tally Line associated with the tally_id
Note: This post is the original draft of Plim’s KOOLAID.md. It represents my conceptual vision for the project when it began.
For the current version of the project’s KOOLAID, see the source code repository.