Use Case: Demand Responsive Traffic (DRT)
In this chapter:
- Overview
- Modelling Principles
- Line and LineType
- Booking and Rules on the Line
- BookingArrangement
- ServiceBookingArrangement
- ServiceCompetitiveCondition
- ServiceEligibilityCondition
- FlexibleServiceProperties
- Request Stops
- Reservation as Service Facility
- Collection Points
- Templates and Examples
- Open Points
Overview
Demand responsive traffic (DRT, German: On-Demand-Verkehr, ODV) covers services that only run, or only serve some stops, when passengers have booked or requested them.
The Swiss DRT types and their LineType are defined in the sheet LineType of the
mapping table for NeTEx 2.0:
Table: Swiss DRT types
| Swiss DRT type | LineType | TransportSubmode | Remarks from the mapping table |
|---|---|---|---|
| 1 – Bedarfslinie | flexible |
BusSubmode demandAndResponseBus |
Fixed stops, operated on request. |
| 2 – Anrufsammelverkehr | mixedFlexibleAndFixed |
BusSubmode demandAndResponseBus |
Combines fixed and flexible elements; passengers book individual trips, shared vehicle routing. |
| 3 – Richtungsband, örtlich disponierter Bus | corridorService |
BusSubmode demandAndResponseBus |
Flexible routing along a geographic corridor; stops constrained to the corridor. |
| 4 – Zeitbezogener Flächenverkehr | freeAreaAreaWide |
BusSubmode demandAndResponseBus |
time restriction via AvailabilityCondition / Timeband. |
| 5 – Freier Flächenverkehr | freeAreaAreaWide |
BusSubmode demandAndResponseBus |
Fully area-wide, no fixed stops. |
Modelling Principles
A DRT offer is delivered with the same frames and elements as any other timetable. The flexibility is expressed in these places:
- Line: every DRT service is a
Linein theServiceFramewith theLineTypeof its Swiss DRT type andBusSubmodedemandAndResponseBus, see Line and LineType. - Line/bookingArrangements: holds the booking conditions and the rules of the service, see Booking and Rules on the Line.
- ServiceJourney: a single on-demand journey has
FlexibleServicePropertiesreferencing theBookingArrangementof theLine(example 04), see FlexibleServiceProperties. - StopPointInJourneyPattern: a request stop has
RequestStoptrueand a request method; a flexible stop references theBookingArrangement, see Request Stops. - ServiceFacilitySet and Notice: reservation offers from HRDF are delivered as facility and
Notice, see Reservation as Service Facility.
Line replaces FlexibleLine (forbidden in the ServiceFrame template),
and LineType replaces TypeOfFlexibleService (mapping table, sheet LineType).
classDiagram
%% Styles
classDef frame fill:#FFF8E1,stroke:#FFB300
classDef contained fill:#E8F4FF,stroke:#1E90FF
classDef external fill:#F6F6F6,stroke:#AAAAAA
%% Frames
class ServiceFrame:::frame {
lines : Line[]
journeyPatterns : ServiceJourneyPattern[]
}
class TimetableFrame:::frame {
vehicleJourneys : ServiceJourney[]
}
%% Contained elements
class Line:::contained {
LineType
TransportSubmode
bookingArrangements
}
class BookingArrangement:::contained {
BookingMethods
BookWhen
MinimumBookingPeriod
bookingUrls
BookingNote
}
class ServiceBookingArrangement:::contained {
BookingChargeType
DepositRequired
}
class ServiceCompetitiveCondition:::contained {
DistanceFromClassical
TemporalDistanceFromClassical
InterchangeWithConventionalServicesAllowed
}
class ServiceEligibilityCondition:::contained {
UserProfile
ResidentialQualification
}
class ServiceJourneyPattern:::contained {
pointsInSequence
}
class StopPointInJourneyPattern:::contained {
ForBoarding
ForAlighting
RequestStop
bookingArrangements
}
class ServiceJourney:::contained {
ServiceJourneyPatternRef
FlexibleServiceProperties
}
class FlexibleServiceProperties:::contained {
FlexibleServiceType
bookingArrangements
}
%% Containment relations
ServiceFrame "1" o-- "0..*" Line : contains
ServiceFrame "1" o-- "0..*" ServiceJourneyPattern : contains
TimetableFrame "1" o-- "0..*" ServiceJourney : contains
Line "1" o-- "0..*" BookingArrangement : contains
Line "1" o-- "0..*" ServiceBookingArrangement : contains
Line "1" o-- "0..*" ServiceCompetitiveCondition : contains
Line "1" o-- "0..*" ServiceEligibilityCondition : contains
ServiceJourneyPattern "1" o-- "1..*" StopPointInJourneyPattern : contains
ServiceJourney "1" o-- "0..1" FlexibleServiceProperties : contains
%% Foreign Key relations
ServiceJourney "0..*" -- "1" ServiceJourneyPattern : references
FlexibleServiceProperties "0..*" -- "0..*" BookingArrangement : references
StopPointInJourneyPattern "0..*" -- "0..*" BookingArrangement : references
Figure: Elements used for DRT
Line and LineType
Purpose
General rules for Line are in Service Frame. LineType is expected
(Line template); its values are defined in the mapping table.
Usage Notes
- A DRT line gets the
LineTypeof its Swiss DRT type (see Overview) andBusSubmodedemandAndResponseBus. fixedis the default for all non-DRT lines. IfLineTypeis omitted,fixedis assumed.- The values
mainRouteWithFlexibleEnds,flexibleAreasOnly,hailAndRideSections,fixedStopAreaWideandmixedFlexibleare not used in the Swiss profile.
Example
<Line id="ch:1:slnid:1026470" version="1" responsibilitySetRef="ch:1:ResponsibilitySet:BLT">
<!-- ... -->
<TransportMode>bus</TransportMode>
<TransportSubmode>
<BusSubmode>demandAndResponseBus</BusSubmode>
</TransportSubmode>
<!-- ... -->
<LineType>flexible</LineType>
<TypeOfProductCategoryRef ref="ch:1:TypeOfProductCategory:B" version="1"/>
<bookingArrangements>
<BookingArrangement id="ch:blt:generated:BOOK:29013" version="1">
<BookingMethods>mobileApp</BookingMethods>
<BookWhen>advanceOnly</BookWhen>
<BookingNote>Einstieg nur auf Voranmeldung mind. 30 Min. vor der Fahrt.</BookingNote>
</BookingArrangement>
</bookingArrangements>
</Line>
Booking and Rules on the Line
Purpose
Line/bookingArrangements holds four kinds of elements:
Table: Elements in Line/bookingArrangements
| Element | Describes |
|---|---|
BookingArrangement |
How to book. |
ServiceBookingArrangement |
How to book, with additional elements for booking duration and charges. |
ServiceCompetitiveCondition |
What the service may do and may not do in relation to classical public transport. |
ServiceEligibilityCondition |
Who can use the service. |
Usage Notes
- Several
ServiceEligibilityConditions are combined with OR (e.g. “senior or child”). This may require splitting a service. FlexibleServicePropertiesandStopPointInJourneyPatterncan only reference aBookingArrangement.ServiceBookingArrangement,ServiceCompetitiveConditionandServiceEligibilityConditionare only possible inLine/bookingArrangements.
BookingArrangement
Purpose
Describes how, when and where a DRT service is booked.
Table: Elements of BookingArrangement
| Element | Values / type |
|---|---|
BookingContact |
Contact details of the booking office. |
BookingMethods |
callDriver, callOffice, online, phoneAtStop, text, mobileApp, atOffice, none, other (list) |
BookingAccess |
public, authorisedPublic, staff, other |
BookWhen / BuyWhen |
advanceOnly, untilPreviousDay, dayOfTravelOnly, advanceAndDayOfTravel, timeOfTravelOnly, subscriptionChargeMoment, other |
LatestBookingTime |
Time |
MinimumBookingPeriod / MaximumBookingPeriod |
Duration |
BookingUrl |
URI |
bookingUrls |
BookingUrl (URI), BookingDeepUrl (Endpoint, parameterDescriptions) or BookingService (Endpoint, EndpointVersion, BookingServiceType, SupportedSteps); at least one entry. |
BookingNote |
Text |
BookingServiceType: tomp, osdm, bob, trias, ojp, other. SupportedSteps (list):
tripPlanning, pricing, availability, booking, reservation, fulfillment, full, other.
Usage Notes
- From the HRDF conversion only a
BookingNotecan be passed at the moment. With native NeTEx handling more information can be transferred (ServiceJourneyPattern template). - In a
ServiceJourneyPattern, theBookingArrangementis referenced withBookingArrangementRef; an inlineBookingArrangementisignored.
ServiceBookingArrangement
Purpose
Contains the elements of BookingArrangement and additionally MinimumBookingDuration,
MaximumBookingDuration, DepositRequired and BookingChargeType (fullAmount,
blockFullAmountOnCard, deposit, none, other).
ServiceCompetitiveCondition
Purpose
Describes restrictions of the DRT service towards classical public transport. It contains either the competition parameters or the two interchange flags.
Table: Elements of ServiceCompetitiveCondition
| Element | Meaning |
|---|---|
transferRestrictions / routingConstraintZones / serviceExclusions |
Restrictions towards other services. If not set, the rules apply in general. |
DistanceFromClassical |
Distance in metres to the line/service or classical public transport in general; builds geometric exclusion zones. |
TemporalDistanceFromClassical |
Temporal distance to the service/transfer in the routing constraint or classical public transport in general. |
PenaltyDrivingTimeFactor / PenaltyTransferTimeFactor / WalkTimeFactor |
Factors for the comparison with classical public transport (default 1.0). |
InterchangeBetweenFlexibleServicesAllowed |
Default false. |
InterchangeWithConventionalServicesAllowed |
Default false. |
Example
<ServiceCompetitiveCondition id="ch:1:ServiceCompetitiveCondition:1" version="1">
<DistanceFromClassical>200</DistanceFromClassical>
<TemporalDistanceFromClassical>PT15M</TemporalDistanceFromClassical>
</ServiceCompetitiveCondition>
ServiceEligibilityCondition
Purpose
Describes who can use the service. Each condition contains exactly one of UserProfile,
CommercialProfile, ResidentialQualification or CompanionProfile.
Example
<ServiceEligibilityCondition id="ch:1:ServiceEligibilityCondition:1" version="1">
<UserProfile id="ch:1:UserProfile:1" version="1">
<MinimumAge>65</MinimumAge>
</UserProfile>
</ServiceEligibilityCondition>
FlexibleServiceProperties
Purpose
Additional characteristics of a flexible service on a single ServiceJourney; a service may be
partly fixed, partly flexible. Elements: FlexibleServiceType (dynamicPassingTimes,
fixedHeadwayFrequency, fixedPassingTimes, notFlexible, other), CancellationPossible,
ChangeOfTimePossible and bookingArrangements.
Example
From example 04:
<ServiceJourney id="ch:blt:generated:SJ:29013:ODV" version="1" responsibilitySetRef="ch:1:ResponsibilitySet:BLT">
<!-- ... -->
<FlexibleServiceProperties id="ch:blt:generated:FSP:SJ:29013:ODV" version="1">
<bookingArrangements>
<BookingArrangementRef ref="ch:blt:generated:BOOK:29013" version="1"/>
</bookingArrangements>
</FlexibleServiceProperties>
</ServiceJourney>
Request Stops
Purpose
Request stops are set in the StopPointInJourneyPattern (see
Service Frame). The mapping from HRDF is defined in the
sheet Haltecode of the mapping table:
Table: Request stops (Bedarfshalt, HRDF *A X)
| HRDF | ForAlighting | ForBoarding | RequestStop | Request method |
|---|---|---|---|---|
| Bedarfshalt | true |
true |
true |
BoardingRequestMethod and AlightingRequestMethod |
| Bedarfshalt nur zum Einsteigen | false |
true |
true |
BoardingRequestMethod |
| Bedarfshalt nur zum Aussteigen | true |
false |
true |
AlightingRequestMethod |
Usage Notes
StopUseisaccess, at stations with BHFArt 3interchangeOnly.- A flexible stop references the
BookingArrangementwithBookingArrangementRef(ServiceJourneyPattern template).
Reservation as Service Facility
Reservation offers from HRDF are delivered as ServiceFacilitySet and, where defined, as Notice
(sheet Angebote of the mapping table, see also Service Facilities).
Examples:
Table: Reservation offers relevant for DRT
| HRDF | Text | Facility | Notice |
|---|---|---|---|
BH |
Bedarfshalt nur auf telefonische Voranmeldung | reservationsCompulsory; RequestStop true in the call |
yes |
RR |
Reservierung obligatorisch | reservationsCompulsory |
– |
XR |
Einstieg nur nach telefonischer Voranmeldung | reservationsCompulsory |
yes |
GR |
GRUPPEN: Reservierung obligatorisch | groupsAllowedWithReservation or reservationsCompulsoryForGroups |
– |
Collection Points
Collection points are described with StopPlaceType (Decision 2026-06-30, “namentlich für
drt:collectionPoint”). The ResourceFrame contains the ValueSet ch:1:ValueSet:TypesOfPlace
with the TypeOfPlaces drtCollectionPoint and regularStop
(ResourceFrame template,
Resource Frame).
Templates and Examples
Table: Templates relevant for DRT
| Template | Relevant content |
|---|---|
| ServiceFrame, ServiceFrame_NETWORK_OFFER | Line |
| Line | LineType, TransportSubmode |
| ServiceJourneyPattern | ForBoarding, ForAlighting, RequestStop, StopUse, BookingArrangementRef |
| ServiceFacilitySet | Facilities, GroupBookingFacility |
| Notice | Passenger information |
| StopPlace | StopPlaceType |
| TypesOfPlace, ResourceFrame | drtCollectionPoint, regularStop |
| AvailabilityCondition | Timebands (time restriction of type 4) |
Table: Examples relevant for DRT
| Example | Content |
|---|---|
| 04_NeTEx_CH_DRT_Line_50.110 | BookingArrangement on the Line, one on-demand journey with FlexibleServiceProperties. |
| 05_NeTEx_CH_DRT_Line_Dependent_On_Passengers_At_Start | No reservation; passengers can only alight after the first stop (ForBoarding false), Notice. |
Further Swiss DRT examples are in the NeTEx repository under
examples/functions/drt/.