Cardano GraphQL


I am currently trying to figure out how to extract on-chain information via the Cardano GraphQL API. I am under the assumption that (at least most of) the data shown by blockchain explorers, like Cardano Explorer or Adapools should be accessible via the API.
However, I am having difficulties with:

  1. Interpreting the data returnd by some endpoints
  2. Reproducing the data shown by aforementioned websites

Regarding question 1:
What is the difference between a delegation and stake (de)registration?

Regarding question 2:
Take for example the Hermes Stakepool Germany #1. The number of delegators at the time of writing is shown as 424. Using the delegations_aggregate endpoint with the Count field, returns 831 delegators. So I am thinking that the endpoint might return the number of all delegators that ever delegated to that stakepool and I have to account for delegators which are not delegating to this pool anymore. But then I am not sure how to get the necessary information to do so.

Another example: The active stake for the Hermes Stakepool #1 for epoch 237 is showing 61838935.35 ADA. The activeStake_aggregate endpoint returns 61884914.616276 ADA. A difference of 45979.266276 ADA. Where is the difference coming from. Are there any fees which need to be considered?

I guess GraphQL Voyager aims to make the API self-explanatory but for me that is not the case.
So I am hoping to get some help here to get more insights into how to extract the relevant data and how different concepts of the Cardano Blockchain are related to each other.

Thanks in advance,