Afghanistan recently admitted that it had 182 generals in the Ministry of Interior (national police, border guards and so on). That’s 149 per 100,000 personnel. That’s more than twice the ratio in the American military. The Afghan Army refused to reveal how many generals it had but it appears that Afghanistan has about twice as many (per 100,000 troops) generals in their security forces as neighboring Pakistan.
A larger number of generals per 100,000 troops is considered a sign of corruption, but in some nations it reflects that fact that it is difficult finding competent generals. That’s because most nations refuse to pay officers competitive wages, especially those with scarce managerial or technical skills. A way around that is to promote more officers to higher ranks, and make more jobs that were previously held by enlisted personnel into officer jobs. The best example of this can be seen in the United States, where there were 11 enlisted personnel for every officer during World War II while today it’s about half that (5.5 enlisted per officer). The number of generals per 100,000 troops went from 17 in World War II to nearly 70 today.
Over the last half century there have been some officer promotions were for morale purposes, but it was mainly a matter of making the “compensation package” attractive enough to get the people you needed. In places like Afghanistan the promotions are often rewards to political supporters or something that was sold and not for attracting the best qualified people. In a place like Afghanistan there are few college (or even high school) trained people and the growing demand for locals able to handle modern technology means that Afghans with education have a wide variety of job choices and that many government jobs are handed out to political supporters who are expected to at least make it look like they are doing the job. Foreign advisors know better, but the Afghan government does not want to hear about it.