Spartan III amount issue

there’s always something I found weird about the actual member count of the spartan III’s. Specifically with alpha and beta companies.

Alpha:
of Alpha’s 497 candidates, only 300 actually became spartans. and as we know, these 300 spartans were totally wiped out during Operation: Prometheus. however, several spartans (including Carter, Jun, Emile, Thom, Rosenda, hazel, and Kevin) were pulled from before Prometheus. yet somehow, 300 spartans still took part and died during Prmethious. How is this possible?

how it is in lore: how it should be:
300 spartans 300

  • ? spartans pulled. -?
    = =
    300 at Prometheus ? at Prometheus

Beta:
Beta company has the same issue. the company was comprised of a total of 300 spartans when it was created, with all 300 being sent out in Operation: Torpedo with only 2 surviving. but several spartans were pulled from Beta before Operation Torpedo and put into other teams or were trained to become headhunters, despite this there were still 300 spartans taking part in Operation: Torpedo and confirmed 298 casualties.

how it is in lore: how it should be:
300 spartans 300

  • ? spartans pulled. - ?
    = =
    300 at torpedo ? at torpedo
  • 2 survivors
    =
    298 KIA spartans

at a minimum (not counting washouts or candidates that were conscripted but didn’t become spartans) there has roughly been about 930 spartan IIIs. however, due to controdictory company population numbers could quite possibly be upwards of 1000’s

It could be explained in a few ways. The easiest I can come up with is that the 300 Spartans killed (MIA of course) on record would be 300, but the ones that were pulled before the operation would still be alive off record. It’s not a perfect explanation, but it works somewhat. No one outside the program really knows who the Spartans are, so it wouldn’t be hard to explain the numbers to someone not in the know.

I think they went about it a different way. My way of explaining this would be that the Spartans pulled from the company would be determined in advance. This is so they can shortlist other candidates who did not fall within the 300 mark, but account for those being pulled from the company. If there were Spartans pulled out a bit later, for example Kat, who was pulled just before Torpedo, they’d have that spot filled before the Spartan Companies deployment.

A better way to explain this would be say for example 30 were being pulled from the company, then they would augment 330, then later two more were being pulled, then they’d augment a total of 332 with the extra two being augmented at the time those other two were being pulled from the company to have a consistent 300 Spartans in the company. But I could be wrong.