# UJ-005 View credits and usage

Audience: AI coding agents first.

- Actor + entry point: WordPress administrator; dashboard and `wp-admin/admin.php?page=international-press-zone#/licensing`.
- Priority: MUST-HAVE.
- Preconditions: Provision subscription and execute one translation through public APIs; never seed balances directly.
- Test layer: L2.

## Steps

1. Open dashboard → `Characters Used` stat renders a numeric value, not `Loading...` (`admin/src/pages/dashboard.js:110-116`).
2. Open Licensing → active plan, masked license key, sites used, language allowance, and expiry render (`admin/src/pages/licensing.js:182-225`).
3. Inspect usage card → `Translation Languages`, used/allowed, and `Remaining` render (`admin/src/pages/licensing.js:253-301`).

## Failure branches

- Auth failure → licensing load cannot disclose usage; visible load error required.
- Rate limit `429` or backend unreachable → visible error/retry state required; stale numeric zero MUST NOT masquerade as live usage.

## Backend touchpoints

Plugin `GET /license`; plugin `GET /license/usage`; backend account/usage endpoint defined by migration implementation.

