Do you think `estimateCosts` is a better name? Can we hide this function and provide `analyze(ratings, rank, numUserBlocks, numProductBlocks)` because it is easy to try.