For the interface, you could stick with the average literacy rate. It depends on how much info you think the user needs. I think I suggested being able to select a province to see more details about it in another thread. This would be good to show as detailed info.
As for the actual literacy of people or sub groups, the more detail you have, the more accurately you can simulate what's going on. So more is better as long as you can program it and adds to the enjoyability of the game.
The problem is not in programming it (or at least it's a minor one), but in the representation (interface). The problem is in how to make it not confusing to the player, not cluttered on the screen, etc.
OK, assuming 4 levels of education (illiterate, elementary, high school, university), how about this:
- each group tracks separately members with these levels of education (4 variables)
- when turn end (time passes) a portion of population within a group dies of old age (proportional to each education level) and new ones take thier place with an education level of illiterate (or elementary if you have schools - children are taught how to read & write)
- population from a group can join "students" group (it's like changing a job) where they will upgrade their education level, all who reach max education level are automatically kicked out from students to unemplyed group (from where they can seek new job)
Now, how to convey this information to the player?
I have attached the screen listing population inside a province:
- the first icon is their place of job (like factory)
- the second icon is the symbol of sociual group (labourers, unemplyed, teachers, students), the background color indicates the province (in this case the green province)
- next is the number of people and the name of the group
- next is education bar (which can be made of up to 4 "bars"), red means illiterare, then yellow for elementary and so on.
What you think?
(note I'm still open to a completely different solution)