1. A method comprising: receiving data to be inserted in a hierarchical database, wherein the hierarchical database comprises at least one of an online analytical processing (OLAP) database or an extensible markup language (XML) database; associating child nodes with at least one parent node in the hierarchical database; distributing the data from the parent node to the corresponding child nodes based on spreading rules, wherein the spreading rules comprise a rule to divide a quantity stored as a number from the data in the parent node into multiple sub-quantities that each correspond to a different one of the child nodes, wherein distributing the data comprises distributing each of the sub-quantities to a corresponding one of the child nodes; capturing a range of outputs extracted from the child nodes based on the distributing; and generating, by a processing device, a selection of a subset of the spreading rules based on the range of outputs, wherein the selection of the subset of the spreading rules comprises an ordered sequence of the subset of the spreading rules.