Skip to main content

Cart Analytics & GPS

Track cart utilization, zone distribution, and predictive maintenance through analytics endpoints.

Last updated: 2026-01-26 Where to find it: Facilities API > Golf Carts > Analytics Who can use it: Developers, integrators Prerequisites: API credentials Help link: /golf-carts/analytics

Utilization

  • Endpoint: GET /golf-carts/analytics/utilization?tenantId=1&clubId=10&windowDays=7
  • Report fields: totalCarts, totalAssignments, activeAssignments, avgDailyAssignments, avgUseHours, utilizationRate (0-1), windowDays.
  • GraphQL: utilizationReport(input: { tenantId, clubId?, windowDays? }).
  • Default window: 7 days; validation rejects windowDays <= 0.

UI ideas

  • KPI: utilization %, active vs total carts.
  • Trend: bar/line of assignments per day; average hours per assignment.

Zones

  • List carts in a zone: GET /golf-carts/zones?tenantId=1&clubId=10&zone=Clubhouse.
  • Summary: GET /golf-carts/zones/summary?tenantId=1&clubId=10 -> zone, cartCount, inUse, available.
  • GraphQL: cartsByZone(input: { tenantId, clubId?, zone }), zoneSummary(tenantId, clubId?).
  • Validation: zone is required for the list endpoint.

UI ideas

  • Map/heatmap: color by status (available/in use/out of service).
  • Table with drill-down links to cartsByZone.

Predictive Maintenance

  • Endpoint: GET /golf-carts/maintenance/predictive?tenantId=1&clubId=10&horizonDays=7&odometerMargin=50&hoursThreshold=20.
  • GraphQL: predictiveMaintenance(input: { tenantId, clubId?, horizonDays?, odometerMargin?, hoursThreshold? }).
  • Heuristics:
    • nextServiceDue <= horizonDays from today
    • nextServiceOdo - odometer <= odometerMargin
    • hoursUsed >= hoursThreshold when no nextServiceOdo
  • Defaults: horizonDays=7, odometerMargin=50, hoursThreshold=20; validation rejects horizonDays <= 0.

UI ideas

  • List with reason badges (Due soon / Odometer near / Hours high).
  • Quick actions: mark serviced, schedule maintenance, assign to bay/zone.

GPS Fields

  • lastLatitude, lastLongitude, lastLocationAt, currentZone.
  • Update via PUT /golf-carts/:id/location or GraphQL updateGolfCartLocation.
  • Recommended: show stale-location indicator when lastLocationAt age exceeds threshold (e.g., 15 minutes).

Expected outcome

  • Utilization reports provide fleet efficiency metrics.
  • Zone tracking shows cart distribution across the property.
  • Predictive maintenance identifies service candidates proactively.