How PL's work
BART uses a central control computer to keep the trains on time. There a few things that can be done, to keep things on time.
Most of BART's mainline track is rated 50 or 70 mph. A few stretches (long, straight tunnels, etc.) are rated 80 mph. Each section of track has a speed code on it. Think of the traffic loop, on a side street. You drive up, and stop in the loop, and the traffic light changes. The rails are connected to a signal generator, just like the traffic loop, and a speed code is sent to the train. Antennas on the train pick up the signal. As long as the train you are on is being controlled by central, you will have these signals - look in the cab and the speed codes are the big red numbers (command speed). This number is the same for that stretch of track (unless there's a train up ahead, or some other speed control, and you will get a smaller number, or zero).
The train, itself takes that speed code and modifies it. This modifier is called a "Performance Level", or a PL for short. There are six performance levels - PL1 to PL6. PL1 is the fastest, PL6 is the slowest, and most of the time you are on PL2 - the normal setting. There are some subtle differences in the PL's - Slower ones have weaker acceleration, and braking, etc., but the biggest difference is top speed. If you look in the cab, there is a small liquid-crystal display, which shows the PL level, as well as the operational speed (which is the big red command speed, modified by the PL). If the light, and the contrast knob of the LCD are just right, you can look in and see the LCD, with the PL and operational speed displayed.
Most trains run at PL2. A while ago, trains ran at PL1 all the time, and the mechanics were replacing brake pads all the time, from the extreme braking. And the trip from Fremont to Embarcadero was 3 minutes quicker than it is today. So, to save money, PL2 became the standard. (Along with some minor software tweaks to all the PL's).
So, when the Train Operator pushes the button to close the doors, and before he leaves the station, the wayside computer figures out how fast he needs to go to get to the next station. Then the wayside computer sends the proper PL code to the train, and that is used to determine the operational speed to the next station.
Typically, a train is pretty close to schedule, so you will usually get PL2. If you are a bit ahead of schedule, you might get PL3, which is a bit slower. If you are really late, you might get PL1. Occasionally, after a long run, followed by stations close together, you'll get a PL4,5, or 6. This happens a lot coming from West Oakland. You'll come into Embarcadero, and then be super early. To slow you down, and put you on schedule, you'll get a PL6 to Montgomery, which is only a third of a mile away. You can notice slow PL's - the train accelerates slowly. Then, by Civic Center, you'll be on PL2 again.
The other way to control the schedule is the door dwell. To fine tune the schedule, the central computer will keep the doors open longer. When the computer says "it's time to leave", an electronic beeper starts beeping, and the train operator looks backk to see if the doors are clear, and he closes them. It's not instant, it takes a couple of seconds, so don't feel like he's out to get you when you jump out from behind a post. He had already pushed the button, before you were even ten feet from the post.
So, if your train is a bit ahead of schedule, you will sit there, with the doors open. So, when you are sitting there, on Saturday morning, on your train, watching the escalator, and seeing nobody, the long door dwell is to keep the train on schedule. Almost all the schedules are the same times, whether it's rush hour, or "oh-dark-thirty" in the morning, so the long dwells seem funny when there's 16 people on the train, but seem too quick when there's 1100 people on the same train.
Commuters are smart and quick. So, train operators rarely do an extra door cycle when it's busy. The extra 20 to 30 seconds may seem like a small amount, but the commute schedule has very little slack, especially between Daly City and MacArthur. Chances are pretty good that a train is already 30 seconds behind schedule, and another 20 seconds will screw up 5 or 10 thousand commuters. Besides, there's another train in 2 minutes (or less)! Even the reverse commutes are time sensitive. Many commuters have bus (and Caltrain) connections, and, if the train is late, central has to call them and hold the buses.
Off peak and weekends is a lot easier. There's more time between trains, and there's fewer people. So, if all 30 of your party take 3 minutes to load through one door at Walnut Creek, then a short dwell at Lafayette, Orinda and Rockridge will take up the slack. And the timed transfer at MacArthur allows some more slack. Many weekend riders are inexperienced riders, so they take longer to get on and get off. And BART does maintenance during off peak, which causes some delays, but they still like to make the timed transfers work.
The operators have some degree of manual control. If they look ahead, and can see a train in the next station, they'll wait, with doors open and collect a few more passengers, rather than sit in a tunnel. If they know certain stations are slow, and others are crowded, they'll get out of the quiet statins quickly, knowing that they'll take longer to get their doors closed at busy ones. Long after central sends the beep to close the doors.
If they are on time, and they know they have a timed transfer ahead, they'll often open the doors for a latecomer. Particularly at night and weekends. A happy casual rider may become a steady daily commuter. But, if you come up the stairs, and the doors are already closed, and you don't get them opened personally, just for you, then take a look at the schedule on the wall. Chances are that train is already late. And, if the scrolling platform sign says "next train in 7 minutes", instead of the usual 15 or 20, then you know that train was super late.
When it works well, or even when it's a bit (3 or 4 minutes) behind, it works well. But, when it's a mess, it takes creative controllers, supervisors and train operators to get it back together.