---
title: "Service Provider Availability"
space: "Frappoint"
url: "https://docs.navari.co.ke/frappoint/service-provider-availability"
updated: "2026-08-04"
---

## Availability Philosophy

Frappoint follows a **derived availability model**:

- Providers do not store availability directly
- Availability is computed from:
  - Service Provider Shift Types
  - Service Provider Shift Assignments
  - System rules (buffers, holidays, breaks)
- Booking Slots are generated from these inputs

This approach avoids common scheduling pitfalls such as:

- Double booking
- Orphaned availability
- Complex rescheduling logic



## Service Provider Shift Types


A **Service Provider Shift Type** defines a reusable working time template.

It answers the question:

> “What does a working day look like?”



### Key Components

A Shift Type typically includes:

- Start Time  
- End Time  
- Optional break periods
- Optional day-specific rules

Examples:

- Morning Shift: 09:00 – 12:00
- Afternoon Shift: 13:00 – 17:00
- Full Day: 09:00 – 17:00 with a lunch break

Service Provider Shift Types are **generic** and can be reused across service providers.


### Why Shift Types Matter

Shift Types allow:

- Consistent scheduling patterns
- Easy updates to working hours
- Clean separation between time templates and people

Changing a Service Provider Shift Type affects **future slot generation only**, never past data.


## Service Provider Shift Assignments


A **Service Provider Shift Assignment** links:

- A Provider
- A Service Provider Shift Type
- A date range

It answers the question:

> “Which provider works which shift, and when?”



### Assignment Scope

Each assignment defines:

- Provider
- Shift Type
- Start Date
- End Date (optional)

This allows:

- Temporary schedules
- Rotations
- Part-time providers
- Seasonal availability



### Example

| Service Provider | Service Provider Shift Type       | Date Range        |
|--------|------------------|------------------|
| A      | Morning Shift    | Jan 1 – Jan 31   |
| A      | Afternoon Shift  | Jan 1 – Jan 31   |
| B      | Afternoon Shift  | Jan 10 – Jan 31  |

This setup ensures:

- Provider A works full days
- Provider B only works afternoons
- Slots are generated accordingly



## Breaks, Holidays & Exceptions

### Breaks
- Defined inside Shift Types
- Automatically excluded from slot generation
- Do not create partial or dangling slots


### Holidays
- Slots are never generated on holidays
- Holiday logic is evaluated during slot generation
- Existing slots are marked unavailable if needed


### Provider Exceptions
- Sick leave or ad-hoc unavailability
- Handled by:
  - Removing future slots
  - Marking slots as unavailable
  - Ending shift assignments early

No manual slot editing is required.


## Interaction With Service Types

Shifts define *when* a provider can work.  
Services define *what* they can do.

Slots only become bookable if:
- Provider is on shift
- Provider offers the selected service
- Required service units are available
- Buffers can be satisfied


## Best Practices

- Keep Shift Types simple and reusable
- Avoid overlapping assignments for the same provider
- Use date ranges aggressively to model real schedules
- Never edit past shift assignments
