Plan timed math drill sessions.
Timed drills are planned in sessions, so the useful outputs are the session count and how many problems fit in one. Problem types times problems per type gives the total, and converting through seconds per problem gives the minutes. Rounding sessions up matters because a session that runs out mid-set is not a completed session, and interleaving problem types within a session retains better than blocking them.
Drill volume
Total problems = problem types x problems per type; total minutes = total problems x seconds each / 60
Session planning
Sessions = ceiling(total minutes / session length); problems per session = floor(session seconds / seconds per problem)
Interleaving several types within a session produces better transfer than blocking, even though it feels harder and accuracy during practice is lower. Blocking is better only when first learning a method.
Ten to twenty for procedural fluency, spread across sessions rather than done in one sitting. Beyond that, additional problems of the same type add little.