Make sure you're running Ruby 1.9
git clone git://github.com/phillipoertel/taxomatic.git && cd taxomatic && bundle # … now configure database.yml for your DB … RUBYOPT=-Ku rake db:create db:schema:load RUBYOPT=-Ku rails server
taxomatic helps you do your monthly tax declaration. It imports your invoices and bank statements, lets you flag expenses easily, and calculates the tax to be paid.
Tax declaration page
Listing account statements (waiting to be flagged as expenses)
How data gets into the system (the automated way)
- You pay your taxes in Germany and have to do monthly advance payments for sales tax (VAT, Umsatzsteuer).
- You manage your bank accounts with the OS X application MoneyMoney (optional but recommended)
- You use Harvest to bill your clients (optional)
Steps 2. and 3. are optional, but they are the part that makes the declaration take less than 5 minutes. You can also enter expenses and invoices by hand, I did that for a long time and it worked well enough. I'm open to pull requests for importers from other tools and services (like Saldomat).
- Ensure you're running Ruby 1.9 and have the RUBYOPT environment variable set to -Ku.
- Clone the repository, run bundle to install the gems, and set up / migrate the database.
- Copy config/taxomatic.yml.example to config/taxomatic.yml and configure it appropriately.
Importing statements from MoneyMoney
- Before you start, ensure that all statement lines you are going to import have a category, and that this category is present in taxomatic (matching is done by name). You can also do this by trial-and-error as the lines that can't be imported will be skipped.
- Export the statements of the desired MoneyMoney accounts as CSV. When exporting, leave all settings at their default
- Save the file in data/moneymoney-giro.csv.
Importing invoices from Harvest
- Before you start, ensure that all clients of your invoices exist in taxomatic. The matching is done by the harvest_client id.
- Ensure the harvest client is configured in config/taxomatic.yml
On the next export, taxomatic will be careful not to import invoices twice.
rake backupto dump the current database state to data/backups.
rake importto import both statements and invoices. This will also do a backup before importing.
- Run taxomatic with the Pow server so it'll always be running in the background when you need it.
taxomatic may set your house on fire, delete all your bank accounts (including the money in them) and even kill a kitten in the process. Well, maybe it won't, but at least you have been warned.
taxomatic is not security reviewed and has no login, so it shouldn't be run on the web. The tax calculations haven't been checked in depth. For anyone who hasn't written it, it may be hard to understand/use the tool. See Todos.
taxomatic is also not well tested everywhere, although I've been careful to test the recent parts of the model layer (data import). See Todos.
It is (probably) also one of the oldest Ruby on Rails applications alive, being started at version 0.something. That's why you'll find plenty of code that would be written differently today.
- Write acceptance tests for a few variations of tax declarations.
- Ensure that a StatementLine can only have one expense (uniqueness of payments.expense_id)
- Modernize deprecated/old school Ruby/Rails code, convert .erb templates to .slim.
- Statement lines page: set expense and VAT tax directly on the page
- VAT tax page: removed tabs, display everything in one view now
- Added Changelog
- Initial public release