.gitignore | ||
getOpenCollectiveTransactions.js | ||
index.js | ||
manual-matchups.csv | ||
package-lock.json | ||
package.json | ||
ReadMe.md | ||
screenshot.png |
high tech automated bean counting system
This is a commandline application that processes our USBank transaction export and our OpenCollective data in order to produce a single combined CSV file that shows how all the OpenCollective transactions match up with the UsBank transactions.
This helps our OpenCollective remain tethered to reality, its basically a way of auditing our finances to make sure that nothing is seriously wrong.
Overview of how to use it
- run the application following the "how to run it" steps below
- open the
output.csv
file with LibreOffice or Excel or whatever and look for discrepancies (marked with@@@@@@@@@
) - Have the OpenCollective admin make changes to the OpenCollective transactions to fix these discrepancies
- "refund" OpenCollective transactions (this is the OpenCollective term for "remove" or "delete" a transaction record)
- create new OpenCollective transactions (submit expense or add funds, under the actions menu)
- Note that the system currently refuses to match up transactions which are more than 1 week apart... if the dates get messed up with corresponding txns more than 1 week apart for whatever reason then you can fix it by manually adding the data to the
manual-matchups.csv
file.
- re-run the application and reload the output.csv in your spreadsheet program
- repeat until the records are cleaned up to your satisfaction
output looks like this
set up OpenCollective API access
https://graphql-docs-v2.opencollective.com/access#with-a-personal-token
The Personal Token give you access to the API and is automatically authenticating you as an individual. To create one, go to your personal settings and navigate to the
For developers
section
For example you would go to: https://opencollective.com/forest-johnson/admin/for-developers
Then set your token as an environment variable like OPENCOLLECTIVE_TOKEN=52ab4......
how to run it
npm install
mkdir input
download the opencollective transaction export. it should be namednow the app pulls direct from OpenCollective using GraphQL API.layerzero-transactions.csv
. put it in the input folder- download the usbank transactions export for, starting from
2022-07-24
until today. it should be named something likeChecking - 9979_07-24-2022_03-21-2023.csv
. put it in the input folder OPENCOLLECTIVE_TOKEN=52ab4...... node index.js > output.csv