I've been using YNAB for over a year now. It has a learning curve but it works.