/* check if route and/or Agency are banned for this plan */
// FIXME this should be done WHILE searching for a trip.
if (options.tripIsBanned(trip)) return null;
/* Check if route is preferred by the user. */
long preferences_penalty = options.preferencesPenaltyForRoute(getPattern().route);
/* Compute penalty for non-preferred transfers. */
int transferPenalty = 0;
/* If this is not the first boarding, then we are transferring. */
if (s0.isEverBoarded()) {