Overview
Generate state reports for IFTA reporting.
IFTA Mileage and Tax Reporting
The Fleet Management Module provides the data necessary for IFTA state mileage reporting.
Setup
From TMS Admin → Configuration → Fleet Management, Check the IFTA Mileage Reporting Enabled field.
If necessary, update the IFTA Off Route Miles field.
The default value for this field 0.03. If desired, enter another value to override the default. This field may appear as having no value in TMS Admin → Configuration. In these cases, the default 0.03 value is used.
The integration with Trimble Maps must be enabled.
The IFTAStateReportJob generates reports every night at midnight. Schedule the job from the Batch Processes. The first time running this job back-populates all Trip Plan Segment records with a Status of Completed and Pending Final.
Monitor the job on PerformanceIQ component.
IFTA mileage reporting is only available on the Trip Planning tab of the Fleet Management Console.
Create IFTA Reports
The following workflow describes the process for generating Trip Plan Segment State Report records and IFTA mileage reports.
Create Trip Plans as necessary.
The Trip Plan Segment must have a Dispatch Date/Time value to generate a Report.
Once the Trip Plan Segment Status is Dispatched, the process begins.
The Power Unit’s Last Odometer Reading field is copied to the Trip Plan Segment Starting Odometer Reading field.
Trip Plan Segment Status updates to Pending Final or Completed as the Trip Plan Segment is completed by a Driver.
The Trip Plan Segment Ending Odometer Reading field is set to the Power Unit’s Last Odometer Reading when the following occurs.
The Power Unit’s Last Odometer Reading field is populated and the ELD Last Update field is within 30 minutes of the current time.
The State Report build process is started. IFTA Reports are built for each Trip Plan Segment meeting the following criteria.
Trip Plan Segment must have a Power Unit included.
Trip Plan Segment Status is Pending Final or Completed.
State Report Processed field is Unchecked.
Once a Trip Plan Segment is processed, the State Report Processed field is Checked.
Select Trip Planning from the picklist to complete tasks with IFTA reports.
Click the IFTA Mileage Report button to open the IFTA Milage Report modal.
Enter a Start Date/Time and an End Date/Time into the modal.
The Current Quarter and Previous Quarter buttons enter the quarterly dates, respectively.
Choose the appropriate Country Filter.
Click the Generate Report button.
If no Fleet Asset History records exist, each Trip Plan Leg Start and End Location Latitude/Longitude is used to generate the report.
The State Report Processed field may be manually Unchecked but cannot be manually Checked. In cases when the State Report Processed field is manually Unchecked, the following actions occur.
All existing Trip Plan State Reports are deleted for the Trip Plan Segment.
All existing documents/Reports are deleted for the Trip Plan Segment.
Trip Plan State Report records are generated for the Trip Plan Segment the next time the IFTAStateReportJob runs.
Generate IFTA Report File
Generate the report file by completing the following steps.
Check the Include Trip Plan Names in Download box to add the applicable Trip Plan Names to the report.
Click the Download Report button to create the file and save it to the User record.
See the report example below that includes Trip Plan Names.
When the Report document is generated, click the hyperlink from the Trip Plan Segment to view the detail record modal.
The IFTA Report for a Trip Plan Segment displays in the modal. Click the hyperlink to view the individual Trip Plan State Report record(s).
Each report file is saved as a .PDF to the User generating the report.
From the App Launcher, search for and select Files.
Report file names are saved with the following information beginning with “IFTA-Report.”
Start Date and Time
End Date and Time
Included Country Code
Note the Trip Plan Names included on the report.
Trimble Maps API Call
Derived Route
A list of Fleet Asset history geolocation coordinates is sent to Trimble. These coordinates are received from the Catena or Samsara ELD integrations.
TMS Operation | Trimble Maps Endpoint | Request Type | Response |
---|---|---|---|
IFTAStateReportJob runs at midnight for qualifying Trip Plan Segments | Derived Route | POST | 201: Success |
A list of State Report lines returns with a list of State or Country codes with the total miles travelled within that State/Country. A Trip Plan State Report for each State Report line.
Lines consisting of more than 1000 geolocation points are broken up into multiple callouts. These callouts are combined to create one Trip Plan State Report.
Sample Trimble Derived Route Request
{
"HighwayOnly": false,
"OffRouteMiles": 0.03,
"Region": 4,
"ReportType": {
"__type": "StateReportType:http://pcmiler.alk.com/APIs/v1.0",
"THoursWithSeconds": false
},
"RoutePings": [
{
"Lat": "45.53193",
"Lon": "-73.49907"
},
{
"Lat": "46.502240",
"Lon": "-89.891292"
},
{
"Lat": "47.48052",
"Lon": "-94.91900"
},
{
"Lat": "53.54627",
"Lon": "-113.49637"
}
],
"RoutingOptions": {
"AFSetIDs": null,
"BordersOpen": true,
"DistanceUnits": 0,
"ElevLimit": null,
"FerryDiscourage": false,
"FuelRoute": false,
"HazMatType": 0,
"HazMatTpes": 0,
"HighwayOnly": false,
"HoSOptions": null,
"HubRouting": false,
"OverrideRestrict": false,
"RouteOptimization": 0,
"RoutingType": 0,
"TollDiscourage": false,
"UseAvoidsAndFavors": false,
"VehicleType": 0,
"SideOfStreetAdherence": 0
}
}
A list of State Report lines returns with a list of State or Country codes with the total miles travelled within that State/Country. A Trip Plan State Report for each State Report line.
Trimble Sample Derived Route Response
{
"Reports": [
{
"__type": "StateReport:http://pcmiler.alk.com/APIs/v1.0",
"RouteID": null,
"MileageReportLines": [
{
"Stop": {
"Address": {
"StreetAddress": "875 Rue Guilbault",
"City": "Longueuil",
"State": "QC",
"Zip": "J4H 2V7",
"County": "",
"Country": "Canada",
"SPLC": null,
"CountryPostalFilter": 0,
"AbbreviationFormat": 0,
"StateName": "Quebec",
"StateAbbreviation": "QC",
"CountryAbbreviation": "CA"
},
"Coords": {
"Lat": "45.531930",
"Lon": "-73.499070"
},
"Region": 4,
"Label": "",
"PlaceName": "",
"TimeZone": "EDT",
"Errors": null,
"SpeedLimitInfo": null,
"ConfidenceLevel": null,
"DistanceFromRoad": null,
"CrossStreet": null,
"TimeZoneOffset": "GMT-4:00",
"TimeZoneAbbreviation": "EDT",
"IsDST": true
},
"LMiles": "0.000",
"TMiles": "0.000",
"LCostMile": "0.00",
"TCostMile": "0.00",
"LHours": "0:00",
"THours": "0:00",
"LTolls": "0.00",
"TTolls": "0.00",
"LEstghg": "0.0",
"TEstghg": "0.0",
"EtaEtd": null
},
{
"Stop": {
"Address": {
"StreetAddress": "",
"City": "",
"State": "",
"Zip": "",
"County": "",
"Country": "",
"SPLC": null,
"CountryPostalFilter": 0,
"AbbreviationFormat": 0,
"StateName": "",
"StateAbbreviation": "",
"CountryAbbreviation": ""
},
"Coords": {
"Lat": "47.480520",
"Lon": "-94.919000"
},
"Region": 4,
"Label": "",
"PlaceName": "",
"TimeZone": "-6:00",
"Errors": null,
"SpeedLimitInfo": null,
"ConfidenceLevel": null,
"DistanceFromRoad": null,
"CrossStreet": null,
"TimeZoneOffset": "GMT-6:00",
"TimeZoneAbbreviation": "CST",
"IsDST": false
},
"LMiles": "1189.912",
"TMiles": "1189.912",
"LCostMile": "2456.75",
"TCostMile": "2456.75",
"LHours": "27:04",
"THours": "27:04",
"LTolls": "26.50",
"TTolls": "26.50",
"LEstghg": "3954.6",
"TEstghg": "3954.6",
"EtaEtd": null
},
{
"Stop": {
"Address": {
"StreetAddress": "104 Avenue Northwest",
"City": "Edmonton",
"State": "AB",
"Zip": "T5J 0K1",
"County": "",
"Country": "Canada",
"SPLC": null,
"CountryPostalFilter": 0,
"AbbreviationFormat": 0,
"StateName": "Alberta",
"StateAbbreviation": "AB",
"CountryAbbreviation": "CA"
},
"Coords": {
"Lat": "53.546270",
"Lon": "-113.496370"
},
"Region": 4,
"Label": "",
"PlaceName": "",
"TimeZone": "MDT",
"Errors": null,
"SpeedLimitInfo": null,
"ConfidenceLevel": null,
"DistanceFromRoad": null,
"CrossStreet": null,
"TimeZoneOffset": "GMT-6:00",
"TimeZoneAbbreviation": "MDT",
"IsDST": true
},
"LMiles": "1092.804",
"TMiles": "2282.716",
"LCostMile": "2093.87",
"TCostMile": "4550.62",
"LHours": "22:18",
"THours": "49:22",
"LTolls": "0.00",
"TTolls": "26.50",
"LEstghg": "3631.9",
"TEstghg": "7586.5",
"EtaEtd": null
}
],
"StateReportLines": [
{
"StCntry": "MI",
"Total": "309.039",
"Toll": "1.517",
"Free": "307.522",
"Ferry": "0.000",
"Loaded": "309.039",
"Empty": "0.000",
"Tolls": "26.50",
"Energy": "0.000"
},
{
"StCntry": "MN",
"Total": "262.343",
"Toll": "0.000",
"Free": "262.343",
"Ferry": "0.000",
"Loaded": "262.343",
"Empty": "0.000",
"Tolls": "0.00",
"Energy": "0.000"
},
{
"StCntry": "ND",
"Total": "77.478",
"Toll": "0.000",
"Free": "77.478",
"Ferry": "0.000",
"Loaded": "77.478",
"Empty": "0.000",
"Tolls": "0.00",
"Energy": "0.000"
},
{
"StCntry": "WI",
"Total": "104.036",
"Toll": "0.000",
"Free": "104.036",
"Ferry": "0.000",
"Loaded": "104.036",
"Empty": "0.000",
"Tolls": "0.00",
"Energy": "0.000"
},
{
"StCntry": "US",
"Total": "752.896",
"Toll": "1.517",
"Free": "751.379",
"Ferry": "0.000",
"Loaded": "752.896",
"Empty": "0.000",
"Tolls": "26.50",
"Energy": "0.000"
},
{
"StCntry": "AB",
"Total": "155.383",
"Toll": "0.000",
"Free": "155.383",
"Ferry": "0.000",
"Loaded": "155.383",
"Empty": "0.000",
"Tolls": "0.00",
"Energy": "0.000"
},
{
"StCntry": "MB",
"Total": "270.469",
"Toll": "0.000",
"Free": "270.469",
"Ferry": "0.000",
"Loaded": "270.469",
"Empty": "0.000",
"Tolls": "0.00",
"Energy": "0.000"
},
{
"StCntry": "ON",
"Total": "570.448",
"Toll": "1.104",
"Free": "569.344",
"Ferry": "0.000",
"Loaded": "570.448",
"Empty": "0.000",
"Tolls": "0.00",
"Energy": "0.000"
},
{
"StCntry": "QC",
"Total": "55.156",
"Toll": "0.000",
"Free": "55.156",
"Ferry": "0.000",
"Loaded": "55.156",
"Empty": "0.000",
"Tolls": "0.00",
"Energy": "0.000"
},
{
"StCntry": "SK",
"Total": "478.364",
"Toll": "0.000",
"Free": "478.364",
"Ferry": "0.000",
"Loaded": "478.364",
"Empty": "0.000",
"Tolls": "0.00",
"Energy": "0.000"
},
{
"StCntry": "Canada",
"Total": "1529.820",
"Toll": "1.104",
"Free": "1528.716",
"Ferry": "0.000",
"Loaded": "1529.820",
"Empty": "0.000",
"Tolls": "0.00",
"Energy": "0.000"
},
{
"StCntry": "TOTAL",
"Total": "2282.716",
"Toll": "2.621",
"Free": "2280.095",
"Ferry": "0.000",
"Loaded": "2282.716",
"Empty": "0.000",
"Tolls": "26.50",
"Energy": "0.000"
}
]
}
]
}