Surface per-member total spend in Teams > Members tab

Adds a "Total Spend (USD)" column backed by the new
membership.total_spend field. Cumulative across budget cycles;
tracking began 2026-04-21.
This commit is contained in:
Ryan Crabbe 2026-04-22 15:00:13 -07:00
parent 9a6ddef09f
commit 331e3f2250
No known key found for this signature in database
2 changed files with 7 additions and 7 deletions

View file

@ -60,6 +60,7 @@ export interface TeamMembership {
team_id: string; team_id: string;
budget_id: string; budget_id: string;
spend: number; spend: number;
total_spend: number | null;
litellm_budget_table: { litellm_budget_table: {
budget_id: string; budget_id: string;
soft_budget: number | null; soft_budget: number | null;

View file

@ -45,11 +45,10 @@ export default function TeamMemberTab({
return "0"; return "0";
}; };
// Helper function to get spend for a user const getUserTotalSpend = (userId: string | null): number => {
const getUserSpend = (userId: string | null): number | null => {
if (!userId) return 0; if (!userId) return 0;
const membership = teamData.team_memberships.find((tm) => tm.user_id === userId); const membership = teamData.team_memberships.find((tm) => tm.user_id === userId);
return membership?.spend || 0; return membership?.total_spend ?? 0;
}; };
const getUserBudget = (userId: string | null): string | null => { const getUserBudget = (userId: string | null): string | null => {
@ -124,15 +123,15 @@ export default function TeamMemberTab({
{ {
title: ( title: (
<Space direction="horizontal"> <Space direction="horizontal">
Team Member Spend (USD) Total Spend (USD)
<Tooltip title="This is the amount spent by a user in the team."> <Tooltip title="Total spend by this member within this team. Tracking began 2026-04-21; spend from before that date is not included.">
<InfoCircleOutlined /> <InfoCircleOutlined />
</Tooltip> </Tooltip>
</Space> </Space>
), ),
key: "spend", key: "total_spend",
render: (_: unknown, record: Member) => ( render: (_: unknown, record: Member) => (
<Typography.Text>${formatNumberWithCommas(getUserSpend(record.user_id), 4)}</Typography.Text> <Typography.Text>${formatNumberWithCommas(getUserTotalSpend(record.user_id), 4)}</Typography.Text>
), ),
}, },
{ {