@Scotia0 I think the confusion stems from your use of the term "refund" as going to you, the host.
Refunds go to the guest.
So, if the guest cancels 5 days or more before their arrival date, the *guest* gets a full refund, not the host.
Your guest cancelled 2 days before arrival, so the *guest* received a 50% refund, and you received what was left over.
https://www.airbnb.com/home/cancellation_policies#moderate
Look at the explanation of the cancellation policies, and know that refunds go to the guest, not the host.
The guest was either going to get 100% of their money back, or 50%.
You were either going to get 0% of the money, or 50%.