# Services

In Fleetlane you describe each scheduled service once, say which models it applies to and when it falls due, and every vehicle shows where it stands. When a dealer logs a service, Fleetlane stores it as a service record. That record is built on claims, so pricing, field control and the lifecycle engine work exactly as they do for warranty work.

## Service definitions

Service definitions are under Services in the top navigation, next to Templates. Each definition is configured in a few sections.

- **Identity**: code, name, description, whether the definition is active, and the dates it is valid from and to.
- **Due point**: a nominal age in months and a nominal distance, each with a tolerance either side. A service can be due by time, by distance, or by both. Distance uses your configured unit.
- **Contents**: the template that holds the service's lines, with a read-only preview of those lines. Only templates whose claim type is set up for services can be chosen.
- **Exclusions**: an ordered list of things the service does not cover, such as tyres or wiper blades. Exclusions are for information only. They do not limit which lines a service record may carry.
- **Applies to**: the model-year items the service covers, grouped by make and model. You pick each model year on its own, because parts often differ between years.

Copy creates an inactive duplicate, exclusions and models included. A definition with service records cannot be deleted; deactivate it instead.

## One definition per service

Fleetlane does not work out repeat intervals. An oil change at 6 months or 10,000 km and another at 12 months or 20,000 km are two definitions, so each vehicle's schedule is exactly the plan you publish. Definitions can share a template when the work is the same; when parts differ for a model year, that definition uses its own.

## The service schedule on a vehicle

The vehicle page has a Service schedule section. It lists every service that applies to the vehicle's model, with the due window and where the vehicle sits in it by age since the in-service date and by recorded mileage.

| State            | Meaning                                                                                        |
| ---------------- | ---------------------------------------------------------------------------------------------- |
| Done             | A live service record has reached a configured service completion financial milestone          |
| In progress      | A service record exists and is still being worked on, including records returned to the dealer |
| Eligible now     | No live record; eligible by the schedule rules, including mixed or unknown readings            |
| Not yet relevant | The vehicle is still short of the window on every due dimension                                |
| Expired          | The vehicle is past the window on every due dimension and no service was logged                |

```mermaid
stateDiagram-v2
  direction LR
  state "Not yet relevant" as NotYet
  state "Eligible now" as Eligible
  state "In progress" as InProgress
  [*] --> NotYet
  NotYet --> Eligible: vehicle enters the due window
  Eligible --> InProgress: dealer logs the service
  InProgress --> Done: configured completion milestone
  InProgress --> Eligible: record cancelled
  Eligible --> Expired: past the window, nothing logged
```

A definition outside its validity dates cannot be logged, and is hidden unless the vehicle already has a record for it. The dashboard lists services coming due, linked to each vehicle's schedule.

## Logging a service

When a service is eligible, the dealer chooses Log service on the schedule row. The current UI creates the service record directly using the vehicle and definition. Review and complete the repair details on the resulting record as permissions allow. Before Fleetlane creates the record, it checks that:

- the definition is active, valid on the service date and applies to the vehicle's model;
- the vehicle is inside the due window on that date and mileage;
- the claim type allows creation from a service; and
- the vehicle has no other live record for the same service.

Missing readings and mixed positions across time and distance can be classified as eligible; review the vehicle facts before logging work. Only one live record can exist per vehicle per service. If a record is cancelled, the service becomes available to log again. The record takes its lines from the definition's template and numbers itself automatically, as any claim does.

## Service records and claim types

A service record is a claim whose claim type has creation mode **Service**. That claim type can only be created from a service definition. Manual, template and campaign routes are refused. Everything else set out in [Claims & claim types](https://docs.fleetlane.app/functionalities/claims/) still applies:

- **Header and item policy** decide whether the dealer may change the header and the seeded lines. For a fixed-price service, lock the lines so every dealer claims the same work for the same money.
- **Pricing** follows each line's material type, whether that is entered by hand, taken from price records in Fleetlane, or taken from a connected catalogue.
- **Type data requirements** set which custom fields and notes a service record must carry.

On the record itself, Fleetlane says Service record rather than Claim. Service records also appear in the claims list under their claim type. Status changes are decided by the lifecycle engine, and each one stores a numbered version of the record; see [How lifecycles work](https://docs.fleetlane.app/functionalities/lifecycles/).

Who can maintain service definitions and log services is set per role; see [Access & field control](https://docs.fleetlane.app/functionalities/access-field-control/). Coverage and recalls on the vehicle are covered in [Vehicles, warranties & recalls](https://docs.fleetlane.app/functionalities/vehicles-warranties-recalls/).

Source review: 1 October 2026, based on `servicePlan`, `claims.creation`,
`ServiceDefinitionDetailPage` and `VehicleDetailPage`. Running-app verification is pending.
