B737-700
Flight Crew Instrument; Flight Crew Multiengine; Flight Crew Air Transport Pilot (ATP)
Flight Crew Last 90 Days 360
Time Pressure; Situational Awareness; Distraction
ATC Issue All Types; Conflict Ground Conflict; Less Severe; Deviation / Discrepancy - Procedural Published Material / Policy; Ground Event / Encounter Other / Unknown; Ground Incursion Runway
Air Traffic Control Issued Advisory / Alert; Flight Crew Executed Go Around / Missed Approach
Environment - Non Weather Related; Human Factors
BWI was landing and departing on Runway 10 (single runway operations) due to winter operations and runway conditions. Because of the single runway operation; our final was slightly longer than usual.  After our hand-off from Approach Control to Tower; we were cleared to land on Runway 10. Other takeoff and landing operations would occur prior to our landing. Also; prior to our landing a ground vehicle; escorting additional vehicles; requested permission to briefly enter the runway. The vehicles received their clearance and shortly thereafter reported that they were clear of the runway. BWI Tower acknowledged the radio transmission of the vehicles reporting clear of the runway. We continued our approach.  The approach lights and the touchdown portion of the runway lights were in view prior to reaching the approach minimums. Visibility limitations prevented us from seeing the entire length of Runway 10 and the covering of snow removed the normal visual contrast cues. Just prior to touch down; the Tower directed a go-around due to a vehicle being on the runway.  At that time; we had not seen the vehicle.  We think we saw the vehicle in our peripheral vision as we executed the go-around. During our go-around; while still on Tower frequency; we heard part of a conversation between the Tower and the vehicles that had received clearance to enter Runway 10 prior to our arrival. It seemed the Tower initially thought one of these vehicles was on the runway. The escorting vehicle was stated that their vehicles were clear.  We also heard go-around instructions issued to other aircraft. It is possible that the vehicle on the runway was a different vehicle and unrelated to the vehicles we heard on Tower frequency.It was fortunate that the Tower called the go-around because we had not seen the vehicle. We were vectored for another approach and landed without further issue. As we checked in with the Tower the second time; the Controller (it sounded like the same Controller) apologized for the late go-around call.  We expressed our thanks that he gave us the call.
[Report narrative contained no additional information.]
B737-700 flight crew reported tower directed go-around just prior to touchdown due to vehicle on runway.