{title}
- {isRenewable && nextQuotaReset && (
+ {isRenewing && nextQuotaReset && (
Renews{' '}
{nextQuotaReset.toLocaleDateString(undefined, {
@@ -270,9 +270,17 @@ export const UsageDisplay = ({
})
// Group credits by expiration type (excluding organization)
- // referral_legacy and subscription renew monthly, referral (one-time) never expires
- const expiringTypes: FilteredGrantType[] = ['free', 'referral_legacy', 'subscription']
- const nonExpiringTypes: FilteredGrantType[] = ['referral', 'admin', 'purchase', 'ad']
+ // referral_legacy and subscription renew periodically. Free credits can be
+ // one-time signup credits or grandfathered monthly credits, so keep them in
+ // the source-based group below.
+ const expiringTypes: FilteredGrantType[] = ['referral_legacy', 'subscription']
+ const nonExpiringTypes: FilteredGrantType[] = [
+ 'free',
+ 'referral',
+ 'admin',
+ 'purchase',
+ 'ad',
+ ]
const expiringTotal = expiringTypes.reduce(
(acc, type) => acc + (principals?.[type] || breakdown[type] || 0),
@@ -300,7 +308,7 @@ export const UsageDisplay = ({
Credit Balance
- We'll use your renewable credits before non-renewable ones
+ Credits are consumed by grant priority, then expiration date
{totalDebt > 500 && (
@@ -317,7 +325,7 @@ export const UsageDisplay = ({
{/* Credit Categories with expandable details */}