A partitioning system that provides a fast, simple and flexible method for partitioning a dataset. The process, executed within a computer system, retrieves product and sales data from a data store. Data items are selected and sorted by a data attribute of interest to a user and a distribution curve is determined for the selected data and data attribute. The total length of the distribution curve is calculated, and then the curve is divided into k equal pieces, where k is the number of the partitions. The selected data is thereafter partitioned into k groups corresponding to the curve divisions.