diff --git a/services/platform-service/src/modules/ai-budgets/routes.ts b/services/platform-service/src/modules/ai-budgets/routes.ts index eeeffd83..1e9949fb 100644 --- a/services/platform-service/src/modules/ai-budgets/routes.ts +++ b/services/platform-service/src/modules/ai-budgets/routes.ts @@ -330,13 +330,14 @@ export async function aiBudgetRoutes(app: FastifyInstance) { } const prevPeriodStart = toIsoDayBoundary(periodStart(prev, policy.period)); - // Get spend from previous period + // Get spend from previous period only (bounded to prev→current) const prevEntries = await repo.listSpendEntries(access.productId, { policyId: id, since: prevPeriodStart, }); - // Only count entries in previous period (before current period) - const prevPeriodEntries = prevEntries.filter(e => e.recordedAt < currentPeriodStart); + const prevPeriodEntries = prevEntries.filter( + e => e.recordedAt >= prevPeriodStart && e.recordedAt < currentPeriodStart + ); const spentUsd = prevPeriodEntries.reduce((sum, e) => sum + e.costUsd, 0); const remainingUsd = Math.max(0, policy.budgetUsd - spentUsd); const rolledOverUsd = remainingUsd; // Full rollover — could add a cap later