Skip to main content

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.
1

Open Analytics Module

Click Analytics in the sidebar navigation
2

Navigate to Staffing

Click the Staffing tab in the Analytics navigation bar
3

Select Date Range

Use the date picker to choose your analysis period (default: 3 weeks)
4

Review Arrivals

Analyze vehicle check-in patterns by hour and sale type
5

Calculate Staffing

View required headcount based on arrival rates and activity settings
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.
FieldDescriptionExample
check_in_dateTimestamp of vehicle arrival2024-01-15 09:30:00
check_in_userPerson who checked in the vehicleJohn Smith
facilitation_locationAuction locationBig Valley AA
vinVehicle Identification Number1HGBH41JXMN109186
stock_numberInternal stock identifierSTK-2024-0123
sale_typeLease or ConsignmentLease
seller_nameSeller/consignor nameABC Motors
grade / grade2Vehicle condition gradesA / B+
primary_inspectorAssigned inspectorJane Doe
photo_countNumber of photos taken24
Vehicle Year, Make, ModelVehicle details2023 Honda Accord

CR Inspections (cr_inspections)

Contains condition report completion information. CSV imports are auto-detected and mapped to typed columns.
FieldDescriptionExample
created_dateWhen CR record was created2024-01-15 10:00:00
start_dateCR writing start time2024-01-15 10:05:00
stop_dateCR writing end time2024-01-15 10:25:00
edit_timeTime spent writing CR20 minutes
edit_typeCompleted CR or EditedCompleted CR
inspector_nameCR writer nameMike Johnson
vinVehicle Identification Number (join key)1HGBH41JXMN109186
stock_numberStock identifier (join key)STK-2024-0123
statusCR statusClosed
ageDays since check-in1
CR daysDays from check-in to CR completion0
Inspection timeDuration of inspection25 minutes

Vehicle Journey View

The v_vehicle_journey view automatically joins check_in_records and cr_inspections by VIN (primary) or stock_number (fallback) for cross-analysis.
Join KeyCheck-In FieldCR Field
VIN (primary)vinvin
Stock Number (fallback)stock_numberstock_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:
FeatureDescription
Vehicle Journey TrackingTrack vehicles from arrival through CR completion
Processing Time AnalysisCalculate time from check-in to CR completion
CR Completion RatesMeasure what percentage of check-ins get CRs
Backlog VisibilityIdentify 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.
1

Navigate to Analytics

Go to Analytics in the sidebar, then click Datasets tab
2

Click Import Data

Click the Import Data button
3

Upload CSV File

Drag and drop your CSV file or click to browse
4

Auto-Detection

The system analyzes your columns and auto-detects the target table (Check-In Records or CR Inspections). You can override the detection.
5

Column Mapping

Review the auto-mapped columns. Core columns are mapped to typed database columns; unmapped columns go to custom_fields JSONB.
6

Import Mode

Choose Create or Update (merges by match column, default VIN) or Replace All (clears existing data first).
7

Complete Import

Click Import to process the data. Progress is shown in real-time with row counts.

Import Audit Trail

All imports are tracked in the import_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 AnalyticsFields:
FeatureDescription
Core FieldsBuilt-in typed columns (12 for Check-In, 14 for CR) — display name editable, cannot be deleted
Custom FieldsAuction-specific fields stored in custom_fields JSONB
Field Typestext, number, date, boolean, select (with predefined options)
Drag-and-DropReorder 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

1

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.
2

Select a Location

Click the location filter chip and select a specific location from the dropdown to filter all dashboard sections to that location.
3

View Filtered Data

All sections update to show data for the selected location only — Arrivals, Staffing Calculator, Writer Productivity, and Quick Stats.
4

Clear Filter

Click the X on the location chip or select the “All” option to return to the unfiltered view showing all locations.
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

ElementDescription
X-AxisHours of the day (6 AM - 6 PM typical)
Y-AxisAverage number of vehicles checking in
Line3-week moving average of check-ins
Data PointsHover 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
Use the date range selector to adjust the analysis period. A longer period provides more stable averages but may miss recent trend changes.

