I'm trying to create some statistics on how long a transaction spends in the mempool before being included in a block, so I can reason about future gas prices. It would appear transactions in Ethereum don't receive a timestamp until they're mined, so instead, what is the best way of observing when a transaction was submitted? If I ask Parity to inform me of all new pending transactions, and recording the local timestamp at that time, quite often the block it ends up being included in, has a timestamp that is prior to when I saw it, so this seems wildly unreliable.
Wondering how other API's obtain this information reliably, and how "gas station" sites intelligently calculate this information.