Genvid
Documentation

Budget Management Guide

Learn how to configure and monitor credit budget limits for your projects, assets, and shots using Genvid's Budget Manager.

Overview

The Budget Management System provides hierarchical budget tracking with real-time spending visibility across your entire production. It helps you prevent cost overruns by establishing clear spending limits and providing instant feedback when approaching budget thresholds.

Supervisors and admins can set credit limits at three levels:

  • Project Budget - Total credit limit for the entire project (must be greater than or equal to sum of all child budgets)
  • Asset Budgets - Individual limits for each asset (cast member, location, prop, costume)
  • Shot Budgets - Granular limits with three independent sub-budgets per shot (keyframe, dialog, video)

Why Budget Management Matters

  • Cost Control: Prevent unexpected credit consumption during production
  • Resource Planning: Allocate budgets strategically across assets and shots
  • Real-time Awareness: Artists see budget status while working, enabling proactive decisions
  • Production Confidence: Start projects with clear financial boundaries

Who Can Use Which Features

RoleConfigure BudgetsView BudgetsGenerate Content
Admin
Supervisor
Artist✓ (if budget allows)
Contributor✓ (if budget allows)

Getting Started

Prerequisites and Permissions

To configure budgets, you need:

  • Supervisor or Admin role in your organization
  • Access to a project where you want to set budgets
  • Basic understanding of your production's credit requirements

All users can view budget information, but only Supervisors and Admins can modify budgets.

Understanding Budget Hierarchy

Genvid enforces a hierarchical budget structure:

Project Budget ($1,000)
├── Asset Budgets ($300 total)
│   ├── Cast Member A: $100
│   ├── Location B: $100
│   └── Prop C: $100
└── Shot Budgets ($700 total)
    ├── Shot 1: $150 (keyframe: $50, dialog: $30, video: $70)
    ├── Shot 2: $150 (keyframe: $50, dialog: $30, video: $70)
    └── Shot 3: $400 (keyframe: $150, dialog: $50, video: $200)

Key Constraint: Project budget must always be ≥ sum of all asset budgets + sum of all shot budgets.


Accessing the Budget Manager

Reach the Budget Manager through the project's section menu:

  1. Open your project
  2. Open the section menu from the breadcrumb dropdown (or go to Project Hub → Project Sections)
  3. Select Budget & Analytics

The Budget Manager displays three budget sections at the top:

  • Project Budget section
  • Asset Budgets table
  • Shot Budgets table

Below the budget sections, the same page hosts a Cost Analytics section for reviewing what your production has actually spent (see the Reviewing Cost Analytics section below).


Configuring Budgets (For Supervisors/Admins)

Setting a Project-Level Budget

The project budget is the total credit limit for all AI generation operations across assets and shots.

Step-by-Step:

  1. In the Project Budget section, locate the budget input field
  2. Enter your desired total budget limit (e.g., 1000)
  3. Click Save to apply the budget
  4. The system validates that the budget is ≥ sum of all asset and shot budgets

Example:

Scenario:
- Asset Budgets Total: $300
- Shot Budgets Total: $600
- Minimum Project Budget: $900

Valid: Setting project budget to $1,000 ✓
Invalid: Setting project budget to $800 ✗ (below $900 minimum)

Note: If you try to set a project budget lower than the sum of child budgets, you'll receive a validation error displaying the required minimum amount. The system will warn you but allow the change (you can override if needed).

To Set Unlimited Budget:

  1. Clear the budget field completely (leave empty)
  2. Click Save
  3. The system displays (infinity symbol) indicating unlimited spending

[See Screenshot: Project Budget Configuration]


Setting Individual Asset Budgets

Asset budgets control spending for individual assets like cast members, locations, props, and costumes. Each asset can have its own budget limit for image generation.

Step-by-Step:

  1. In the Asset Budgets table, locate the asset you want to budget
  2. Click on the budget cell in the row (or click the edit icon)
  3. Enter the new budget amount (e.g., 150)
  4. Press Enter or click outside the field to save
  5. The budget saves automatically and validates immediately

