Skip to main content

Overview

Metadata templates provide pre-configured column metadata and calculated fields for common data sources. Instead of manually configuring each column, you can apply a template that automatically sets display names, descriptions, categories, and calculated fields.

System Templates

Pre-built templates for CR Simplified reports

Custom Templates

Create and save your own configurations

Auto-Detection

Templates matched automatically during import

One-Click Apply

Apply complete configuration instantly

What Are Metadata Templates?

A metadata template is a saved configuration that includes:
  • Column Definitions: Display names, descriptions, and categories for known columns
  • Calculated Fields: Pre-built formulas for common derived values
  • Detection Columns: Column names used to auto-match the template
When you import a CSV, the system compares your file’s columns against template detection columns. If there’s a strong match (≥70%), the template is suggested for application.
Unified Dataset System (Epic #659): Metadata templates are now the primary way to identify dataset types. Staffing datasets (Check-In and CR data) are identified by their applied template rather than a separate dataset type table. The applied_template_id column on report_datasets tracks which template was applied during import.

System Templates

System templates are pre-built configurations for common data sources. These are maintained by the system and cannot be modified or deleted.

CR Simplified Templates

Purpose: Standard check-in data from CR Simplified reportsDetection Columns: check_in_date, check_in_user, vin, stock_number, sale_type, seller_nameIncludes:
  • 72 column definitions with automotive-specific descriptions
  • Categories: Vehicle Identification, Check-In Data, Seller Info, Vehicle Details
  • Calculated field: days_since_checkin
Use When: Importing “Check-In Detail” exports from CR Simplified
Purpose: Condition report writer productivity dataDetection Columns: Inspector_Detail_Date_start_date, Inspector_Detail_Date_stop_date, cr_writer, vinIncludes:
  • 66 column definitions for CR timing and quality
  • Categories: CR Data, Writer Info, Vehicle Info, Quality Metrics
  • Calculated fields: cr_time_minutes, days_to_cr
Use When: Importing “Inspector Detail” reports for writer analysis
Purpose: Vehicle lifecycle tracking through the auctionDetection Columns: check_in_date, cr_date, sale_date, vin, run_numberIncludes:
  • 48 column definitions for vehicle journey tracking
  • Categories: Check-In, CR, Sale, Vehicle Journey
  • Calculated fields: days_to_cr, days_to_sale, total_processing_time
Use When: Importing end-to-end vehicle tracking data

Using Templates

During Import

When importing a CSV, the system automatically checks for matching templates:
1

Upload CSV

Select and upload your CSV file in the Dataset Import wizard
2

Review Match

If a template matches (≥70% of detection columns found), you’ll see a suggestion:
“This dataset matches the Check-In Detail template (85% match)”
Templates with ≥90% match are auto-selected for your convenience.
3

Link Compatible Datasets

For complementary dataset types (e.g., Check-In + CR), the wizard suggests linking with existing datasets. This enables cross-dataset queries in the Query Builder.
4

Apply or Skip

  • Click Apply Template to use the pre-configured metadata
  • Click Skip to configure manually or later
5

Complete Import

Finish the import wizard - metadata is applied automatically and the applied_template_id is set on the dataset
When you apply a template during import, the dataset gains full integration with the Staffing Dashboard and Query Builder. The system knows how to interpret columns like check_in_date and can suggest relevant cross-dataset links.

Applying to Existing Dataset

You can apply templates to datasets that were imported without template configuration:
1

Open Dataset

Go to AnalyticsDatasets → select your dataset
2

Access Templates

Click Apply Template button in the dataset actions
3

Select Template

Choose from:
  • Detected matches (based on column comparison)
  • All templates (browse available options)
4

Review & Apply

Preview what will be configured, then click Apply

Template Match Percentage

The match percentage indicates how many of the template’s detection columns were found in your dataset:
Match %IndicationRecommendation
90-100%Strong matchApply template confidently
70-89%Good matchReview before applying
50-69%Partial matchMay need manual adjustments
Less than 50%Poor matchConsider different template
A high match percentage doesn’t guarantee all columns will be configured. Only columns that exist in both the template and your dataset are configured.

Custom Templates

Create your own templates to standardize metadata across similar datasets.

Creating a Custom Template

1

Configure a Dataset

First, fully configure a dataset’s column metadata and calculated fields
2

Save as Template

Click Save as Template in the dataset actions
3

Enter Details

Provide:
  • Template Name: Descriptive name
  • Source System: Origin of this data format
  • Report Type: Type of report/export
  • Description: When to use this template
4

Set Detection Columns

Select 3-10 columns that uniquely identify this data format
5

Save

Click Save Template - it’s now available for future imports

Managing Custom Templates

Custom templates are scoped to your auction and can be:
ActionHowNotes
ViewTemplates panel in AnalyticsSee all templates with metadata counts
ApplyDataset actionsApply to any compatible dataset
EditTemplate details → EditUpdate name, description, columns
DeleteTemplate details → DeleteCannot delete system templates

Exporting Templates

Export custom templates as JSON for:
  • Backup purposes
  • Sharing between auctions (via manual import)
  • Version control in your codebase

Template Structure

Understanding the template structure helps when creating custom templates.

Template Components

{
  "name": "Check-In Detail",
  "description": "Standard check-in data from CR Simplified",
  "source_system": "cr_simplified",
  "report_type": "check_in_detail",
  "column_definitions": [
    {
      "column_name": "check_in_date",
      "display_name": "Check-In Date",
      "description": "Date vehicle arrived at auction",
      "category": "Check-In Data",
      "data_type": "date",
      "is_date_field": true
    }
    // ... more columns
  ],
  "calculated_fields": [
    {
      "field_name": "days_since_checkin",
      "display_name": "Days Since Check-In",
      "formula": "CURRENT_DATE - check_in_date",
      "result_type": "number"
    }
    // ... more fields
  ],
  "detection_columns": [
    "check_in_date",
    "check_in_user",
    "vin",
    "stock_number"
  ],
  "detection_threshold": 0.7
}

Column Definition Fields

FieldTypePurpose
column_namestringOriginal column name to match
display_namestringHuman-readable name
descriptionstringBusiness context for AI
categorystringGrouping category
data_typeenumstring, number, date, boolean, timestamp
is_date_fieldbooleanIndicates date columns for smart suggestions
is_primary_identifierbooleanMarks key identifiers (VIN, stock)
is_categoricalbooleanIndicates limited value sets
enum_valuesstring[]Known valid values for categorical columns

Detection Columns Best Practices

When selecting detection columns:
  1. Choose unique columns - Names specific to this data format
  2. Include 4-8 columns - Enough for reliable matching, not too many
  3. Mix column types - Dates, identifiers, categories
  4. Avoid generic names - Skip id, date, name alone
  5. Include required columns - Columns that should always be present

Template Matching Logic

How Matching Works

When you import a CSV:
  1. System extracts column names from the CSV header
  2. Each template’s detection columns are compared
  3. Match ratio = (matched columns) / (detection columns)
  4. Templates with ratio ≥ threshold are suggested

Match Algorithm

For each template:
  matched = 0
  for each detection_column in template:
    if detection_column exists in csv_columns:
      matched += 1

  match_ratio = matched / count(detection_columns)

  if match_ratio >= detection_threshold:
    suggest template

Adjusting Detection Threshold

The default threshold is 70% (0.7). When creating custom templates:
  • Higher threshold (0.8-0.9): More precise matching, fewer false positives
  • Lower threshold (0.5-0.7): More flexible matching, may match unintended datasets

Best Practices

Creating Effective Templates

Do

  • Document the source system clearly
  • Include calculated fields users need
  • Test template with real datasets
  • Keep detection columns distinctive

Don't

  • Create overlapping templates
  • Use generic detection columns
  • Forget to set data types
  • Leave descriptions empty

Template Naming Conventions

Source SystemReport TypeExample Name
CR SimplifiedCheck-In Export”CR Simplified - Check-In Detail”
DealerTrackInventory Report”DealerTrack - Inventory Export”
Custom ERPSales Report”ERP - Weekly Sales”

When to Create Custom Templates

Create a custom template when:
  • You import the same report format regularly
  • Multiple users need consistent metadata
  • The report format is specific to your operation
  • System templates don’t match your data source

Troubleshooting

Cause: Column names don’t match detection columnsSolutions:
  1. Check if CSV column names match exactly (case-sensitive)
  2. Lower the detection threshold for the template
  3. Update detection columns to match your CSV format
Cause: Multiple templates have overlapping detection columnsSolutions:
  1. Make detection columns more specific to each template
  2. Increase detection threshold for the incorrect template
  3. Add more unique columns to differentiate templates
Cause: Template columns don’t exist in your datasetThis is expected. Templates only configure columns that exist in both the template definition and your actual dataset. Missing columns are skipped.Solution: Manually configure any additional columns needed
Cause: Attempting to delete a system templateSystem templates are read-only and cannot be deleted. Only custom templates created by your auction can be removed.