It's most certainly your short journeys.
Take it for a Sunday run and reset the OBC.
My 23i sometimes seen 42mpg on my usual 50 mile journey. The iS is doing nicely at 35 mpg on the same run. However i'm driving like a saint to get those returns.
23i takes up to 15 miles to warm up properly with gentle driving.