VirtueMart Forum
VirtueMart 2 + 3 => FAQ Frequently Asked Questions => Topic started by: Milbo on April 14, 2014, 12:14:42 pm

Sometimes people think there is a bug in the calculation of payment fees.
Assume you need $100 and they want 5% as fee. Then you must actually borrow $105 and you have to pay fee for the $5 again => 100 +5 + 0.25 + 0.0125 + 0.00625 + 0.0003125 + ... = ~ 105,2690625....
We use a bit simplified formular and get 105.2631
It sounds first quite reasonable that a fee of 5% and a payment of 100 results in 105. But the The fee is not just x + % of x. Because x + % of x does not consider that the amount to pay increased by 5 and that you have to pay for this 5 again a fee of 5%. The calculation looks like this then => 100 +5 + 0.25 + 0.0125 + 0.000625 + 0.00003125 + ... = ~ 105,26315625.....
This is a geometric progression http://en.wikipedia.org/wiki/Geometric_progression. We use the direct formula
$cartTotalAmount = ($cartTotalAmountOrig + $method>cost_per_transaction) / (1 ($method>cost_percent_total * 0.01));
and get (100 + 0.0) / (1  (5 * 0.01)) = 105.263157894737