We use LiquidPlanner. Here's some scripts that help us extract data from it