Real-time Validation: Asset budgets are validated immediately. If the new budget would cause the project budget to be exceeded, you'll see an error message and the change will be rejected.

Tips:

  • Sort the table by asset name or current spending to prioritize budgeting
  • Use the spending vs. budget columns to identify assets approaching limits
  • Remember that asset budgets only track image generation costs, not other operations

[See Screenshot: Asset Budget Table]


Setting Shot Budgets

Shot budgets are more complex than asset budgets because they consist of three independent sub-budgets:

  • Keyframe Budget - Credits for generating the first frame/keyframe image
  • Dialog Budget - Credits for generating audio/speech for the shot
  • Video Budget - Credits for rendering the final video

Important: You must set all three sub-budgets together. The system enforces an "all or none" rule to ensure consistent tracking.

Step-by-Step:

  1. In the Shot Budgets table, locate the shot you want to budget
  2. Click on the shot row to expand it (displays the three sub-budget fields)
  3. Enter values for all three sub-budgets:
    • Keyframe Budget: e.g., 50
    • Dialog Budget: e.g., 30
    • Video Budget: e.g., 100
  4. Click Save (all three fields must be filled)
  5. The system calculates total shot budget: $180 (50 + 30 + 100)

All or None Rule: You must set all three sub-budgets together. The system rejects partial budgets (e.g., only keyframe and dialog without video). This ensures consistent budget tracking across all generation types. To remove a shot's budget, set all three fields to empty.

Shot Budget Validation:

The system checks two constraints when saving shot budgets:

  1. All three sub-budgets must be provided together (or all three empty)
  2. The total shot budgets (summed across all shots) must not exceed the project budget (after accounting for asset budgets)

[See Screenshot: Shot Budget Expandable Row]


Using Bulk Budget Operations

For large productions with many assets or shots (50+), manually setting each budget individually is tedious. Use bulk operations to quickly establish uniform budgets.

Bulk Asset Budgets

Step-by-Step:

  1. Above the Asset Budgets table, click the Set All Asset Budgets button
  2. In the dialog that opens, enter a single budget value (e.g., 200)
  3. Click Apply
  4. A confirmation dialog appears displaying: "This will set budgets for 30 assets. Continue?"
  5. Review the impact (30 assets × $200 = $6,000 total)
  6. Click Confirm to apply, or Cancel to abort

Overwrite Warning: If some assets already have budgets set, the confirmation dialog displays how many existing budgets will be overwritten. The system does not display individual deltas, only the count of affected assets.

Validation: The system validates that the total (budget × asset count) won't exceed the project budget. If it would, you'll see an error and the operation will be rejected.

[See Screenshot: Bulk Asset Budget Dialog]

Bulk Shot Budgets

Bulk shot budgeting requires entering all three sub-budget values (per the "all or none" rule).

Step-by-Step:

  1. Above the Shot Budgets table, click the Set All Shot Budgets button
  2. In the dialog, enter values for all three sub-budgets:
    • Keyframe Budget: e.g., 100
    • Dialog Budget: e.g., 50
    • Video Budget: e.g., 150
  3. Click Apply
  4. A confirmation dialog displays: "This will set budgets for 100 shots. Continue?"
  5. Review the total impact: 100 shots × ($100 + $50 + $150) = $30,000 total
  6. Click Confirm to apply

Project Budget Constraint: The system calculates the total impact and validates against the project budget. If the bulk operation would violate the constraint (total shot budgets + asset budgets > project budget), you'll see an error and must either:

  • Increase the project budget first
  • Reduce the per-shot budget amounts
  • Apply budgets individually to fewer shots

Button Availability: The "Set All Asset Budgets" button is disabled if there are no assets in the project. Similarly, "Set All Shot Budgets" is disabled if there is no storyboard (no shots exist yet).

[See Screenshot: Bulk Shot Budget Dialog]


Understanding Budget Displays (For All Users)

