diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # Changelog
 
+## [0.5.1.0] - 2026-10-13
+
+### Changed
+
+* A control (no-op) mutation is inserted at every module's first mutation
+  site and then every hundred mutations, rather than every twelve.
+
+
 ## [0.5.0.0] - 2026-09-11
 
 ### Added
diff --git a/src/Test/Syd/Mutation/Plugin/Instrument.hs b/src/Test/Syd/Mutation/Plugin/Instrument.hs
--- a/src/Test/Syd/Mutation/Plugin/Instrument.hs
+++ b/src/Test/Syd/Mutation/Plugin/Instrument.hs
@@ -400,7 +400,11 @@
 emptyInstrState =
   InstrState
     { instrLocalDisableHits = Map.empty,
-      instrSinceControl = 0,
+      -- Due immediately, so the first mutation site of every module is also a
+      -- control.  Without this a module needs 'controlInterval' mutations of
+      -- its own to get one, which at the cadence that interval sets means a
+      -- project of small modules gets no canary at all.
+      instrSinceControl = controlInterval,
       instrControlSeq = 0
     }
 
@@ -409,12 +413,14 @@
 -- harness for false kills, and even a handful across a run catches a systemic
 -- flaky\/nondeterministic suite - more just adds overhead and report noise.
 --
--- There is no per-module floor: a module (compilation unit) with fewer than
--- 'controlInterval' real mutations gets no control.  Any real mutation-testing
--- target has far more than this many mutations overall, so a run always ends up
--- with controls; only toy builds get none, and those do not need the canary.
+-- Sparser than a real mutation would warrant, because a control cannot stop at
+-- the test that kills it: it is expected to survive, so its child runs every
+-- covering test it is given.
+--
+-- Every module gets one regardless, at its first mutation site, since the
+-- count is per module ('emptyInstrState').
 controlInterval :: Int
-controlInterval = 12
+controlInterval = 100
 
 type InstrM = WriterT [MutationGroup] (StateT InstrState (ReaderT InstrumentEnv TcM))
 
diff --git a/sydtest-mutation-plugin.cabal b/sydtest-mutation-plugin.cabal
--- a/sydtest-mutation-plugin.cabal
+++ b/sydtest-mutation-plugin.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           sydtest-mutation-plugin
-version:        0.5.0.0
+version:        0.5.1.0
 synopsis:       GHC plugin that instruments code for sydtest's mutation testing
 description:    A GHC source plugin that instruments code under test with the coverage and mutation hooks that sydtest's mutation testing infrastructure needs. See https://github.com/NorfairKing/sydtest#readme for more information.
 category:       Testing
