A method of managing transit vehicle schedules, comprising: determining a current location and current heading of a transit vehicle by a global positioning system module aboard the transit vehicle and communicating the current location and current heading (350, 360, 370, 406, 508, 510, 606) to a computer processor; determining a current time and current day by the computer processor; selecting one trip schedule (408, 512, 514, 608) from a plurality of trip schedules (S1, S2, S3, S4, S5) in a database by the computer processor, the one trip schedule having attributes consistent with the current location, current heading, current time, and current day; determining (110, 112) whether the transit vehicle is ahead of the one trip schedule or behind the one trip schedule; and outputting (114, 116) a signal that indicates whether the transit vehicle is ahead of the one trip schedule or behind the one trip schedule; wherein each trip schedule of the plurality of trip schedules specifies a starting location (202, 204, 206, 208, 210, 212, 214) having an associated heading, an associated start time, and an associated day, and each trip schedule further specifies a plurality of stop locations (222, 224, 226, 228, 362, 372, 374, 376) and associated stop times, and the selecting one trip schedule includes: determining that none of the plurality of trip schedules in the database has a starting location that matches the current location; and in response to the determining that none of the plurality of trip schedules in the database has a starting location that matches the current location, selecting from the plurality of trip schedules in the database, the one trip schedule that specifies a stop location that matches the current location and a starting location having an associated start time that is later than the current time and earlier than the start times later than the current time and associated with other trip schedules of the plurality of trip schedules; determining (110, 112) a difference between the current time and the start time associated with the starting location of the one trip schedule; and adjusting (110, 112) stop times associated with the stop locations of the one trip schedule by the difference. determining a current location and current heading of a transit vehicle by a global positioning system module aboard the transit vehicle and communicating the current location and current heading (350, 360, 370, 406, 508, 510, 606) to a computer processor; determining a current time and current day by the computer processor; selecting one trip schedule (408, 512, 514, 608) from a plurality of trip schedules (S1, S2, S3, S4, S5) in a database by the computer processor, the one trip schedule having attributes consistent with the current location, current heading, current time, and current day; determining (110, 112) whether the transit vehicle is ahead of the one trip schedule or behind the one trip schedule; and outputting (114, 116) a signal that indicates whether the transit vehicle is ahead of the one trip schedule or behind the one trip schedule; wherein each trip schedule of the plurality of trip schedules specifies a starting location (202, 204, 206, 208, 210, 212, 214) having an associated heading, an associated start time, and an associated day, and each trip schedule further specifies a plurality of stop locations (222, 224, 226, 228, 362, 372, 374, 376) and associated stop times, and the selecting one trip schedule includes: determining that none of the plurality of trip schedules in the database has a starting location that matches the current location; and in response to the determining that none of the plurality of trip schedules in the database has a starting location that matches the current location, selecting from the plurality of trip schedules in the database, the one trip schedule that specifies a stop location that matches the current location and a starting location having an associated start time that is later than the current time and earlier than the start times later than the current time and associated with other trip schedules of the plurality of trip schedules; determining (110, 112) a difference between the current time and the start time associated with the starting location of the one trip schedule; and adjusting (110, 112) stop times associated with the stop locations of the one trip schedule by the difference. determining that none of the plurality of trip schedules in the database has a starting location that matches the current location; and in response to the determining that none of the plurality of trip schedules in the database has a starting location that matches the current location, selecting from the plurality of trip schedules in the database, the one trip schedule that specifies a stop location that matches the current location and a starting location having an associated start time that is later than the current time and earlier than the start times later than the current time and associated with other trip schedules of the plurality of trip schedules; determining (110, 112) a difference between the current time and the start time associated with the starting location of the one trip schedule; and adjusting (110, 112) stop times associated with the stop locations of the one trip schedule by the difference.