Beancount importer for Paychex payroll data
Find a file
Ben Sturmfels 6ac0a45273
Remove --pay-invoice-no and replace with retirement invoice value
Rosanne advised we were showing TODO-PAY-INVOICE when it should be
TODO-RETIREMENT-INVOICE.
2024-02-23 10:22:44 +11:00
resources Add example data and test, fix ungrouping, extend docs 2024-02-22 14:06:45 +11:00
src Remove --pay-invoice-no and replace with retirement invoice value 2024-02-23 10:22:44 +11:00
test Tidy headers 2024-02-22 14:21:47 +11:00
.dir-locals.el Document and tidy 2024-02-22 11:07:59 +11:00
.gitignore Document and tidy 2024-02-22 11:07:59 +11:00
build.clj Document and tidy 2024-02-22 11:07:59 +11:00
deps.edn Add example data and test, fix ungrouping, extend docs 2024-02-22 14:06:45 +11:00
LICENSE.txt Document and tidy 2024-02-22 11:07:59 +11:00
README.md Update docs to explain how to test output with Beancount 2024-02-22 14:29:50 +11:00
tests.edn Add tests.edn to avoid Kaocha warnings 2024-02-22 14:12:42 +11:00
TODO.md Confirm my questions for Rosanne 2024-02-23 10:16:50 +11:00

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