# Provides shipper level stats

Pass in your API keys and track end date range to pull data by shipper ID

Endpoint: POST /report/getReportStat/shipper
Version: 2.0.0

## Request fields (application/json):

  - `accountId` (string, required)
    Your account ID provided by Trucker Tools
    Example: yIXbN9xjC7xINRc2kszHJQ==

  - `partnerId` (string, required)
    Your TMS system ID provided by Trucker Tools
    Example: 3

  - `startDate` (string, required)
    Start of time period to pull data. Based on scheduled end time of track
    Example: 2023-01-01

  - `endDate` (string, required)
    End of time period to pull data. Based on scheduled end time of track
    Example: 2023-01-01

## Response 200:

  - `200` (unknown)
    API call to pull stats was successful

## Response 200 fields (application/json):

  - `status` (boolean, required)
    Status of API call
    Example: true

  - `callTimestamp` (string, required)
    Timestamp of API call in UTC
    Example: 2024-01-23 03:01:32 UTC

  - `dataCount` (number, required)
    Number of records returned
    Example: 3525

  - `reports` (array, required)

  - `reports.shipper` (string)
    Shipper ID sent for the loads
    Example: shipperA

  - `reports.shipperEmail` (string)
    Shipper email(s) sent for the loads. Can be comma separated list.
    Example: track@shipper.com

  - `reports.created` (number)
    Number of load tracks created
    Example: 10

  - `reports.cancelled` (number)
    Number of load tracks cancelled
    Example: 10

  - `reports.unassigned` (number)
    Number of load tracks not assigned a driver or asset
    Example: 10

  - `reports.notMobileNumber` (number)
    Number of load tracks assigned a non-mobile driver phone number
    Example: 10

  - `reports.toBeTracked` (number)
    Number of load tracks to be tracked (Assigned, not cancelled, mobile number or ELD assigned)
    Example: 10

  - `reports.tracked` (number)
    Number of load tracks that were tracked (At least one location update)
    Example: 10

  - `reports.trackedPercentage` (string)
    tracked count over toBeTracked count to produce the tracked %
    Example: 100%

  - `reports.consistentlyTracked` (number)
    Number of load tracks that were consistently tracked (Every 60 minutes, every 60 miles, updates on every geofence)
    Example: 10

  - `reports.consistentlyTrackedPercentage` (string)
    consistentlyTracked count over tracked count to produce the consistently tracked %
    Example: 100%

  - `reports.infrequentPing` (number)
    Number of load tracks that were possible to be tracked (toBeTracked) that received infrequent pings (Average distance between pings is > 60 miles and/or we did not get a ping for every scheduledhour of the track)
    Example: 10

  - `reports.lateAssignment` (number)
    Number of load tracks that were assigned after pickup
    Example: 10

