In my view, I find buying via m-pesa cheaper than buying via agent, though I only bought once via agent.

Problem with m-pesa is that it can take hours to get the tokens, especially around weekends or peak hours. Their system doesn't scale properly and needs frequent maintenance.