PVM Policy Import
Overview
The PVM Policy Import uses a single fleet file. Each row represents one policy record. Rows are validated, transformed, grouped by VIN, and then imported to stock in Firestore through the policy import pipeline. VIN is the primary vehicle key for PVM imports and vehicle searches; VRM is still imported and displayed as vehicle information.
Files Required
pvmFleetFile.csv
File Format
Comma Separated Values -
*.csv
Encoding - UTF-8
PVM policy import overwrite behaviour
During a PVM policy import, existing values in the following policy-holder and vehicle fields are retained and are not overwritten by values from the import file:
- Title
- First name
- Surname
- Home, work, and mobile telephone numbers
- Email address
- Building name/number, street, district, town, county, and postcode
- Vehicle Registration (VRM)
All other fields continue to be updated from the import file.
PVM Fleet File
| Column | PVM Contract File values | ViSN Mapping | Max Length | Data Type | Validation / Format | Mandatory |
|---|---|---|---|---|---|---|
| A | stock profile | Ignored | - | - | Not used | No |
| B | vehicle type | Ignored | - | - | Not used | No |
| C | Version | Ignored | - | - | Not used | No |
| D | batch reference | Ignored | - | - | Not used | No |
| E | policy ref | Policy Number | 50 | string | Required | Yes |
| F | location | Purchase Location Code | 10 | string | Special characters allowed | No |
| G | issue date | Issue Date | 10 | date | DD/MM/YYYY | No |
| H | sales person | Sales Person | 150 | string | Special characters allowed | No |
| I | hr number | Policy Hr. no | 150 | string | Special characters allowed | No |
| J | title | Policy Holder Title | 10 | string | Special characters allowed | No |
| K | firstname | First Name of Policy Holder | 100 | string | Special characters allowed | No |
| L | surname | Last Name of Policy Holder | 100 | string | Special characters allowed | No |
| M | hometel | Policy Holder Phone (Home) | 11 | string | Alphanumeric characters allowed | No |
| N | worktel | Policy Holder Phone (Work) | 11 | string | Alphanumeric characters allowed | No |
| O | mobiletel | Policy Holder Mobile | 11 | string | Alphanumeric characters allowed | No |
| P | emailaddr | Policy Holder Email Address | 50 | string | Standard email validation | No |
| Q | houseno | Ignored | - | - | Not used | No |
| R | address1 | Policy Holder Building Name/Number | 50 | string | Special characters allowed | No |
| S | address2 | Policy Holder Street | 100 | string | Special characters allowed | No |
| T | address3 | Policy Holder District | 100 | string | Special characters allowed | No |
| U | address4 | Policy Holder Town | 100 | string | Special characters allowed | No |
| V | county | Policy Holder County | 100 | string | Special characters allowed | No |
| W | postcode | Policy Holder Postcode | 10 | string | Standard postcode validation | No |
| X | reg | VRM | 10 | string | Standard vehicle registration validation | No |
| Y | type | Car Class | 20 | string | Special characters allowed | No |
| Z | capcode | CAPID | 20 | string | Special alphanumeric characters allowed | No |
| AA | description | Vehicle Make | 150 | string | Special characters allowed | No |
| AB | colour | Colour | 100 | string | Special characters allowed | No |
| AC | capid | Ignored | - | - | Not used | No |
| AD | fnetid | Ignored | - | - | Not used | No |
| AE | vinno | VIN | 17 | string | Used as Primary key | Yes |
| AF | purchaseprice | Vehicle Purchase Price | 8 | number | nnnnn.nn | No |
| AG | dofr | Date of First Registration | 10 | date | DD/MM/YYYY | No |
| AH | mileage | Mileage | 6 | number | Numeric value | No |
| AI | stockno | Asset Number | 20 | string | Special alphanumeric characters allowed | No |
| AJ | motdue | MOT Due Date | 10 | date | DD/MM/YYYY | No |
| AK | cde | Product Type | 30 | string | Special characters allowed | No |
| AL | period | Policy Term | 2 | string | Numeric value | No |
| AM | startdate | Policy Start Date | 10 | date | DD/MM/YYYY | Yes |
| AN | purchaseprice_prod | Policy Purchase Price | 8 | number | nnnnn.nn | No |
| AO | retailprice | Policy Retail Price | 8 | number | nnnnn.nn | No |
| AP | costprice | Policy Cost Price | 8 | number | nnnnn.nn | No |
| AQ | purchasedate | Purchase Date | 10 | date | DD/MM/YYYY | No |
| AR | intcode | Ignored | - | - | Not used | No |
| AS | claimlimit | Claim Limit | 8 | number | nnnnn.nn | No |
| AT | dealergroup | Purchase Location (Group) | 150 | string | Special characters allowed | No |
| AU | dealername | Purchase Location (Site) | 150 | string | Special characters allowed | No |
Related Guides
- For scheduler setup, see Creating PVM Policy Import Schedulers.
- For a full operator walkthrough, see Running a PVM Policy Import End to End.
- For more details on the shared import flow, see BigQuery Import Strategy.
Key Behaviours
- PVM import uses only one file (no benefits file).
- One row represents one policy.
subCustomerIdis matched from lease sub-customers bylocation == customerAccountNumber.startDate,issueDate,purchaseDate,motDue, anddateOfFirstRegistrationare normalized to ISO dates.endDateis derived fromstartDate + period months - 1 day.- Rows with
endDatein the past are skipped during validation (SKIPPEDlog). - If multiple rows exist for the same
VIN, they are aggregated into one vehicle with multiple policies.VRMis not used as the primary vehicle key. - During a PVM policy import, existing values in the policy holder and vehicle fields listed above are retained and are not overwritten by values from the import file. Other imported fields continue to update as normal.
- Delta import (
reimportAll = false) imports only changed/new rows by hash comparison. - If
reimportAllis enabled, all rows from merged output are imported. - If
shouldTerminateis enabled, vehicles missing from the latest raw file can be marked terminated.
Status: Pending Approval
Category: Protected
Authored By: Aditya on Jul 16, 2026