1. A method for generating natural language insights about a set of data, the method comprising: defining an analysis to be performed on the set of data for each of a plurality of questions; receiving at least one of the questions; performing the defined analysis for the received question on at least a subset of the set of data; and providing a natural language answer to the received question based on performing the defined analysis for the received question.