Skip to content

adamtabrams/sift-payments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

Sift is a simple way to generate a spending report.

I wanted an easy, private, offline way to review monthly transactions and spending. Sift builds rules by prompting the user to categorize transactions. Those rules are stored in a file and used to categorize future transactions.

Setup

If go is already installed, just run make from the top of the repo.

That will build an executable at bin/sift.

Tests can be run with make test.

Flags

Process records for January 2023: ./sift -y 2023 -m 1

Process records for January through March 2023: ./sift -y 2023 -m 1-3

Process records for 2022 and 2023: ./sift -y 2022-2023

Process records for each month in 2022 and 2023: ./sift -y 2022-2023 -m 1-12

View all transactions in the subscriptions category for Jan 2023: ./sift -y 2023 -m 1 -c subscriptions

By default, transactions not matching any existing rules will prompt the user. Rules can match either on just the transaction ID or both ID and amount. Using --no-prompt or -n puts non-matching transactions in the skipped category.

See all flags: ./sift --help

Configs

Sift is requires a config.yaml file like this:

rulesfile: rules.yaml
recordsdir: records
dateformat: 01/02/06

header:
  id: Transaction ID
  name: Description
  date: Date
  amount: Amount

categories:
  - salary
  - rent
  - food
  - insurance
  - subscriptions

New rules will be saved to the value of rulefiles.

CSV files will be read from the value of recordsdir.

Data in the date column of CSV files must match the value of dateformat.

The values in header specify which columns to use.

Each value in categories is a budget category option to select.

Check out the sample dir for more info.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published