I think Lehalle answer is very good but I would like to answer in a slightly different manner, maybe from an economical point of view.
I think the real question is What are market data fees charged for?.
Assume the whole data was available to anybody for free, then nobody would be willing to pay for it. There are essentially two main reasons why the data costs something:
- The data itself is the property of someone and is not available for free (limited supply resulting in monopolistic environment).
- If the raw data was publicly available then you would have to identify the added value from a provider for which you are required to pay a fee.
1) Data availability
Market data is provided by exchanges, it's not there for anybody to observe. If there were no exchange, there would be no real single price for a security. So the exchange is providing a service allowing investor to trade at some centralized price. They basically own this data in a sense. You could try setting up an exchange providing live data for free, but you would see that it costs money (from an infrastructure point of view) so you need to generate money from all possible sources to make it interesting to have an exchange. You could arguably remove market data fees but you would increase transactions costs or some subscription fee to be able to participate to the exchange. So basically, you want to use the service offered by the exchange (which includes market data) and you hence pay for that service.
2) Added value
There is some added value to the raw data of an exchange. Essentially, the provider will apply filters to the data thus removing possible misprints to make sure that the data is actually correct. Besides, the data has to be collected and stored using some IT infrastructure which you have to pay for. This is particularly important for tick data and you can see pretty quickly that you wouldn't be able to manage live ticks if you do not have yourself a huge IT department ready to handle this. You also pay for the way data is delivered to you; setting up a real-time push service to deliver data does cost money.
So, you actually pay for the services of the data providers and because setting up an exchange would not be possible without charging fees (you pay the existence of the exchange).