Why do some companies charge more for a non-geographic number than they do for its geographic equivalent?
Where more than one telephone company carries a call, the company you chose to carry the call has control over the retail price of the call. There is no requirement on operators other than BT to offer prices that are consistent across different call types, so for example there is no need to charge 0845 calls at the same level as local calls.