0845 and 0870 call prices from landlines were previously tied to "local rate" and "national rate".
That ended as soon as landline providers made calls to 01 and 02 numbers inclusive within call packages around 2000 to 2005. "Local rate" no longer exists as even when you do have to pay for 01 and 02 calls, there's no longer any price difference based on distance.
Since 2005, 0845 and 0870 numbers cost more than calling 01 and 02. Describing 084 and 087 numbers as "local rate", "lo-call" rate or "national rate" is an offence. Complain to the ASA whenever you see it happening.
From mobiles these calls were always very expensive. Some mobile operators still insist on referring to these as "local" and "national" numbers.
0844 and 0871 were introduced in 2000. These are pure revenue share numbers and have never had any link to "local" or "national" rates. 0843 and 0872 are additional number ranges and work the same way as 0844 and 0871.
With so many many complaints about the usage of 0870 numbers, Ofcom eventually removed revenue share in 2009 and made these calls inclusive from landlines. BT thought Ofcom would do the same for 0845 and made those inclusive too. Ofcom didn't make that change. BT has to subsidise 0845 calls.
These changes do not benefit mobile users. There's also the problem that 0844 and 0871 work differently to 0845 and 0870 and most people don't understand the differences.
There's no price transparency. All of these numbers (except 0870 from 2009 until 2013) are revenue share numbers. The revenue share is clearly defined for 0844, 0843, 0871 and 0872 numbers (see
http://www.ofcom.org.uk/static/numbering/s8_code.txt for details). Although it varies from number to number it remains the same however you call the number, whether from mobile or landline. The revenue share varies for 0845 and 0870 numbers depending on which provider you use to make the call.
Each provider adds their profit on top of the reveneue share. Landline providers add a fixed amount (Virgin adds about 5 p per minute to 0843 and 0844 calls for example). Mobile operators charge a fixed price for the call ignoring the actual revenue share amount (T-Mobile charge 45 p per minute for all 0843 and 0844 calls). BT is not allowed to add a profit to 0843, 0844, 0871 or 0872 numbers. BT charges a nominal rate (somewhat equivalent to what a "local" call would have cost back in the days before 01 and 02 numbers became "inclusive" calls) for 0845 numbers. BT used to charge a nominal rate (similar to a "national" call) for 0870 numbers, but since 2009 is regulated to make 0870 calls "inclusive". Revenue share has been removed from 0870 since 2009.
The consumer is more confused than ever. Nearly a decade has passed, and Ofcom are finally fixing things.
Ofcom introduced 03 numbers in 2007 as a first step. These cost the same as calling 01 and 02 numbers and are usuable within inclusive minutes from both landlines and mobiles.
The Consumer Rights Directive, expected to be enacted in 2013, will force companies using 084 and 087 numbers for customer service to move to the equivalent 034 and 037 number.
Where a company continues using 084 and 087 numbers, the new rules for "unbundled tariffs" also coming in 2013 will force them to declare the built in revenue share premium.
0870 numbers will stop being "inclusive", will return to revenue share and align with how 0871 and 0872 numbers work.
0845 numbers will stop being "inclusive", will continue to be revenue share and will align with how 0844 and 0843 numbers work.
The end result is that 084 and 087 will clearly be seen to be revenue share numbers and 03 will be "inclusive" numbers that are effectively "free" for most callers and the same price as 01 and 02 for those that have to pay (i.e. from mobiles on pay as you go and landlines with no inclusive-calls bundle).
See also
http://en.wikipedia.org/wiki/Non-geographic_telephone_numbers_in_the_United_Kingdom#History_of_non-geographic_prefixes