I had to use Python to get my head around it (Excel will also work). Initially, I did think the figure would "run-away", but I don't think it does.

Here is their 300Gb/month package with 200Gb/month usage. q is your actual quota value for the month, p is the package you are on.

>>> q=p=300

>>> q=p+(q-200)*0.5; print q

350.0

>>> q=p+(q-200)*0.5; print q

375.0

>>> q=p+(q-200)*0.5; print q

387.5

>>> q=p+(q-200)*0.5; print q

393.75

>>> q=p+(q-200)*0.5; print q

396.875

>>> q=p+(q-200)*0.5; print q

398.4375

>>> q=p+(q-200)*0.5; print q

399.21875

>>> q=p+(q-200)*0.5; print q

399.609375

>>> q=p+(q-200)*0.5; print q

399.8046875

>>> q=p+(q-200)*0.5; print q

399.90234375

>>> q=p+(q-200)*0.5; print q

399.951171875

>>> q=p+(q-200)*0.5; print q

399.975585938

>>> q=p+(q-200)*0.5; print q

399.987792969

>>> q=p+(q-200)*0.5; print q

399.993896484

So, this behaviour would tend you to a monthly allowance of 400Gb/month.

Here's the same thing but if you used 50Gb/month on a 300Gb/month quota:

>>> q=p=300

>>> q=p+(q-50)*0.5; print q

425.0

>>> q=p+(q-50)*0.5; print q

487.5

>>> q=p+(q-50)*0.5; print q

518.75

>>> q=p+(q-50)*0.5; print q

534.375

>>> q=p+(q-50)*0.5; print q

542.1875

>>> q=p+(q-50)*0.5; print q

546.09375

>>> q=p+(q-50)*0.5; print q

548.046875

>>> q=p+(q-50)*0.5; print q

549.0234375

>>> q=p+(q-50)*0.5; print q

549.51171875

>>> q=p+(q-50)*0.5; print q

549.755859375

>>> q=p+(q-50)*0.5; print q

549.877929688

>>> q=p+(q-50)*0.5; print q

549.938964844

>>> q=p+(q-50)*0.5; print q

549.969482422

>>> q=p+(q-50)*0.5; print q

549.984741211

>>> q=p+(q-50)*0.5; print q

549.992370605

250Gb/month on a 300Gb/month quota:

>>> q=p=300

>>> q=p+(q-250)*0.5; print q

325.0

>>> q=p+(q-250)*0.5; print q

337.5

>>> q=p+(q-250)*0.5; print q

343.75

>>> q=p+(q-250)*0.5; print q

346.875

>>> q=p+(q-250)*0.5; print q

348.4375

>>> q=p+(q-250)*0.5; print q

349.21875

>>> q=p+(q-250)*0.5; print q

349.609375

>>> q=p+(q-250)*0.5; print q

349.8046875

>>> q=p+(q-250)*0.5; print q

349.90234375

>>> q=p+(q-250)*0.5; print q

349.951171875

>>> q=p+(q-250)*0.5; print q

349.975585938

>>> q=p+(q-250)*0.5; print q

349.987792969

>>> q=p+(q-250)*0.5; print q

349.993896484

And finally, for good measure, a usage of 500Gb/month on their 1TB/month package:

>>> q=p=1000

>>> q=p+(q-500)*0.5; print q

1250.0

>>> q=p+(q-500)*0.5; print q

1375.0

>>> q=p+(q-500)*0.5; print q

1437.5

>>> q=p+(q-500)*0.5; print q

1468.75

>>> q=p+(q-500)*0.5; print q

1484.375

>>> q=p+(q-500)*0.5; print q

1492.1875

>>> q=p+(q-500)*0.5; print q

1496.09375

>>> q=p+(q-500)*0.5; print q

1498.046875

>>> q=p+(q-500)*0.5; print q

1499.0234375

>>> q=p+(q-500)*0.5; print q

1499.51171875

>>> q=p+(q-500)*0.5; print q

1499.75585938

>>> q=p+(q-500)*0.5; print q

1499.87792969

>>> q=p+(q-500)*0.5; print q

1499.93896484

>>> q=p+(q-500)*0.5; print q

1499.96948242

>>> q=p+(q-500)*0.5; print q

1499.98474121

>>> q=p+(q-500)*0.5; print q

1499.99237061

I do believe they have thought this through. It's quite a good idea to be fair - I've not seen this approach by any other ISP with quotas.

UPDATE: As usual, further detailed information is on Adrian's blog (

http://www.revk.uk/2017/09/quota-bonus.html ), but specifically:

The nice thing is the system is self limiting in time and amount by the nature of geometric progression. It does not need any caps or time limits. It also makes it simple when you change your monthly quota and no change in caps - the same simple rule applies.

*Edited by mixt (Thu 14-Sep-17 03:33:10)*