Reach is supposed to be the number of person which got exposed to your content. Impression is the number of time your content was seen. So you can have a reach of 5 but impression of 10 if everyone saw your content 2 times.
Since these tierce site have not access to official analytics from the accounts, all of this is estimation based on savent calculs from the time of tweet, the number of person supposed to be online, etc.
The engagement on the other hand is the fact that a user replied, clicked or interacted directly with your content.
So the engagement is always lower than impression and reach, because only a few people are clicking on those links your are tweeting.
I hope you understand why I am trying to say :)
And the best tool for reporting, if you can have access to it, is analytics.twitter.com for twitter
Yes, I always try to use Twitter's native analytics tool whenever I can. I always feel like something gets lost in translation thru API.
So true. And their tool is really great, it give all the important information to run an account. But I don't have access to it for Steemit, so I am forced to bypass it.