Every package maintainer has probably looked at the “Testing migration” section of their package’s PTS page and wondered: “Okay? What the hell does that mean?”. Or perhaps “Is that something I should do something about?”. Lets have a look at an example “excuse” (from the PTS):
excuses: * Maintainer: Debian Python Modules Team * Too young, only 8 of 10 days old * Updating python-scipy fixes old bugs: #691254, #707315 * Not considered
The first thing to look for is the phrase "Valid candidate". If that appears, Britney will attempt to migrate your package to testing. Note the migration may fail, but we can come back to that (in a) later (post).
On the other hand, if "Not considered" appears, then Britney believes your package is not ready to migrate yet. At this point, the excuse will contain 1 or more reasons explaining why Britney thinks your package should not migrate.
The most common problem is probably "age". In the example above, that is indeed the problem denoted by the "Too young, only 8 of 10 days old". Age is incremented on the "evening run" (i.e. the 10 pm UTC run). The excuse of that run will include the up to date age. So when you see:
Too young, only 9 of 10 days old
It means that the age criteria will be satisfied in the next "evening run". If the age requirement is satisfied, the entry will look like:
11 days old (needed 10 days)
If there is a "Not considered", it means there is something else you need to fix to make your package migrate. Note that the age is based on the day the package was uploaded to sid. If the package migrates to testing and is later removed from testing again, the age will usually be "ridiculously" high. This is because all the days spent the package spent in testing is also included in the age.
 It looks similar on the "real" excuses page, except the "excuses:" header is actually the name of the source. Is also includes information about the versions involved (i.e. "[from-version] to [to-version]").