This is a question I get asked quite often from customers. There are certainly many variables that factor into your average throughput during a migration including data source, network, migration engine, service throttling, etc. We just released an excellent whitepaper called the Exchange Online Migration Performance Guide that explains this in detail. I included some snippets below:
Here are some of your major considerations that affect your average throughput per hour:
The whitepaper will drill into each topic above in excellent detail so I won’t rehash it here.
I also found this extremely useful migration throughput per hour chart which shows you can, on average, get around .5GB to 10GB per hour of migrated data depending on source and migration method. This average migration throughput was put together based on Microsoft Premier Deployment services data from actual customers migrating to Office 365:
I highly recommend you read and understand the Office 365 Exchange Online Migration Performance Guide whitepaper here before you begin your migration to Office 365.