造成北宋冗费过多的原因有二:
一是官员过多形成的冗官问题,北宋养官多达十余万人,且北宋官吏待遇优厚,造成了官吏的俸禄开支庞大,成为国家财政支出的一大负担。
二是冗兵。宋太祖认为:“可以利百代者,惟有养兵。凶年饥岁,有叛民而无叛兵;即丰年不幸有变,则有叛兵而无叛民。”太祖的意思是,只要把兵养好,即可以使天下无叛民之忧。而无平民之乱,又何惧叛兵。事实证明,太祖后来一直以此为基本国策,甚至不惜在荒年招募饥民入伍,供其衣食,以防其啸聚山林。此举虽避免了大规模农民起义的发生,但造成了养兵过多(北宋养兵最多时达118万余人),国家财政不堪重负(军费开支占财政支出的60%-70%)的严重问题。