This week the engine did something we never told it to do: it made three client sites visibly calmer. Less hero motion, shorter gradient sweeps, one palette pulled back from four accent colors to two. Nobody wrote that instruction. The bounce data did — 11,400 mobile sessions of it.
This is the weekly engine log: what our self-optimizing system shipped, what it measured, and what it decided to keep.
Past logs covered the bandit's impression math and brand-voice training. This one is about restraint as a learned behavior.
The short version: theatrics tested badly, and the system noticed before we did.
What shipped this week, in numbers
Across nine client sites the engine shipped 41 changes: 17 copy revisions, 11 structural edits, 9 style variants, and 4 experiment conclusions. The style variants are the story. Six of the nine were reductions — shorter animation durations, fewer palette accents, lower parallax amplitude — generated after bounce and exit signals turned against the louder variants it had favored through June.
Total sessions observed: 38,200. Experiments concluded: 12. Human overrides: one, and we will get to it.
Nine style variants in one week is high for us — June averaged five. The engine generates more options when its signals disagree, and this week they disagreed loudly.
For scale, June's weekly average was 33 changes shipped. The conclusion count is normal too. About one change in ten does not survive contact with real traffic, and the point of the system is finding out fast.
The signal: bounce rose where the motion got loud
The trouble surfaced as a six-point bounce increase on mobile for two sites running the engine's boldest hero treatments — a 12-second gradient sweep and a staggered headline reveal that delayed the value proposition by 1.8 seconds. Desktop tolerated it. Mobile did not: bounce hit 61% against a 49% baseline, scroll depth past the hero fell 14%, and exit-on-hero rose from 31% to 39% in the same window.
The pattern only became legible because the engine segments by device, referrer, and visit count. Returning visitors punished the motion hardest, with a nine-point bounce gap. People who already know you want the content, not the curtain-raiser.
First-time visitors arriving from AI engines were least tolerant of all. They landed holding an answer and wanted confirmation in under two seconds.
None of this was visible in the aggregate. Blended bounce moved barely a point. Segmentation is where the signal lived.
What the bandit did about it
The engine allocates traffic between design variants with a multi-armed bandit, so it does not wait for a human review cycle to act. As evidence for the calm variants accumulated, allocation shifted automatically: the loud hero fell from 60% of traffic to 11% in five days, and the two quiet variants absorbed the rest. No meeting happened. The math just moved the budget.
By Thursday the bandit had also throttled a pulsing CTA on a third site — one we thought was fine. Its click rate was fine. Its downstream form completion was not, off 22% against the static button.
The lesson we keep re-learning: measure the funnel, not the element.
Allocation shifts faster than conviction, though. The bandit still reserves a 5% exploration floor for the loud variant, in case the world changes its mind.
The palette pullback, variant by variant
The engine's generated style variants all moved the same direction this week: fewer, quieter. Accent colors went from four to two on the roaster site. Default animation duration dropped from 700 milliseconds to 320. The gradient sweep was cut from 12 seconds to a single three-second entrance that runs once and stops. Background saturation came down 18% on the two sites with reading-heavy pages.
Nothing was removed for its own sake. Every reduction was a variant that beat its louder sibling head-to-head over at least 1,900 sessions before the bandit committed.
It also started honoring an old rule with new enthusiasm: prefers-reduced-motion now maps to the calmest variant outright instead of merely shortening durations. That began as an accessibility guardrail. The data promoted it to a design opinion.
Load time was the quiet co-winner. The calm hero shaved 210 milliseconds off Largest Contentful Paint on mid-range Android hardware.
Calm got written into policy
The interesting part is what the engine stored. Not "variant B won" but a reusable prior: on mobile and on AI-referred traffic, motion budget correlates negatively with progression past the hero. New variant generation now starts from that prior across all nine sites, which means future designs begin calm and must earn their theatrics through evidence, instead of beginning loud and getting sanded down.
That is the difference between an A/B tool and a system that learns. The test result expires. The prior compounds.
Priors are versioned like code. If mobile behavior shifts next quarter, we can point to the exact week calm became the default, and why.
No client asked for calmer sites. Their visitors did.
We reviewed the policy diff Friday, as we do for every learned rule that crosses client boundaries. This one shipped unedited.
The one human override
We overrode the engine once this week. On the portfolio site of a motion designer, it proposed the same calming pass — which would have meant stripping animation from a site whose entire product is animation. The signals were technically right and contextually wrong: her visitors bounce fast because they are browsing reels, not because the motion offends them. We pinned her hero and excluded the site from the motion prior.
The engine optimizes toward the metric it can see. Knowing when the metric is lying about the business remains our job, and it is a real job — about one intervention per week across nine sites.
The override took nine minutes, including the note explaining it.
Overrides get logged as training signal too. The engine now treats portfolio sites as a class where the bounce heuristic is suspect.
Next week's experiments
Queued for next week: a test of whether the calm prior holds on landing pages with paid traffic, where the visitor arrived from an ad and may need more staging. Also a typography experiment — line length against read-completion on the two content-heavy sites — and a re-run of the pulsing CTA with the pulse slowed four times, because the engine wants to know whether the problem was motion or tempo.
If the paid-traffic test contradicts the prior, the prior gets a scope, not a funeral. That is how the policy layer stays honest.
Restraint, it turns out, is not an aesthetic. It is a measurable respect for the visitor's time. The engine arrived at it the same way we like to think good designers do — by watching what people actually do.