I think your understanding of the problem is somewhat wrong.
"1. We offer a discount when your printed volume exceeds 20cm3 and the density of your model is higher than 10%: the first 20cm3 are charged at $1.4/cm3. After that, $0.70/cm3 (plus start-up fee)."
This is correct. We can actually write this somewhat more efficiently as
- PRICE(V, D) = 15.5 + 0.7*V IF V > 20 && D > 0.1
- PRICE(V, D) = 1.5 + 1.4*V ELSE
I promise this is entirely equivalent to what you're doing.
"2. Due to an error in our calculation, there's a discontinuity at 20cm3, causing a price drop."
This is not the case, the pricing is entirely continuous at this point: PRICE(19.9, 0.5) = 29.36 and PRICE(20.1, 0.5) = 29.57 so you see there is no jump. The current pricing does follow the blue line (intended price).
The real problem is the following: suppose I've got a model of 99cm3 that has a bounding box of 10x10x10cm. It has a density of 0.099, so it does not get the discount. The price becomes $153.60.
Suppose now I added a little tiny box of 1x1x2cm to my model, just a dummy object. This adds 2cm of volume, bringing the model up to 101cm3. But my model has a lot of empty space, so I do not need to make the bounding box larger to accommodate this extra part. The density is now 0.101, so the model gets the discount. The price is now $86.2.
As you can see, I have nearly slashed the price of my model in half by adding a little volume to it.
What we are suggesting, is that Shapeways does this adding of volume automatically. Not everybody is smart enough to realize that they can make their models cheaper by increasing the volume and I have noticed a few threads on the forums of people being really, really confused about it.
We want Shapways to do this automatically. There's no reason why decreasing the volume of a model should make it more expensive to print.
Our suggestion for a new pricing algorithm is to calculate the minimal density-discount eligible price: the maximum of {model_volume, 20, boundingbox_volume/10}. The price of the model is then calculated as the minimum of the normal price (1.5 + 1.4 * model_volume) and the density-discount price (15.5 + 0.7 * max{model_volume, 20, boundingbox_volume/10}).
All this does is automate the process of a user going in and increasing the volume of the model so it meets the requirements for the density discount.