The X3 delivers an extremely wide range of mileage. I have the 28i and get anywhere from 17, in local stop-and-go traffic, to 29 highway. I can get it down to 15 with aggressive Sport mode driving in stop and go, and 30+ in eco with a light foot.
The tricky part with X3 mileage is the enormous hit the mileage takes in any kind of non-continuous driving. Even a handful of stoplights will send the mileage cratering on a "mixed city/highway" drive. As an interesting experiment, reset your trip settings, drive normally in Comfort mode for a while, and then watch what happens when you come to a light. Just accelerating out of the light once will send your average mpg tanking, and it will take miles and miles to average it out. If you have been cruising for a while at 50 mph you should find the trip computer saying about 24 mph. One stop light later, you're down in the 22's and it takes a long time to climb back up. Either the trip computer is worthless or the X3 gulps down the fuel when coming back up to speed. Eco mode does a good job of minimizing this by upshifting aggressively to keep your RPM well south of 2,000 coming out of a light. Combined with a light foot, in Eco mode I can achieve 24 in stop-and-go traffic, but it's really frustrating to drive that way. In Comfort Mode, upshifts hit 2,500 rpm and the mileage plummets instantly.
Despite the sticker saying something about 21/28, I'm finding a typical 18.3 in driving around the 'burbs. At first I was really annoyed about this, but it is what it is. It gets pretty good mileage on an open road with no stopping, but it's a guzzler in stop-and-go.
2013 X3 28i
1997 Merc C280 Sport
Retired: 2005 X5 4.4i ... 2002 540i ... 1999 M3 ... 1997 328i ... 1988 535i