Beancount importer for Paychex payroll data
Ben Sturmfels
6ac0a45273
Rosanne advised we were showing TODO-PAY-INVOICE when it should be TODO-RETIREMENT-INVOICE. |
||
---|---|---|
resources | ||
src | ||
test | ||
.dir-locals.el | ||
.gitignore | ||
build.clj | ||
deps.edn | ||
LICENSE.txt | ||
README.md | ||
tests.edn | ||
TODO.md |
Paychex payroll importer for Beancount
The aim of this tool is to automate the monthly task of transcribing payroll CSV information for Conservancy's 8 (currently) employees into ~ 300 lines of fairly intricate Beancount bookkeeping data.
Usage
Run with:
java -jar import-0.0.8-standalone.jar --csv resources/example-paychex-pay-item-details.csv --date 2023-12-29 --period 'December 2023' --total-fees 206.50 --pay-receipt-no rt:19462/674660 --pay-invoice-no rt:19403/675431 --fees-receipt-no rt:19459/675387 --fees-invoice-no rt:19459/674887 --retirement-receipt-no rt:19403/676724 --retirement-invoice-no rt:19403/675431
Or use a reduced set of options (missing values will be replaced by "TODO" in the output):
java -jar import-0.0.8-standalone.jar --csv resources/example-paychex-pay-item-details.csv --date 2023-12-29 --period "December 2023" --total-fees 206.50
You can test the output in Beancount by adding the following header entries to define the accounts:
2023-01-01 open Assets:FR:Check2721
2023-01-01 open Assets:FR:Check1345
2023-01-01 open Expenses:Payroll:Salary
2023-01-01 open Expenses:Payroll:Fees
2023-01-01 open Expenses:Payroll:Tax
2023-01-01 open Expenses:Hosting
2023-01-01 open Expenses:Insurance
2023-01-01 open Liabilities:Payable:Accounts
Then run Beancount with:
bean-report [your file] balances
Development
The project is set up for development in Emacs and CIDER-mode. Open a source
file and run cider-jack-in
.
Run tests with:
clojure -M:test
You can run without building using:
clojure -M -m core --csv resources/example-paychex-pay-item-details.csv --date 2023-12-29 --period "December 2023" --total-fees 206.50
Build
To build, run:
clj -T:build uber