On the SEDE, we can see the reputation of a given user on its last synchronization time (typically late weekend), and we can also see the time as he got his legendary badge.
However, we can't get the exact reputation in that given time, because the SEDE doesn't show us that. It also doesn't contain all the required information, from which we could calculate it. But, most of the events affecting the reputation are available in the SEDE. These are:
- votes (up, down)
- accepted answers
- cases as the user accepts an answer
- bounties
- association bonus (except rare cases)
- +2 for edited posts for users with lesser as 2000 rep
The SEDE doesn't show us:
- -1 reputation loss by downvoting an answer
- sometimes posts are deleted on a way that the reputation gained/lost by them remains
- -100 reputation losses for offensive/spam flags
- Also we practically can't calculate the effect, that the reputation is minimized in 1, thus, for example, a rep 1 user with a voted down post doesn't go to -1.
The second group, although it can affect reputation, but these are typically rare. Thus, a good estimation of the reputation in a given time is reachable.
The majority of the reputation gained by legendary users is coming from (1) and (2). I wrote a simple query what does an estimation using it. You can parametrize it with the time you want to get, and with the id of the given user (you can see that from the link of his profile page). The format of the required date is like 2017-07-28 (thus, year-month-day).
Here it is.
To me, it estimates 5059 rep on the StackOverflow for today, while my real reputation is roughly 4600. The difference is coming from answer downs and from bounties.
If you find it interesting, I am open to extend/tune it.