# telecoms.data-allowance A mobile or broadband bundle for one period: how much of the allowance is used, how much is left, and what the usage beyond it costs. Units are the caller's, as long as all three quantities use the same one: megabytes, kilobytes, or anything else. (Operators disagree on whether a GB is 1000 or 1024 MB, so this capability never converts; do it once, before calling, with the operator's own definition.) Overage is charged in whole blocks, rounded up: with 100 MB blocks, 250 MB over the allowance is three blocks. Use a block of 1 to charge per unit. An optional cap limits the overage charge for the period (a customer-set spend cap, or a regulatory bill-shock limit); `capped` says whether it bit, so the bill can say "capped at 45.00". A charge exactly equal to the cap is not capped. The percentage used is rounded **down** to a basis point, so a bundle is never shown as 100% used while there is still something left: 29,999 MB of a 30,000 MB allowance is 99.99%, not 100%. It carries on past 10000 when the customer is over (11000 is 110%), and is null for a zero allowance, where a percentage means nothing; pay-as-you-go usage is then all overage. Errors: negative quantities or prices, a block size below 1, and a cap in a different currency from the price.