Budget information appears throughout the application so artists and supervisors can monitor spending in context while working.

Budget Display Format

All budget displays use the same format:

$ [amount spent to date] / $ [budget limit]

Examples:

  • $ 45 / $ 100 - Spent $45 of $100 budget (45% used)
  • $ 195 / $ 200 - Spent $195 of $200 budget (97.5% used, critical!)
  • $ 80 / ∞ - Spent $80, no budget limit set (unlimited)

Color Coding System

Budget displays use color-coded thresholds to display spending status at a glance:

ColorThresholdStatusCSS Color
GREEN (Normal)< 80% spentSafe zone, plenty of budget remainingDefault text color
AMBER (Warning)80-94% spentApproaching limit, monitor usage closely#f59e0b
RED (Error)≥ 95% spentCritical zone, budget nearly exhausted#ef4444
GRAY (Unset)No budget setUnlimited spending allowed (∞ symbol)Muted gray

Visual Indicators:

Normal:   $ 45 / $ 100  (45% - black text)
Warning:  $ 85 / $ 100  (85% - amber text)
Error:    $ 97 / $ 100  (97% - red text)
Unset:    $ 45 / ∞      (no limit - gray text)

Accessibility Note: The color coding is supplemented with percentage-based logic, making it easy to understand budget status even without relying solely on color perception.


Where Budgets Appear

Budget information is displayed throughout the application:

1. Project Detail Page

Location: Project header section Displays: Project-level budget (total spent / total budget) Audience: All users viewing the project Use Case: Quick overview of overall project budget status

[See Screenshot: Project Detail Budget Display]


2. Assignment Row

Location: In the assignment list for shots/assets Displays: Budget for the assigned shot or asset Audience: Artists and supervisors reviewing assignments Use Case: Understand budget constraints before starting work on an assignment

[See Screenshot: Assignment Row Budget]


3. Image Editor

Location: Sidebar or header of the Image Editor Displays: Asset budget (spent / budget) for the current asset Audience: Artists generating images for assets Use Case: Monitor asset budget while iterating on image generations Special Behavior: Generate button is disabled when spending ≥ budget

[See Screenshot: Image Editor Budget Display]


4. Keyframe Editor

Location: Editor header or sidebar Displays: Shot keyframe budget (keyframe_spent / keyframe_budget) Audience: Artists generating keyframe images for shots Use Case: Track keyframe generation costs separately from video/dialog Special Behavior: Generate button is disabled when keyframe spending ≥ keyframe budget

[See Screenshot: Keyframe Editor Budget Display]


5. Dialog Editor

Location: Editor header or sidebar Displays: Shot dialog budget (dialog_spent / dialog_budget) Audience: Artists generating audio/speech for shots Use Case: Monitor dialog generation costs independently Special Behavior: Generate button is disabled when dialog spending ≥ dialog budget

[See Screenshot: Dialog Editor Budget Display]


6. Video Editor

Location: Editor header or sidebar Displays: Shot video budget (video_spent / video_budget) Audience: Artists rendering final shot videos Use Case: Understand video generation budget before starting renders Special Behavior: Generate button is disabled when video spending ≥ video budget

[See Screenshot: Video Editor Budget Display]


7. Shot Edit Dialog

Location: Within the shot edit modal/dialog Displays: All four shot budgets:

  • Keyframe budget (spent / budget)
  • Dialog budget (spent / budget)
  • Video budget (spent / budget)
  • Total shot budget (total spent / total budget) Audience: Supervisors and artists reviewing shot details Use Case: Comprehensive view of all shot-level budgets in one place

[See Screenshot: Shot Edit Dialog Budgets]


What Happens When Budget is Exceeded

