Usage Reports
The Usage page in Admin Bud-E provides detailed logs of every request, allowing you to:
- Monitor spending by user, project, or time period
- Identify high-cost operations
- Generate reports for accounting or auditing
- Debug issues with specific requests
- Export data for external analysis
Accessing Usage Reports
- Log into Admin Bud-E dashboard
- Navigate to Usage in the main menu
- Apply filters (optional)
- Click Preview to view in browser or Export to download
Report Filters
Date Range
Start Date & End Date:
- Leave both empty → Current calendar month (default)
- Set start only → From start date to today
- Set end only → From beginning of time to end date
- Set both → Specific date range
Default Date Behavior
If no dates are specified, Admin Bud-E automatically uses:
- Start: First day of current month (e.g., December 1)
- End: Today
This prevents accidentally generating massive reports spanning all history.
Examples:
| Start Date | End Date | Result |
|---|---|---|
| (empty) | (empty) | Current month to date |
| 2024-11-01 | (empty) | Nov 1 to today |
| (empty) | 2024-10-31 | All time until Oct 31 |
| 2024-09-01 | 2024-09-30 | September only |
Project Filter
Select one or more projects from the dropdown to view only those projects' usage.
Use cases:
- Compare department spending
- Audit a specific class
- Generate invoices per project
User Filter
Select specific user(s) to view their individual usage.
Use cases:
- Investigate unusually high usage
- Generate per-user reports
- Verify credit deductions
- Support requests ("Why was I charged X?")
Service Type Filter
Filter by request type:
- LLM — Text generation
- VLM — Vision/multimodal
- TTS — Text-to-speech
- ASR — Speech recognition
Use cases:
- Identify most expensive service type
- Optimize pricing per type
- Plan infrastructure scaling
Provider Filter
Show requests handled by specific provider(s):
vertextogethermistralopenai- etc.
Use cases:
- Compare provider costs
- Verify failover behavior
- Debug provider-specific issues
Report Columns
Usage reports typically include:
| Column | Description |
|---|---|
| Timestamp | When the request was made |
| User | Username who made the request |
| Project | Project the user belongs to |
| Service Type | LLM, VLM, TTS, or ASR |
| Provider | Which provider handled it |
| Model | Specific model used |
| Input Tokens | Tokens in the request (LLM/VLM) |
| Output Tokens | Tokens in the response (LLM/VLM) |
| Characters | Character count (TTS) |
| Duration | Audio length in seconds (ASR) |
| Credits | Total credits deducted |
| Status | Success, Error, Rate Limited, etc. |
Sorting Reports
Click column headers to sort:
- Timestamp: Chronological order
- Credits: Highest cost first
- User: Alphabetical
- Provider: Group by provider
TIP
Sort by Credits descending to quickly identify your most expensive requests.
Preview vs. Export
Preview (Browser View)
Click Preview to view results in the Admin UI.
Characteristics:
- Limited to 100-500 rows (configurable)
- Fast, interactive
- Good for quick checks
- Supports sorting and pagination
Best for:
- Quick audits
- Spot-checking recent usage
- Investigating specific users/projects
Export (Download)
Click Export to download the full dataset.
Formats:
- CSV — Spreadsheet-compatible (Excel, Google Sheets)
- PDF — Formatted report with charts (if available)
- ZIP — Bulk export with multiple files (for large datasets)
Best for:
- Accounting and invoicing
- Long-term archival
- External analysis (Python, R, etc.)
- Sharing with stakeholders
Export Formats
CSV Export
Contents:
- All matching records (no row limit)
- Comma-separated values
- Headers in first row
Use with:
- Excel: File → Open → Select CSV
- Google Sheets: File → Import → Upload CSV
- Python:
pandas.read_csv() - R:
read.csv()
PDF Export
Contents:
- Formatted tables
- Summary statistics (total cost, request count, etc.)
- Optional charts (usage over time, by user, by type)
Use for:
- Presentation to management
- Monthly reports
- Archival (with digital signature)
ZIP Export (Bulk)
For very large date ranges or multiple projects, Admin Bud-E may generate multiple files.
Contents:
- Multiple CSV files (split by project or date)
- Optional summary PDF
- README with file descriptions
Usage Examples
Example 1: Monthly Spending Report
Goal: See total spending for October 2024.
Steps:
- Navigate to Usage
- Set Start Date: 2024-10-01
- Set End Date: 2024-10-31
- Leave other filters empty (all users/projects)
- Click Export CSV
Result:
- Download CSV with all October requests
- Open in Excel
- Sum Credits column for total
Example 2: Per-User Audit
Goal: Investigate why User "teacher-jones" has high usage.
Steps:
- Navigate to Usage
- Set User Filter: teacher-jones
- Leave dates empty (current month)
- Click Preview
Result:
- See all requests by teacher-jones this month
- Sort by Credits descending
- Identify expensive operations (e.g., long TTS, many VLM requests)
Example 3: Project Comparison
Goal: Compare spending across "Teachers" and "Students" projects.
Steps:
- Navigate to Usage
- Export separate reports:
- Filter by Project: Teachers → Export
- Filter by Project: Students → Export
- Open both CSVs
- Sum Credits in each
Result:
- Teachers spent 12,450 credits
- Students spent 8,230 credits
- Total: 20,680 credits
Example 4: Identify Most Expensive Service
Goal: Determine whether LLM, VLM, TTS, or ASR costs most.
Steps:
- Navigate to Usage
- Export CSV with all data (no filters)
- Open in Excel or Google Sheets
- Create a pivot table:
- Rows: Service Type
- Values: Sum of Credits
Result:
- LLM: 8,000 credits (40%)
- VLM: 5,000 credits (25%)
- TTS: 6,000 credits (30%)
- ASR: 1,000 credits (5%)
- TTS is unexpectedly high → investigate TTS usage patterns
Detailed Request View
Some Admin Bud-E versions support clicking on individual requests to see more details:
Request Details:
- Full request payload (if logged)
- Response summary
- Exact credit calculation
- Provider response time
- Error messages (if failed)
Use cases:
- Debugging failed requests
- Understanding why a request was expensive
- Verifying correct pricing
- Support tickets
Common Use Cases
1. Monthly Accounting
Workflow:
- On the 1st of each month, export previous month's data
- Calculate total credits consumed
- Multiply by your internal rate (if charging back)
- Generate invoice or budget report
- Archive CSV for records
2. User Support
Scenario: User reports "I was charged too much."
Workflow:
- Filter by user
- Find the date range in question
- Review detailed logs
- Identify the expensive request(s)
- Explain to user (e.g., "You processed 10 images" or "Long TTS audio")
3. Budget Monitoring
Workflow:
- Set up a weekly reminder
- Export current month usage
- Compare to monthly budget
- Project end-of-month total
- Adjust allowances or refill common pool if needed
Example:
- Today: Oct 15
- Usage so far: 12,000 credits
- Pace: 12,000 ÷ 15 days = 800/day
- Projected month-end: 800 × 31 = 24,800 credits
- Budget: 20,000 credits
- Action: Reduce allowances or add budget
4. Provider Performance
Goal: Compare reliability and cost across providers.
Workflow:
- Export usage for a month
- Pivot by Provider and Status
- Calculate:
- Success rate per provider
- Average cost per request
- Failover frequency
Example:
| Provider | Total Requests | Successes | Failures | Success Rate | Avg Cost |
|---|---|---|---|---|---|
| vertex | 1,200 | 1,180 | 20 | 98.3% | 0.012 |
| together | 800 | 750 | 50 | 93.8% | 0.009 |
| mistral | 200 | 190 | 10 | 95.0% | 0.015 |
Insight: Vertex is most reliable, Together is cheapest.
5. Pricing Verification
Goal: Verify pricing is configured correctly.
Workflow:
- Make a test request with known token count
- Calculate expected cost manually:
Input: 1,000 tokens × ($0.075 / 1M) = $0.000075 Output: 500 tokens × ($0.30 / 1M) = $0.00015 Total: $0.000225 - Check usage report for actual deduction
- Compare: should match within rounding
Advanced Analysis
Using Pandas (Python)
import pandas as pd
# Load CSV
df = pd.read_csv('usage_report.csv')
# Total spending
total = df['Credits'].sum()
print(f"Total: {total} credits")
# By user
by_user = df.groupby('User')['Credits'].sum().sort_values(ascending=False)
print("Top 10 users:")
print(by_user.head(10))
# By service type
by_type = df.groupby('Service Type')['Credits'].sum()
print("\nBy service type:")
print(by_type)
# Daily usage
df['Date'] = pd.to_datetime(df['Timestamp']).dt.date
daily = df.groupby('Date')['Credits'].sum()
print("\nDaily spending:")
print(daily)Using Excel
Pivot Table:
- Insert → PivotTable
- Drag User to Rows
- Drag Credits to Values (Sum)
- Sort descending
Chart:
- Select date and credits columns
- Insert → Line Chart
- Shows spending trend over time
Performance Considerations
Large Reports
For date ranges with millions of requests:
- Preview may timeout → use Export instead
- CSV export is faster than PDF
- Consider splitting by month or project
Real-Time vs. Cached
Usage data may be:
- Real-time: Queries database on each request (slower, always current)
- Cached: Pre-computed hourly/daily (faster, slight delay)
Check your Admin Bud-E version documentation.
Privacy and Security
Logged Data
Usage reports typically do not include:
- Full conversation content
- User prompts (unless explicitly enabled)
- API responses
Reports include:
- Metadata (tokens, characters, duration)
- Timestamps, user IDs, costs
- Error messages (no sensitive data)
INFO
Conversation history stays in the user's browser, not on the server. Usage logs are purely for accounting.
Access Control
Only authenticated admins can access usage reports. Ensure:
- Strong admin password
- Regular password rotation
- Limited admin accounts
- Audit log of admin actions (if available)
Data Retention
Configure data retention policies:
- Short-term: 90 days (minimal storage)
- Medium-term: 1 year (recommended for auditing)
- Long-term: 5-7 years (for compliance, GDPR, etc.)
Check local regulations and organizational policies.
Troubleshooting
Issue: No Data Showing
Possible causes:
- Filters too restrictive → remove filters
- Date range is empty → check dates
- No usage in selected period → verify users are active
- Database connection issue → check logs
Issue: Default Date Range Wrong
Expected: See all October data Actual: Only seeing October 1-15
Cause: Default is "current month to date"
Solution: Explicitly set end date to last day of month.
Issue: Export Fails / Timeout
Possible causes:
- Date range too large
- Server under load
- Insufficient permissions
Solutions:
- Narrow date range (month by month)
- Export during off-peak hours
- Verify admin account has export permission
Issue: Credits Don't Match Invoice
Scenario: Report shows 10,000 credits, but provider invoice says $150 (expected ~$100).
Possible causes:
- Pricing not configured correctly
- Markup applied
- Provider charges additional fees (API calls, storage)
- Currency conversion
Solution:
- Verify pricing entries match provider rates
- Check for markup in your configuration
- Compare line-by-line with provider invoice
- Account for provider's own fees (separate from usage)