Date: 201909
Local time of day: 1201-1800
Location: ORD.Airport, IL
Flight conditions: VMC
Light: Daylight
Aircraft: A320
Operator: Air Carrier
Operating under: Part 121
Flight plan: IFR
Mission: Ferry / Re-Positioning
Flight phase: Descent
Airspace: Class E ZAU
ATC / advisory: TRACON C90
Reporter organization: Air Carrier
Reporter function: First Officer; Pilot Not Flying
Reporter qualification: Flight Crew Air Transport Pilot (ATP); Flight Crew Instrument; Flight Crew Multiengine
Anomaly: ATC Issue All Types; Aircraft Equipment Problem Less Severe; Deviation - Altitude Excursion From Assigned Altitude
Detector: Person Air Traffic Control
When detected: In-flight
Result: Flight Crew Overcame Equipment Problem
Contributing factors: Aircraft
Primary problem: Aircraft

Narrative: We were ferrying a plane back from receiving heavy maintenance. The flight was progressing normally. Upon contacting Center we were switched to the arrival. We were told to keep our speed up and cross HULLS at 12;000 ft. Near reaching HULLS; the Center Controller requested we slow down and contact Approach. We were what I described as leveling at 12;000 ft. before arriving at HULLS and I made the check in with Approach saying we were leveling at 12;000 ft. with the current information. I typically will say leveling within 200 ft. of our assigned altitude instead of saying 12;200 ft. for 12;000 ft. Then the Controller responded with something like what is really your altitude? I said we were leveling at 12;000 ft. but we were actually at 12;000 ft. at that point making our crossing restriction with no issue. Then he said we were showing 12;700 ft. when I initially checked in with him then 12;400 ft. and he needed our actual altitude. Then he transmitted again. I thought he asked us to stop squawking mode C and queried him on it. Which he didn't respond. I looked at the Captain confused and said is it possible that we have an equipment malfunction and the Captain said to ask the Controller what altitude we were currently showing when we were indicating level at 12;000 ft. I told the Controller that this plane was just coming out of heavy maintenance and asked what our altitude was currently showing and he said 12;000 ft. Which [was] what our altimeters were reading. It was kind of a strange occurrence but the Controller seemed unhappy. We were eventually cleared for the ILS to 27L and continued for landing. Upon arriving at the gate the Captain and I discussed the occurrence and we felt it was proper to contact Maintenance and inform them of the possible altitude reporting issue. We met with the mechanics in the jet bridge and tried to give them as much detail as we could. If there was an issue with the plane coming out of heavy maintenance we wanted to make sure the plane was working properly and no other crews experienced this potential issue.I felt like me and the Captain were operating the plane in SOP (Standard Operating Procedure) and abiding by the clearance that we were given the way we always would. The late slowdown by the Controller made the crossing more difficult I'm assuming for the Captain but he commanded the automation to give the desired result. Also; flying up we were never informed of any other altitude exceedances and in RVSM airspace all of the instruments appeared to be within limits and showing the same. So I am not sure what could have been done differently here. But as I mentioned before the Controller seemed upset and we wanted to make sure that Maintenance took a look to make sure if there was an issue this didn't happen to any other flight crews.




Synopsis: A320 First Officer reported discrepancies with cockpit altimeter readouts when compared to ATC information.