Date: 201704
Local time of day: 1201-1800
Location: ZZZ.Airport, US
Flight conditions: VMC
Light: Daylight
Aircraft: Regional Jet 200 ER/LR (CRJ200)
Operator: Air Carrier
Operating under: Part 121
Flight plan: IFR
Mission: Passenger
Flight phase: Cruise
Airspace: Class A ZZZ
ATC / advisory: Center ZZZ
Reporter organization: Air Carrier
Reporter function: First Officer; Pilot Flying
Reporter qualification: Flight Crew Air Transport Pilot (ATP)
Human factors: Communication Breakdown; Situational Awareness
Anomaly: Deviation - Altitude Excursion From Assigned Altitude
Detector: Person Flight Crew
When detected: In-flight
Result: Air Traffic Control Issued New Clearance; Air Traffic Control Issued Advisory / Alert; Flight Crew Returned To Clearance; Flight Crew Requested ATC Assistance / Clarification; Flight Crew Became Reoriented
Contributing factors: Company Policy; Human Factors
Primary problem: Company Policy

Narrative: The Captain and I were traveling eastbound to ZZZ; we were at our cruising altitude of 31;000. Control came on the radio and instructed 'Company xxxx descend maintain 29;000.' We confirmed the assignment and read back the tail number. Being the pilot flying I initiated the descent to 29;000 at a VSI of 1000 FPM. Approximately 30 seconds later Company flight xyxx was then speaking to ATC and 29;000 was actually their assignment of descend maintain 29;000. The captain and I decided to arrest the descent at approximately 30;300 while the captain contacted control and confirmed our altitude assignment. ATC re-assigned us with 31;000. We then re-set the altitude to 31;000 and climbed back up the 700 feet we had descended. Two tail numbers that were very similar as well as a controller that could have misspoken/mishear; or pilots that could have misheard/misspoken. There are days in ZZZ1 where we will have three or four planes that are all starting with the first three flight numbers. I think it's an unsafe practice to have flights that are in the same vicinity with the same controllers that are so similar with number assignment. Not only will the pilots mishear but the controllers will misspeak. Just yesterday on a separate flight with a separate captain did it happen but with ATC during the approach segment (we had just been handed off to ZZZ1 approach control and they were finishing giving instructions to another Company flight with a similar tail number. Once that Company flight had acknowledged their instructions I checked on with the controller. Control was busy with three other flights and had not acknowledge me; after about a minute they then addressed the other Company flight and said; Company xxxx roger. Company xxxx then said; 'I think that was a different flight number.' control then said; 'no; I was just responding to your radio call.' I then hopped on frequency and informed control that it was our flight that had checked in with our speed and altitude and tail number.' Out in the wild blue yonder at 31;000 when the planes are 100 miles from each other it's not the largest concern; however; when you're at a major hub with 20 planes on approach it's a problem. Some issues that may cause this are the obvious; the controller misheard; the pilot misspoke; the controller misspoke; the pilot misheard. Both pilots misheard or misspoke. One pilot may have had their attention diverted by looking at an approach plate; the cockpit may be loud due to high indicated airspeed (I know the non-noise canceling headsets can be a problem above 290 knots; the gasper vents can be making a lot of noise along with the avionics cooling fans). Simple solution is to just rename the flight numbers so that planes flying out of the same airport or into the same airport or along the same route don't have similar flight numbers. We have a computer algorithm that can figure out a scheduling system for thousands of pilots. If the company identifier is different and the flight number is similar then it is not a big deal. Because Company Y 1234 sounds a lot different than Company X 1234. And yes; as pilots we should be double checking and the pilots should be backing one another up; but why not address the issue at the root of the problem; change the flight number at the carrier level. Company Z knows who is flying their routes out of and into what airports so like I said if Company Y and Company X are going to the same airport or will be with the same controller then that's fine keep the flight number the same; but if they know that Company is going to have three flights going into ZZZ1 then why would you set it up so you have four flights all going into and out of the same airport with similar routing. Make it so that someone is a 6000; one is a 3000; one is 2000; and so on and so forth. Or something to distinguish the numbers so they aren't so similar.




Synopsis: CRJ-200 First Officer reported an excursion from assigned altitude after accepting a clearance that was for another aircraft with a similar call sign.