Commercial Fixed Wing
Flight Crew Multiengine; Flight Crew Instrument; Flight Crew Air Transport Pilot (ATP)
Deviation - Altitude Crossing Restriction Not Met; Deviation - Altitude Overshoot; Deviation / Discrepancy - Procedural Clearance
General None Reported / Taken
Environment - Non Weather Related; Human Factors
We were assigned the ZZZZZX RNAV departure off Runway X at ZZZ.  The clearance was to climb via the SID; top altitude of FL230 was set in the MCP. All the fixes and altitude restrictions were correct in the FMC; I was the PM; the airplane was light; so we had a good climb rate. The PF was hand flying as we approached the first fix which has a crossing restriction of at or below 10;000. LNAV/VNAV and VNAV PTH was selected. Close to the first fix the PF called for the autopilot as the airplane started its turn to cross the fix that placed the sun directly into our face which affected our visibility. As I turned my head to get my sunshade; ATC asked if we were going to stop at 10;000 feet; we got as high as 10;300 the PF turned the autopilot off and went down to 10;000.  In this situation I think turning the autopilot on earlier would have helped. Also anticipating the sun and take steps earlier to mitigate the effects of the sun would have helped us to maintain better situational awareness.
Our departure SID was the ZZZZZX.  Our departure plan was for Runway YYR per the ATIS.  During taxiout our runway assignment was changed to Runway X with the same SID.  My First Officer ran the runway change checklist and briefed me on the changes to the SID departing Runway X.  During the climbout I called for the autopilot sometime prior to 10;000 feet.  There is a fix named ZZZZZ that has a crossing altitude of 10;000 or below.  Our automation level was LNAV/VNAV with the autopilot engaged.  Approaching 10;000 feet I noticed that the FMA went to VNAV PTH.  About that time; I also got a face full of morning sunrise.  It briefly made it hard to see and I had not deployed my sunshade or put on my sunglasses yet.  When my vision adjusted to the glare of the sun I noticed that the aircraft did not level at 10;000 feet.  It overshot the altitude by 300 feet.  I disengaged the autopilot and returned to 10;000 feet.  The Controller did query us on our altitude during the overshoot.  One other piece of useful information is that the aircraft was very light.  I'm wondering if the system was respecting a G-Load vs. an altitude because I have no other explanation as to why it did not level at 10;000 feet.  Factors that I feel contributed to this event were the runway change on the ground; high airport elevation; sunrise; fatigue and maybe our light weight.  Next time I will not accept the immediate line up and wait from ATC.  Instead I would re-brief the SID so that my situational awareness would be better.
Air carrier flight crew reported an altitude deviation during departure.