From 0c2ba6ff15a45e5017a32ec9e1181a102d3cfd41 Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Mon, 24 Aug 2026 19:42:04 +0100 Subject: [PATCH] docs(design): size bands are per episode A release covering several episodes is measured by size divided by the episode count, for the target penalty and the floor alike. An unknown count divides by one, which fails toward rejecting rather than grabbing. Refs #179 --- DESIGN.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/DESIGN.md b/DESIGN.md index 457278a..09e4f0e 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -77,7 +77,8 @@ Policy required_audio rule set, see §5.2 dub_blacklist [pt-BR] hdr_rules see §5.3 - size_bands per resolution: floor, target, penalty curve + size_bands per resolution: floor, target, penalty curve, + all per episode (§5.5) resolution_pref [2160p, 1080p] source_weights small tiebreaker @@ -284,6 +285,28 @@ remux scores badly but stays eligible, so it is picked when it is the only option. The floor matters — unbounded "smaller is better" selects a 3 GB 4K encode that looks like mud. +**A band describes one episode.** For a movie the question never arises — one +release is one film. For TV a release may carry a single episode, several, or a +whole season, and the shipped TV numbers are episode numbers: a 1080p target of +2 GiB is what one episode should weigh, not a ten-episode pack. So a release is +measured by its size divided by the number of episodes it covers, and that +per-episode figure is what both the target penalty and the floor are compared +against. A 20 GiB pack of ten episodes is scored as 2 GiB and sits at target, +not ten times above it. + +The floor takes the same figure. It is a hard reject rather than a penalty, so +comparing a pack's total against an episode-sized floor lets every pack through +untested — wrong in the opposite direction from the target penalty. The floor +exists to keep a 3 GB 4K encode out, and a pack of ten such encodes has to fail +it just as plainly. + +**An unknown episode count is one episode.** A release matched before its +season's episodes have been revealed by a metadata refresh has nothing to divide +by, and the rule does not guess a number: the divisor is 1 and the release is +measured by its full size. That is the behaviour today, and it makes a pack look +oversized rather than undersized — it fails toward rejecting a good pack rather +than grabbing a bad one, and the next search after a refresh has the real count. + Source tier (`Remux > BluRay > WEB-DL > WEBRip > HDTV`) survives as a small tiebreaker. Seeders are log-scaled and small: enough to complete, past that it does not matter. Telesync, CAM and screener are **hard filters**, not low