Lease vs Consignment Breakdown

Analyze arrivals by sale type to understand the mix of vehicles requiring CRs.
Sale TypeDescriptionCR Implications
LeaseLease return vehiclesRequire detailed CR (longer write time)
ConsignmentDealer/consigned vehiclesStandard CR (variable CR rate)

Sale Type Visualization

The dashboard shows:
  1. Pie Chart - Overall distribution of Lease vs Consignment
  2. Stacked Bar - Hourly breakdown by sale type
  3. 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 FeatureDescription
RowsDays of the week
ColumnsHours of the day
Color IntensityVolume of arrivals (darker = more)
Hover DetailsExact count for any cell
Use the heatmap to identify peak arrival times that require maximum staffing and slower periods where staff can focus on other tasks.

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.
ColumnDescription
HourTime of day
Lease ArrivalsExpected lease vehicle arrivals
Consignment ArrivalsExpected 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 HoursCombined work hours needed
Required HeadcountNumber of writers needed

Calculation Methodology

The staffing calculation follows this formula:
Required Headcount = (Lease Arrivals × Lease CR Rate × Lease Time per CR) +
                     (Consignment Arrivals × Consignment CR Rate × Consignment Time per CR)
                     ÷ 60 minutes

Variables Explained

VariableDescriptionExample
Arrivals3-week average check-ins per hour15 vehicles
CR Rate% of vehicles that receive a CR85%
Time per CRAverage minutes to complete CR25 minutes
Activity RateCRs 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.
1

Access Activity Settings

Click the Settings icon in the Staffing Calculator section
2

View Current Rates

See the current global activity rate settings
3

Adjust Values

Modify any rate for the current session (or save as global default)
4

Apply Changes

Click Apply to recalculate staffing with new rates

Editable Activity Rates

SettingDescriptionDefault
Lease CR TimeMinutes to write Lease CR30 min
Consignment CR TimeMinutes to write Consignment CR20 min
Lease CR Rate% of Lease units receiving CR100%
Consignment CR Rate% of Consignment units receiving CR75%
INOP %Inoperable vehicles (adjusted time)5%
Certification %Units requiring certification10%
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:
FactorDescriptionImpact
INOP %Inoperable vehicles requiring different handlingIncreases time per CR
Certification %Units requiring certification inspectionAdditional time required
Detailed InspectionLease returns need more thorough CRHigher base time
Adjust INOP % and Certification % based on historical patterns. These vary seasonally and by seller relationship.

Work Hours Breakdown

The calculator displays work hours broken down by sale type:
BreakdownCalculation
Lease Work HoursLease Arrivals × Lease CR Rate × (Lease CR Time ÷ 60)
Consignment Work HoursConsignment Arrivals × Consignment CR Rate × (Consignment CR Time ÷ 60)
Adjustment HoursAdditional time for INOP and Certification
Total Work HoursSum of all work categories

Writer Productivity

The Writer Productivity section is only visible to users with management-level permissions (Owner, Admin roles).
The Writer Productivity section provides individual performance metrics for CR writers.

Individual Writer Metrics

MetricDescription
Writer NameCR writer’s name
CRs CompletedTotal CRs in selected period
Avg CR TimeAverage time to complete a CR
Activity RateCRs completed per hour
Same Day %CRs completed same day as check-in

Performance Analysis

Indicators:
  • Avg CR Time at or below target
  • High Same Day % (>90%)
  • Consistent daily output
Action: Consider for mentoring others or handling complex units
Indicators:
  • Avg CR Time within 20% of target
  • Same Day % between 70-90%
  • Steady output with some variation
Action: Monitor for improvement opportunities, provide targeted coaching
Indicators:
  • Avg CR Time significantly above target
  • Same Day % below 70%
  • Inconsistent output
Action: Identify barriers (training, tools, assignment), provide support

Outlier Identification

The dashboard highlights writers with metrics significantly outside the norm:
FlagMeaning
Red highlightAvg CR Time >50% above average
Yellow highlightAvg CR Time 25-50% above average
Green highlightTop quartile performance
Performance outliers may have valid explanations (complex vehicles, training new hires, equipment issues). Always investigate context before drawing conclusions.
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

