Using Guaranteed Analysis (GA) values (which is looks like both of you are doing) is an okay place to start but leaves a lot of room for inaccuracy simply due to the nature of GA values. GA values show you the
minimum but each listed value could be higher. One of the moderators (Marje) has
a whole page explaining this and how to calculate the carb % - it also includes a link to
an article on GA values and how they aren't super awesome - what we are always looking for is the % of total calories that are carbs. This admittedly can be hard to determine if a pet food company does not publicly list as-fed or dmb values (which can then be plugged into Marje's formula); some companies will provide this information upon customer request but they are not required to do so.
I personally would just keep all of this mind if using GA values (i.e. know your carb % may not be accurate) and I would refer people to Marje's write-up -
Calculating % Calories from Carbohydrates. Hope that helps