Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond that: results are computed from already-cached data (not a live upstream fetch) and include a stated calculation methodology, plus the caveat that it does not replace official school recognition. It omits whether stale cache affects results, but the added transparency is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.