I believe the current specialization system is flawed. For example, let's say we trained a slave to B+ Servant with a B+ cooking skill. A customer who needs a B+ Servant will accept her. Even though we began to train her further, she only became better, her rank increased to A+, but her cooking skill remained B+. Now she does not meet the requirements for a Servant and the customer who wanted a B+ Servant will now not accept her. She only got better, but the customer stopped accepting she, this is absurd in my opinion. This is not too much of a problem as long as we are working with specific customers or contracts from the guild, but the auction completely exposes this flaw. Training from B+ with some specializations to A+ without specializations causes all potential buyers to lose interest in the slave.
I have a solution for this problem. It is necessary to change the current system: rank + set of specializations to a general rank + rank in each specialization. The general rank will be calculated as rank is now calculated. Ranks for specializations will first be calculated by relevant skills, and then limited to the general rank. Each customer who wants a slave of a certain rank and specialization will check not her general rank, but the rank in the specialization he needs. This also applies to guild contracts and auction buyers. In rare cases when a specialization was taken into account without rank (for example, when calculating prestige), you can check the condition “rank in specialization is equal to general rank.”