1

Click Date Range

Click the date range button in the top-right corner
2

Select Preset or Custom

Choose a preset range or select custom dates
3

Apply Selection

Click Apply to update all charts and calculations
Analysis GoalRecommended Range
Daily PlanningLast 3 weeks (default)
Trend AnalysisLast 3 months
Seasonal ComparisonSame period last year
Specific EventCustom 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

1

Navigate to Staffing

Go to AnalyticsStaffing tab
2

Open Settings

Click the Settings (gear icon) button in the Staffing Calculator section
3

View Current Defaults

See all global activity rate settings
4

Modify Settings

Update values and add notes for changes
5

Save Changes

Click Save to update defaults for all users

Global vs Session Settings

Setting TypeScopePersistence
GlobalAll usersSaved permanently
SessionCurrent user onlyUntil browser closes
Report OverrideSpecific analysisSaved with report
Use session overrides for “what-if” scenarios without affecting other users’ views. Save to global only when you’ve validated new activity rates.

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

1

Navigate to Data View

Go to the data table you want to export
2

Apply Filters

Set date range and any other filters
3

Click Export

Click the Export button
4

Select Format

Choose Export as CSV

Available Exports

Export TypeContents
Arrivals DataHourly check-in counts by sale type
Staffing RequirementsCalculated headcount by hour
Writer ProductivityIndividual writer metrics
Full DatasetCombined CheckinModel and CR_Data

Chart Export

Export visualizations as images:
FormatUse Case
PNGPresentations and documents
SVGScalable graphics for high-resolution
Copy to ClipboardQuick paste into other applications
Exported charts include the date range and any active filters in the title for reference.

Best Practices

Effective Staffing Model Usage

Regular Imports:
  • Import CheckinModel and CR_Data weekly
  • Verify data completeness after each import
  • Address any schema validation errors promptly
Data Hygiene:
  • Review and clean up duplicate records
  • Ensure consistent VIN formatting across systems
  • Document any known data gaps
Initial Setup:
  • Start with industry defaults
  • Collect 4-6 weeks of actual data
  • Compare calculated vs actual staffing needs
Ongoing Calibration:
  • Review rates quarterly
  • Adjust based on process changes
  • Document reasons for rate changes
  • 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
  • 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

ScenarioRecommended Approach
Planning next week’s scheduleReview arrivals forecast, adjust for known events
Investigating CR backlogCheck arrivals vs staffing, review writer productivity
Onboarding new CR writerSet realistic expectations based on average metrics
Preparing for busy seasonAnalyze same period last year, adjust rates
Justifying staffing requestExport charts showing arrival trends and gaps

Troubleshooting

Common Issues

Solutions:
  1. Verify CSV has all required columns (VIN, stock_number, dates)
  2. Check date formats match expected patterns
  3. Remove any special characters from column headers
  4. Ensure file is saved as UTF-8 encoding
  5. Split large files (>50MB) into smaller batches
Solutions:
  1. Verify the date range is correct
  2. Check if all expected CheckinModel imports completed
  3. Look for duplicate imports affecting averages
  4. Confirm data source matches expected location
Solutions:
  1. Review activity rate settings (session vs global)
  2. Verify CR Rate percentages are accurate
  3. Check if INOP % and Certification % are realistic
  4. Compare against historical actuals to calibrate
Solutions:
  1. Verify you have management permissions (Owner/Admin)
  2. Check if CR_Data has been imported for the period
  3. Ensure inspector_name field is populated in imports
  4. Contact admin if you should have access
Solutions:
  1. Verify VIN format is consistent across both datasets
  2. Check stock_number format matches between systems
  3. Ensure overlapping date ranges between datasets
  4. Review for leading/trailing spaces in join key fields

Getting Help

If issues persist:
  1. Export your data - Include sample records showing the problem
  2. Note the error message - Capture exact text of any errors
  3. Document steps to reproduce - What actions led to the issue
  4. Contact support - Email with details above

Need Help?