jrh3k5 / autonabber Goto Github PK
View Code? Open in Web Editor NEWA tool used to automate application of changes to a budget managed by You Need a Budget
License: Apache License 2.0
A tool used to automate application of changes to a budget managed by You Need a Budget
License: Apache License 2.0
I have a Groceries budget item that is currently at a balance of $0.00 with an activity of -$79.68 for the current month. When I apply budget changes, this is what the summary tells me:
Groceries: -$79.68 => $20.32 (+$100.00)
That should be a starting of $0.00, for a total of $100 after all is said and done.
It should be noted that the application did apply correctly (the budget ended up with a total of $100), so this appears to be merely an issue with the estimation/projection logic.
When you confirm that you wish to apply changes, there's no output to indicate that the application hasn't hung. It would be nice if the application printed some kind of progress meter to indicate that things are moving along.
Despite having a non-zero amount in my Ready to Assign category, the application warned me I didn't have enough in Ready to Assign.
When the budget change is applied, it should set the balance to:
existing balance + delta
But, instead, it's setting it to:
existing balance + (existing balance + delta)
Looks like budget change applications might be getting double-counted? The actual budget application wasn't incorrect - i.e., the correct amount of money was applied - but the item progress started at 44 items and ended at 88 (somehow):
2022-07-08T09:08:20.945-0500 INFO autonabber/main.go:107 Applying change 1 of 44
2022-07-08T09:08:21.334-0500 INFO autonabber/main.go:107 Applying change 2 of 45
2022-07-08T09:08:21.609-0500 INFO autonabber/main.go:107 Applying change 3 of 46
2022-07-08T09:08:21.889-0500 INFO autonabber/main.go:107 Applying change 4 of 47
2022-07-08T09:08:22.169-0500 INFO autonabber/main.go:107 Applying change 5 of 48
2022-07-08T09:08:22.446-0500 INFO autonabber/main.go:107 Applying change 6 of 49
2022-07-08T09:08:22.719-0500 INFO autonabber/main.go:107 Applying change 7 of 50
2022-07-08T09:08:22.988-0500 INFO autonabber/main.go:107 Applying change 8 of 51
2022-07-08T09:08:23.296-0500 INFO autonabber/main.go:107 Applying change 9 of 52
2022-07-08T09:08:23.570-0500 INFO autonabber/main.go:107 Applying change 10 of 53
2022-07-08T09:08:23.847-0500 INFO autonabber/main.go:107 Applying change 11 of 54
2022-07-08T09:08:24.134-0500 INFO autonabber/main.go:107 Applying change 12 of 55
2022-07-08T09:08:24.425-0500 INFO autonabber/main.go:107 Applying change 13 of 56
2022-07-08T09:08:24.732-0500 INFO autonabber/main.go:107 Applying change 14 of 57
2022-07-08T09:08:25.082-0500 INFO autonabber/main.go:107 Applying change 15 of 58
2022-07-08T09:08:25.388-0500 INFO autonabber/main.go:107 Applying change 16 of 59
2022-07-08T09:08:25.730-0500 INFO autonabber/main.go:107 Applying change 17 of 60
2022-07-08T09:08:26.098-0500 INFO autonabber/main.go:107 Applying change 18 of 61
2022-07-08T09:08:26.380-0500 INFO autonabber/main.go:107 Applying change 19 of 62
2022-07-08T09:08:26.664-0500 INFO autonabber/main.go:107 Applying change 20 of 63
2022-07-08T09:08:26.931-0500 INFO autonabber/main.go:107 Applying change 21 of 64
2022-07-08T09:08:27.198-0500 INFO autonabber/main.go:107 Applying change 22 of 65
2022-07-08T09:08:27.454-0500 INFO autonabber/main.go:107 Applying change 23 of 66
2022-07-08T09:08:27.737-0500 INFO autonabber/main.go:107 Applying change 24 of 67
2022-07-08T09:08:28.018-0500 INFO autonabber/main.go:107 Applying change 25 of 68
2022-07-08T09:08:28.325-0500 INFO autonabber/main.go:107 Applying change 26 of 69
2022-07-08T09:08:28.628-0500 INFO autonabber/main.go:107 Applying change 27 of 70
2022-07-08T09:08:28.894-0500 INFO autonabber/main.go:107 Applying change 28 of 71
2022-07-08T09:08:29.167-0500 INFO autonabber/main.go:107 Applying change 29 of 72
2022-07-08T09:08:29.446-0500 INFO autonabber/main.go:107 Applying change 30 of 73
2022-07-08T09:08:29.760-0500 INFO autonabber/main.go:107 Applying change 31 of 74
2022-07-08T09:08:30.093-0500 INFO autonabber/main.go:107 Applying change 32 of 75
2022-07-08T09:08:30.469-0500 INFO autonabber/main.go:107 Applying change 33 of 76
2022-07-08T09:08:31.098-0500 INFO autonabber/main.go:107 Applying change 34 of 77
2022-07-08T09:08:31.717-0500 INFO autonabber/main.go:107 Applying change 35 of 78
2022-07-08T09:08:32.072-0500 INFO autonabber/main.go:107 Applying change 36 of 79
2022-07-08T09:08:32.353-0500 INFO autonabber/main.go:107 Applying change 37 of 80
2022-07-08T09:08:32.643-0500 INFO autonabber/main.go:107 Applying change 38 of 81
2022-07-08T09:08:32.907-0500 INFO autonabber/main.go:107 Applying change 39 of 82
2022-07-08T09:08:33.202-0500 INFO autonabber/main.go:107 Applying change 40 of 83
2022-07-08T09:08:33.510-0500 INFO autonabber/main.go:107 Applying change 41 of 84
2022-07-08T09:08:33.778-0500 INFO autonabber/main.go:107 Applying change 42 of 85
2022-07-08T09:08:34.057-0500 INFO autonabber/main.go:107 Applying change 43 of 86
2022-07-08T09:08:34.359-0500 INFO autonabber/main.go:107 Applying change 44 of 87
Added $3584.40 across 88 categories
#1 would be easier to solve if I could see what the actual budget looked like. Let's add that.
Currently, if the program detects it's in a dry run, it skips the execution behavior. This has allowed bugs like #9 to sneak in.
To help identify these bugs during development, change the logic to merely use a read-only YNAB client, allowing us to exercise more parts of the program.
Because changes made to budgets through the YNAB API do not appear in the history of movement of money, creating "undo" files to allow a rollback of changes would be helpful in case either the user or the tool screws something up.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.