When spending reaches or exceeds the budget limit (100%+):

  1. Budget Display: Turns RED (error color #ef4444)
  2. Generate Buttons: DISABLED in all editors:
    • Image Editor: "Generate Image" button disabled
    • Keyframe Editor: "Generate Keyframe" button disabled
    • Dialog Editor: "Generate Dialog" button disabled
    • Video Editor: "Generate Video" button disabled
  3. User Notification: Tooltip or message explains: "Budget exceeded - increase budget to continue"

Resolution Steps:

  1. Contact a Supervisor or Admin
  2. Supervisor opens Budget Manager
  3. Supervisor increases the relevant budget (asset, shot sub-budget, or project budget)
  4. Budget display updates in real-time
  5. Generate buttons become enabled again

Important: Budget constraints are enforced to prevent accidental overspending. Only Supervisors and Admins can increase budgets to unlock generation capabilities.


Model Cost Transparency

Before generating AI content, you'll see the per-unit cost for the selected model. This helps you make budget-conscious decisions by understanding exactly how much each generation will cost.

Where to Find Per-Unit Costs

Model costs are displayed in small text below the model selector in these editors:

1. Image Editor

Location: Below the generation model selector Format: $ X per image Example: $ 0.05 per image Use Case: Compare different image models to choose cost-effective options

[See Screenshot: Image Editor Model Cost]


2. Keyframe Editor

Location: In the "Modify with AI" dialog, below the model selector Format: $ X per image Example: $ 0.05 per image Use Case: Understand keyframe generation cost before applying AI modifications

[See Screenshot: Keyframe Editor Model Cost]


3. Video Editor

Location: Below the video model selector Format: $ X per second or $ X per frame (depending on model billing) Example: $ 0.10 per second Use Case: Choose video models based on budget constraints (30-second shot = $3.00)

[See Screenshot: Video Editor Model Cost]


How to Use Cost Information

Example Scenario:

You're working on a shot with a keyframe budget of $50:

  1. Open Keyframe Editor
  2. See model selector displaying "Model A: $0.05 per image"
  3. Calculate: $50 budget ÷ $0.05 per image = 1,000 possible generations
  4. Budget section displays: $ 45 / $ 50 (you've already spent $45)
  5. Remaining budget: $5.00 = 100 more generations possible
  6. Choose whether to proceed or switch to a cheaper model

Cost-Conscious Choices:

  • Compare model costs before selecting
  • Use cheaper models for early iterations, expensive models for final renders
  • Consider model cost when deciding whether to regenerate
  • Understand the trade-off between quality and cost

Reviewing Cost Analytics

Budgets tell you what you're allowed to spend. The Cost Analytics section, at the bottom of the same Budget & Analytics page (below the Shot Budgets table), tells you what you've actually spent — broken down however is most useful to you.

Choosing a Report Type

Use the Report Type selector to group spending by different dimensions:

Report TypeGroups Spending By
Cost by AssetEach asset (cast member, location, prop, etc.)
Cost by ShotEach shot in the production
Cost by ArtistEach team member who generated content
Cost by ModelEach AI model used for generation

Filtering the Report

Narrow the report using the filters above the table:

  • Start Date and End Date — Limit the report to a specific time window
  • Asset Type — When viewing Cost by Asset, focus on a single asset type (for example, only cast members or only locations)

A Totals row at the bottom of the table sums the figures across every row currently displayed, so you can read the production's spend at a glance.

Reading the Cost by Asset Report

The Cost by Asset report displays these columns for each asset:

ColumnDescription
Asset NameThe asset's name
TypeThe asset type (Cast Member, Location, Prop, etc.)
Total CostTotal credits spent generating this asset's media
GenerationsHow many generations were run for this asset
ApprovedHow many of those generations were approved
Cost Per-ImageAverage cost per generated image for this asset

Exporting the Data

Click Export CSV to download the current report as a spreadsheet file. This is useful for sharing spending summaries outside Genvid or for keeping records alongside your own production accounting.


Common Scenarios and Tips

Setting Up Budgets for a New Production

Workflow:

  1. Estimate Total Production Budget

    • Review project scope (number of shots, assets, complexity)
    • Consult with production team on available credits
    • Set a conservative project budget (e.g., $10,000)
  2. Navigate to Budget Manager

    • Open the project
    • Open the section menu and select Budget & Analytics
  3. Set Project Budget

    • Enter total budget in Project Budget section
    • Click Save (initially, sum of children = $0, so any amount is valid)
  4. Use Bulk Operations for Initial Budgets

    • Click "Set All Asset Budgets"
    • Enter per-asset amount (e.g., $100 for 30 assets = $3,000 total)
    • Confirm
    • Click "Set All Shot Budgets"
    • Enter sub-budgets (e.g., keyframe: $50, dialog: $30, video: $100 = $180 per shot × 50 shots = $9,000 total)
    • Confirm
  5. Verify Project Budget Constraint

    • Total child budgets: $3,000 (assets) + $9,000 (shots) = $12,000
    • Project budget: $10,000 (⚠️ violation!)
    • Increase project budget to at least $12,000
    • Or reduce per-asset/per-shot budgets to fit within $10,000
  6. Monitor Spending as Production Progresses

    • Check Budget Manager weekly
    • Identify shots/assets approaching limits
    • Adjust budgets proactively

Adjusting Budgets Mid-Production

Scenario: Shot 15 is at 90% budget ($90 / $100) but needs more iterations.

Workflow:

  1. Review Current Spending

    • Open Budget Manager
    • Navigate to Shot 15 in Shot Budgets table
    • Expand row to see sub-budget breakdown:
      • Keyframe: $45 / $50 (90%)
      • Dialog: $25 / $30 (83%)
      • Video: $20 / $20 (100% - exceeded!)
  2. Identify the Constraint

    • Video budget is exhausted ($20 / $20)
    • Need to increase video sub-budget for Shot 15
  3. Check Project Budget Headroom

    • Project budget: $10,000
    • Total spent: $8,500
    • Remaining project budget: $1,500 (sufficient for increase)
  4. Increase Shot 15 Video Budget

    • Expand Shot 15 row
    • Change video budget from $20 to $50 (add $30)
    • Update keyframe and dialog (or leave as-is if all three were already set)
    • Click Save
  5. Verify and Communicate

    • Budget display in Video Editor updates to $ 20 / $ 50 (green, 40%)
    • Generate button is enabled again
    • Notify artist that budget has been increased

Monitoring Spending Across the Project

Best Practices:

  1. Weekly Budget Reviews

    • Open Budget Manager once per week
    • Sort Asset Budgets table by "% spent" descending
    • Identify assets in WARNING (amber) or ERROR (red) state
    • Sort Shot Budgets table similarly
  2. Proactive Adjustments

    • Don't wait for budgets to hit 100%
    • When an asset/shot reaches 80% (warning state), evaluate:
      • Is the work nearly complete? (No action needed)
      • Will it require more iterations? (Increase budget now)
  3. Reallocate Budgets

    • If Shot A is complete and only used $50 of $100 budget, consider:
      • Reducing Shot A budget to $50
      • Increasing Shot B budget by $50 (if it needs more)
    • This keeps you within project budget while optimizing allocation
  4. Track Trends

    • Notice which shot types consume more budget (wide shots vs. close-ups)
    • Adjust future budgets based on historical data

Best Practices for Large Productions (50+ Assets/Shots)

Challenges:

  • Manually budgeting 100+ shots is time-consuming
  • Different shot types have different cost profiles
  • Budget adjustments are frequent

Recommendations:

  1. Use Bulk Operations Extensively

    • Initial budget setup: bulk operations
    • Mid-production adjustments: bulk operations for shot ranges (manually select subset)
  2. Establish Budget Templates by Shot Type

    • Simple shots (static camera, minimal dialog): keyframe $30, dialog $20, video $50
    • Complex shots (camera movement, long dialog): keyframe $100, dialog $50, video $200
    • Apply bulk budgets to shots of similar complexity
  3. Delegate Budget Monitoring

    • Assign a production coordinator to monitor budgets
    • Weekly reports to supervisors on budget status
    • Escalate only when major adjustments are needed
  4. Reserve Project Budget Headroom

    • Don't allocate 100% of project budget to children
    • Reserve 10-20% for unexpected overruns
    • Example: $10,000 project budget → allocate only $8,000 to assets/shots initially

Troubleshooting

Common Validation Errors and Resolutions

"Cannot set project budget below sum of children"

Error Message: "Project budget must be at least $12,000 (current children total: $12,000)"

Cause: You're trying to set a project budget lower than the total of all asset and shot budgets.

Resolution Options:

  1. Increase Project Budget (Recommended)

    • Change project budget to at least the required minimum ($12,000)
    • Click Save
  2. Reduce Child Budgets First

    • Identify assets or shots with excess budget
    • Reduce their budgets to lower the children total
    • Then reduce project budget
  3. Use Bulk Operations to Reduce

    • Click "Set All Asset Budgets"
    • Enter a lower per-asset amount
    • Confirm
    • Repeat for shots if needed
    • Then reduce project budget

"Must set all three shot budgets"

Error Message: "All three shot sub-budgets (keyframe, dialog, video) must be set together or all left empty"

Cause: You're trying to set only 1 or 2 of the 3 shot sub-budgets (violates "all or none" rule).

Resolution:

  1. Provide All Three Values

    • Expand the shot row
    • Fill in keyframe_budget: e.g., 50
    • Fill in dialog_budget: e.g., 30
    • Fill in video_budget: e.g., 100
    • Click Save
  2. Remove All Budgets (if you want to unset)

    • Expand the shot row
    • Clear all three fields (leave empty)
    • Click Save
    • Budget display will display $ X / ∞ (unlimited)

"Bulk operation would exceed project budget"

Error Message: "Bulk asset budget operation would result in $15,000 total (assets: $5,000 + shots: $10,000), which exceeds project budget of $12,000"

Cause: The bulk operation total (budget × resource count) would violate the project budget constraint.

Resolution Options:

  1. Increase Project Budget First (Recommended)

    • Navigate to Project Budget section
    • Increase project budget to at least $15,000 (or higher for headroom)
    • Click Save
    • Return to asset/shot tables
    • Retry bulk operation
  2. Reduce Per-Resource Budget Amount

    • In the bulk budget dialog, reduce the amount
    • Example: Instead of $200/asset, try $150/asset
    • Recalculate: 30 assets × $150 = $4,500 (lower total)
    • Click Apply and Confirm
  3. Apply Budgets Individually

    • Cancel bulk operation
    • Manually set budgets for a subset of resources
    • Only budget the most critical assets/shots
    • Leave others with no budget (unlimited)

Understanding Unset Budgets (Infinity Symbol)

Display: $ 45 / ∞

Meaning: No budget limit has been configured for this resource. Spending can continue indefinitely.

When This Occurs:

  • Project, asset, or shot budget is NULL (not set)
  • Historical resources from before budget system was implemented

Impact:

  • No color coding (displayed in gray/muted color)
  • Generate buttons remain enabled regardless of spending
  • No budget enforcement

To Set a Budget:

  1. Open Budget Manager
  2. Locate the resource with ∞ budget
  3. Enter a budget value
  4. Click Save
  5. Budget display updates to $ X / $ Y format

Budget Validation Rules (Technical Reference)

For technical users, here are the validation rules enforced by the Budget Manager:

1. Project Budget Constraint

Project Budget ≥ Sum of All Child Budgets

Calculation:
Project Budget ≥ (Sum of Asset Budgets) + (Sum of Shot Total Budgets)

Where:
Shot Total Budget = keyframe_budget + dialog_budget + video_budget

Example (Valid):

Project Budget: $1,000
Assets Total: $300 (3 assets × $100 each)
Shots Total: $600 (3 shots × $200 each)
Validation: $1,000 ≥ $900 ✓

Example (Invalid):

Project Budget: $800
Assets Total: $300
Shots Total: $600
Validation: $800 < $900 ✗ (rejected with error)

2. Shot Budget All-or-None Rule

(keyframe_budget IS NOT NULL AND
 dialog_budget IS NOT NULL AND
 video_budget IS NOT NULL)
OR
(keyframe_budget IS NULL AND
 dialog_budget IS NULL AND
 video_budget IS NULL)

Valid Examples:

✓ Keyframe: $50, Dialog: $30, Video: $100
✓ Keyframe: NULL, Dialog: NULL, Video: NULL

Invalid Examples:

✗ Keyframe: $50, Dialog: $30, Video: NULL (rejected)
✗ Keyframe: NULL, Dialog: NULL, Video: $100 (rejected)
✗ Keyframe: $50, Dialog: NULL, Video: $100 (rejected)

3. Non-Negative Budgets

CHECK (budget IS NULL OR budget >= 0)
CHECK (keyframe_budget IS NULL OR keyframe_budget >= 0)
CHECK (dialog_budget IS NULL OR dialog_budget >= 0)
CHECK (video_budget IS NULL OR video_budget >= 0)

Valid: NULL (no budget), 0 (zero budget), 100 (positive budget) Invalid: -50 (negative budget) - rejected with error


4. Bulk Operation Validation

Before applying bulk budgets, the system validates:

For Bulk Assets:
  New Assets Total = asset_count × bulk_budget
  New Project Total = New Assets Total + Current Shots Total
  Validation: Project Budget ≥ New Project Total

For Bulk Shots:
  New Shots Total = shot_count × (keyframe + dialog + video)
  New Project Total = Current Assets Total + New Shots Total
  Validation: Project Budget ≥ New Project Total

If validation fails, the bulk operation is rejected and an error is displayed.


How Spending is Calculated (Technical Reference)

Spending Calculation Logic

Budget spending is calculated from the credit_transactions table based on completed transactions:

Project Spending:

SUM(ABS(amount))
FROM credit_transactions
WHERE project_id = <project_id>
  AND status = 'completed'

Asset Spending:

SUM(ABS(ct.amount))
FROM asset_media_link aml
JOIN media m ON aml.media_id = m.id
LEFT JOIN credit_transactions ct ON m.transaction_id = ct.transaction_id
WHERE aml.asset_id = <asset_id>
  AND m.deleted_at IS NULL
  AND ct.status = 'completed'

Shot Spending (by sub-budget type):

-- Keyframe spending
SUM(ABS(ct.amount))
FROM shot_media_link sml
JOIN media m ON sml.media_id = m.id
LEFT JOIN credit_transactions ct ON m.transaction_id = ct.transaction_id
WHERE sml.shot_id = <shot_id>
  AND sml.link_type = 'shot_firstframe'
  AND m.deleted_at IS NULL
  AND ct.status = 'completed'

-- Dialog spending (link_type = 'shot_dialog')
-- Video spending (link_type = 'shot_video')

Key Points

  • Negative Amounts: credit_transactions.amount is negative for consumption, positive for grants/refunds. Use ABS() when summing spending.
  • Status Filter: Only status = 'completed' transactions count toward spending. Pending/failed transactions are excluded.
  • Soft Deletes: Exclude media where deleted_at IS NOT NULL to ignore deleted generations.
  • Real-time Updates: Spending is calculated dynamically from database views, so budget displays update immediately after generation operations complete.

Next Steps

  • Learn about the Video Editor to understand generation costs
  • Explore Timeline Export for post-production workflows
  • Review credit management in your organization settings

Summary

The Budget Management System provides comprehensive control over production spending:

  • Hierarchical Budgets: Project → Assets + Shots (keyframe + dialog + video)
  • Real-time Visibility: Budget displays in 7 locations with color-coded warnings
  • Bulk Operations: Efficiently configure large productions
  • Model Cost Transparency: Per-unit costs displayed before generation
  • Automatic Enforcement: Generate buttons disabled when budget is exceeded

By following the workflows and best practices in this guide, you can maintain tight cost control while empowering your team to create great content within budget constraints.