Overview
The Staffing Dashboard (part of the unified Analytics Module) replaces the Excel-based staffing workflow with an integrated solution for CR (Condition Report) writer capacity planning. By combining Check-In and CR data from native tables (check_in_records and cr_inspections), the dashboard calculates staffing requirements based on vehicle arrival patterns, sale type mix, and historical CR completion rates.
Native Tables (Epic #1072): Check-In and CR data is now stored in typed native tables (
check_in_records, cr_inspections) with proper columns and indexes. Custom auction-specific fields are stored in a custom_fields JSONB column. The v_vehicle_journey view joins the two tables for cross-analysis. CSV imports are tracked in the import_batches audit table.Arrivals Analysis
Track vehicle check-ins by hour with 3-week moving averages
Staffing Calculator
Calculate required CR writer headcount per hour
Writer Productivity
Monitor individual CR writer performance (management only)
Activity Rates
Configure global and per-session activity rate settings
Accessing the Staffing Dashboard
The Staffing Dashboard is accessible within the unified Analytics module.Direct URL: You can access the Staffing Dashboard directly at
/auctions/[auctionId]/analytics/staffing. Legacy URLs like /staffing-model automatically redirect to this location.Datasets
The Staffing Model uses two native data tables that work together to provide comprehensive staffing insights.Check-In Records (check_in_records)
Tracks vehicle arrivals at your auction facility. CSV imports are auto-detected and mapped to typed columns.
| Field | Description | Example |
|---|---|---|
| check_in_date | Timestamp of vehicle arrival | 2024-01-15 09:30:00 |
| check_in_user | Person who checked in the vehicle | John Smith |
| facilitation_location | Auction location | Big Valley AA |
| vin | Vehicle Identification Number | 1HGBH41JXMN109186 |
| stock_number | Internal stock identifier | STK-2024-0123 |
| sale_type | Lease or Consignment | Lease |
| seller_name | Seller/consignor name | ABC Motors |
| grade / grade2 | Vehicle condition grades | A / B+ |
| primary_inspector | Assigned inspector | Jane Doe |
| photo_count | Number of photos taken | 24 |
| Vehicle Year, Make, Model | Vehicle details | 2023 Honda Accord |
CR Inspections (cr_inspections)
Contains condition report completion information. CSV imports are auto-detected and mapped to typed columns.
| Field | Description | Example |
|---|---|---|
| created_date | When CR record was created | 2024-01-15 10:00:00 |
| start_date | CR writing start time | 2024-01-15 10:05:00 |
| stop_date | CR writing end time | 2024-01-15 10:25:00 |
| edit_time | Time spent writing CR | 20 minutes |
| edit_type | Completed CR or Edited | Completed CR |
| inspector_name | CR writer name | Mike Johnson |
| vin | Vehicle Identification Number (join key) | 1HGBH41JXMN109186 |
| stock_number | Stock identifier (join key) | STK-2024-0123 |
| status | CR status | Closed |
| age | Days since check-in | 1 |
| CR days | Days from check-in to CR completion | 0 |
| Inspection time | Duration of inspection | 25 minutes |
Vehicle Journey View
Thev_vehicle_journey view automatically joins check_in_records and cr_inspections by VIN (primary) or stock_number (fallback) for cross-analysis.
| Join Key | Check-In Field | CR Field |
|---|---|---|
| VIN (primary) | vin | vin |
| Stock Number (fallback) | stock_number | stock_number |
The workflow follows: Check-In (vehicle arrives) → CR (condition report completed). The time between these events is a critical staffing metric. The
v_vehicle_journey view calculates days_to_cr_start and days_to_cr_complete automatically.Vehicle Journey Analysis
The vehicle journey view enables cross-analysis of check-in and CR data:| Feature | Description |
|---|---|
| Vehicle Journey Tracking | Track vehicles from arrival through CR completion |
| Processing Time Analysis | Calculate time from check-in to CR completion |
| CR Completion Rates | Measure what percentage of check-ins get CRs |
| Backlog Visibility | Identify vehicles checked in but not yet CR’d |
Importing Data
Import Check-In and CR CSV files using the Native Import Wizard. The wizard auto-detects the target table based on column patterns.Auto-Detection
The system analyzes your columns and auto-detects the target table (Check-In Records or CR Inspections). You can override the detection.
Column Mapping
Review the auto-mapped columns. Core columns are mapped to typed database columns; unmapped columns go to
custom_fields JSONB.Import Mode
Choose Create or Update (merges by match column, default VIN) or Replace All (clears existing data first).
Import Audit Trail
All imports are tracked in theimport_batches table with:
- Source filename, target table, import mode
- Row counts (created, updated, skipped)
- Status lifecycle: pending → processing → completed/failed/rolled_back
- Rollback support via the Import History page
Custom Field Definitions
Admins can define per-auction custom fields at Analytics → Fields:| Feature | Description |
|---|---|
| Core Fields | Built-in typed columns (12 for Check-In, 14 for CR) — display name editable, cannot be deleted |
| Custom Fields | Auction-specific fields stored in custom_fields JSONB |
| Field Types | text, number, date, boolean, select (with predefined options) |
| Drag-and-Drop | Reorder fields for UI display preference |
New imports using Create or Update mode append/update data. This builds your historical dataset over time for more accurate moving averages.
Location Filter
The Staffing Dashboard supports filtering all data by facilitation location using the standard FilterBar component.Using the Location Filter
View Available Locations
When your imported datasets contain
facilitation_location data, a location filter chip appears in the FilterBar at the top of the dashboard.Select a Location
Click the location filter chip and select a specific location from the dropdown to filter all dashboard sections to that location.
View Filtered Data
All sections update to show data for the selected location only — Arrivals, Staffing Calculator, Writer Productivity, and Quick Stats.
The location filter syncs with URL search params via the
useFilterBar hook, consistent with the Quality and Rocks pages. Share a filtered URL to give colleagues the same view.The location filter only appears when
facilitation_location data exists in your imported check-in datasets. If no location data is available, the filter is hidden.Arrivals Analysis
The Arrivals section visualizes vehicle check-in patterns to understand when vehicles arrive at your facility.Check-ins by Hour Chart
The primary arrivals visualization shows a 3-week moving average of check-ins per hour.Reading the Chart
| Element | Description |
|---|---|
| X-Axis | Hours of the day (6 AM - 6 PM typical) |
| Y-Axis | Average number of vehicles checking in |
| Line | 3-week moving average of check-ins |
| Data Points | Hover to see exact values per hour |
Why 3-Week Moving Average?
The 3-week moving average smooths out daily variations:- Reduces noise from unusually busy or slow individual days
- Captures patterns like day-of-week variations
- Provides stability for staffing planning
- Reflects trends without overreacting to outliers
Lease vs Consignment Breakdown
Analyze arrivals by sale type to understand the mix of vehicles requiring CRs.| Sale Type | Description | CR Implications |
|---|---|---|
| Lease | Lease return vehicles | Require detailed CR (longer write time) |
| Consignment | Dealer/consigned vehicles | Standard CR (variable CR rate) |
Sale Type Visualization
The dashboard shows:- Pie Chart - Overall distribution of Lease vs Consignment
- Stacked Bar - Hourly breakdown by sale type
- Trend Line - How the mix has changed over time
Lease units typically require more CR writing time due to detailed inspection requirements. This is factored into staffing calculations.
Daily and Hourly Heatmap
The heatmap provides a visual overview of arrival patterns across days and hours.| Heatmap Feature | Description |
|---|---|
| Rows | Days of the week |
| Columns | Hours of the day |
| Color Intensity | Volume of arrivals (darker = more) |
| Hover Details | Exact count for any cell |
Staffing Calculator
The Staffing Calculator section converts arrival data into actionable staffing requirements.Headcount by Hour
The primary output shows how many CR writers are needed for each hour of operation.| Column | Description |
|---|---|
| Hour | Time of day |
| Lease Arrivals | Expected lease vehicle arrivals |
| Consignment Arrivals | Expected consignment arrivals |
| CR Work Hours (Lease) | Hours of CR work for lease units |
| CR Work Hours (Consignment) | Hours of CR work for consignment |
| Total CR Work Hours | Combined work hours needed |
| Required Headcount | Number of writers needed |
Calculation Methodology
The staffing calculation follows this formula:Variables Explained
| Variable | Description | Example |
|---|---|---|
| Arrivals | 3-week average check-ins per hour | 15 vehicles |
| CR Rate | % of vehicles that receive a CR | 85% |
| Time per CR | Average minutes to complete CR | 25 minutes |
| Activity Rate | CRs per hour (60 ÷ Time per CR) | 2.4 CRs/hour |
Activity Rate Configuration
Activity rates are the key inputs that translate arrivals into staffing needs.Editable Activity Rates
| Setting | Description | Default |
|---|---|---|
| Lease CR Time | Minutes to write Lease CR | 30 min |
| Consignment CR Time | Minutes to write Consignment CR | 20 min |
| Lease CR Rate | % of Lease units receiving CR | 100% |
| Consignment CR Rate | % of Consignment units receiving CR | 75% |
| INOP % | Inoperable vehicles (adjusted time) | 5% |
| Certification % | Units requiring certification | 10% |
Session overrides don’t affect the global defaults. To update defaults for all users, use the Global Settings page.
Lease Unit Adjustments
Lease units have additional factors that affect staffing:| Factor | Description | Impact |
|---|---|---|
| INOP % | Inoperable vehicles requiring different handling | Increases time per CR |
| Certification % | Units requiring certification inspection | Additional time required |
| Detailed Inspection | Lease returns need more thorough CR | Higher base time |
Work Hours Breakdown
The calculator displays work hours broken down by sale type:| Breakdown | Calculation |
|---|---|
| Lease Work Hours | Lease Arrivals × Lease CR Rate × (Lease CR Time ÷ 60) |
| Consignment Work Hours | Consignment Arrivals × Consignment CR Rate × (Consignment CR Time ÷ 60) |
| Adjustment Hours | Additional time for INOP and Certification |
| Total Work Hours | Sum of all work categories |
Writer Productivity
The Writer Productivity section is only visible to users with management-level permissions (Owner, Admin roles).
Individual Writer Metrics
| Metric | Description |
|---|---|
| Writer Name | CR writer’s name |
| CRs Completed | Total CRs in selected period |
| Avg CR Time | Average time to complete a CR |
| Activity Rate | CRs completed per hour |
| Same Day % | CRs completed same day as check-in |
Performance Analysis
High Performers
High Performers
Indicators:
- Avg CR Time at or below target
- High Same Day % (>90%)
- Consistent daily output
Average Performers
Average Performers
Indicators:
- Avg CR Time within 20% of target
- Same Day % between 70-90%
- Steady output with some variation
Below Target
Below Target
Indicators:
- Avg CR Time significantly above target
- Same Day % below 70%
- Inconsistent output
Outlier Identification
The dashboard highlights writers with metrics significantly outside the norm:| Flag | Meaning |
|---|---|
| Red highlight | Avg CR Time >50% above average |
| Yellow highlight | Avg CR Time 25-50% above average |
| Green highlight | Top quartile performance |
Time per CR Trends
Track how individual writer performance changes over time:- Improving - CR time decreasing over weeks
- Stable - Consistent performance
- Declining - CR time increasing (investigate)
Date Range Selection
Control the analysis period for all Staffing Model visualizations.Using the Date Picker
Recommended Date Ranges
| Analysis Goal | Recommended Range |
|---|---|
| Daily Planning | Last 3 weeks (default) |
| Trend Analysis | Last 3 months |
| Seasonal Comparison | Same period last year |
| Specific Event | Custom range around event dates |
The 3-week moving average used in arrivals calculations always uses the most recent 3 weeks of data within your selected range.
Global Settings
Configure default activity rates and other settings that apply to all users.Accessing Global Settings
Global vs Session Settings
| Setting Type | Scope | Persistence |
|---|---|---|
| Global | All users | Saved permanently |
| Session | Current user only | Until browser closes |
| Report Override | Specific analysis | Saved with report |
Audit Trail
Changes to global settings are logged:| Logged Information |
|---|
| Who made the change |
| When the change was made |
| Previous value |
| New value |
| Optional change notes |
Export Functionality
Export staffing data and visualizations for reports and presentations.CSV Export
Available Exports
| Export Type | Contents |
|---|---|
| Arrivals Data | Hourly check-in counts by sale type |
| Staffing Requirements | Calculated headcount by hour |
| Writer Productivity | Individual writer metrics |
| Full Dataset | Combined CheckinModel and CR_Data |
Chart Export
Export visualizations as images:| Format | Use Case |
|---|---|
| PNG | Presentations and documents |
| SVG | Scalable graphics for high-resolution |
| Copy to Clipboard | Quick paste into other applications |
Best Practices
Effective Staffing Model Usage
Maintain Data Quality
Maintain Data Quality
Regular Imports:
- Import CheckinModel and CR_Data weekly
- Verify data completeness after each import
- Address any schema validation errors promptly
- Review and clean up duplicate records
- Ensure consistent VIN formatting across systems
- Document any known data gaps
Calibrate Activity Rates
Calibrate Activity Rates
Initial Setup:
- Start with industry defaults
- Collect 4-6 weeks of actual data
- Compare calculated vs actual staffing needs
- Review rates quarterly
- Adjust based on process changes
- Document reasons for rate changes
Regular Reviews
Regular Reviews
- Daily: Check today’s staffing requirements
- Weekly: Review arrivals patterns and adjust upcoming schedules
- Monthly: Analyze writer productivity trends
- Quarterly: Recalibrate activity rates based on actuals
Stakeholder Communication
Stakeholder Communication
- Share weekly staffing forecasts with supervisors
- Export arrival charts for planning meetings
- Use writer productivity data for 1:1 discussions
- Document staffing decisions and outcomes
Common Scenarios
| Scenario | Recommended Approach |
|---|---|
| Planning next week’s schedule | Review arrivals forecast, adjust for known events |
| Investigating CR backlog | Check arrivals vs staffing, review writer productivity |
| Onboarding new CR writer | Set realistic expectations based on average metrics |
| Preparing for busy season | Analyze same period last year, adjust rates |
| Justifying staffing request | Export charts showing arrival trends and gaps |
Troubleshooting
Common Issues
Import failing or incomplete
Import failing or incomplete
Solutions:
- Verify CSV has all required columns (VIN, stock_number, dates)
- Check date formats match expected patterns
- Remove any special characters from column headers
- Ensure file is saved as UTF-8 encoding
- Split large files (>50MB) into smaller batches
Arrivals data seems incorrect
Arrivals data seems incorrect
Solutions:
- Verify the date range is correct
- Check if all expected CheckinModel imports completed
- Look for duplicate imports affecting averages
- Confirm data source matches expected location
Staffing calculations don't match expectations
Staffing calculations don't match expectations
Solutions:
- Review activity rate settings (session vs global)
- Verify CR Rate percentages are accurate
- Check if INOP % and Certification % are realistic
- Compare against historical actuals to calibrate
Writer productivity not showing
Writer productivity not showing
Solutions:
- Verify you have management permissions (Owner/Admin)
- Check if CR_Data has been imported for the period
- Ensure inspector_name field is populated in imports
- Contact admin if you should have access
Data not joining correctly
Data not joining correctly
Solutions:
- Verify VIN format is consistent across both datasets
- Check stock_number format matches between systems
- Ensure overlapping date ranges between datasets
- Review for leading/trailing spaces in join key fields
Getting Help
If issues persist:- Export your data - Include sample records showing the problem
- Note the error message - Capture exact text of any errors
- Document steps to reproduce - What actions led to the issue
- Contact support - Email with details above
Related Documentation
Analytics Module
Return to the unified Analytics overview
Saved Queries
Create custom queries from staffing data
User Management
Manage user permissions for productivity access
Settings
Configure auction-wide settings