Which source to use when reporting the current altitude to ATC? While flying from KSNA to KVCB VFR at night, Norcal Approach asked for my current altitude.  I was somewhere between 12.0 and 12.5 depending on which reading I was going to use.  ATC had me confirm.  My GPS altitude was 12.5, my transponder was showing 12.3, and my altimeter indicated 12.0.  I am assuming, since altimeter settings are based on the barometric pressure on the ground, that the thinner air above 12,000 feet would make my altimeter the least reliable of the three and the GPS the most reliable.

When ATC asks, should I give them the altimeter indicated altitude?  Also, is the transponder altitude that I can see derived from secondary radar and isn't that what ATC is already seeing?
When asked for altitude, you report the altimeter reading, utilizing the correct barometric pressure entered into the Kollsman window.

ATC separates traffic based upon indicated altitude.  The indicated altitude may include errors, such as the pressure ATC provides, but all aircraft in the area will presumably be using the same barometric pressure, and will have similar errors.

GPS altitude, which some call an absolute altitude, is an altitude relative to a model, normally the WGS84 elipsoid, and has it's own set of errors.

By convention, indicated altitude, based upon local pressure, is used for aircraft separation.