What does a humaniser actually change? 20 AI-written passages, before and after

SGR-027, conducted 2026-11-10. Analyst: Jack Stovell, founder, ScriptGrain.

Question: When a humaniser rewrites AI-written text so that a detector scores it as human, what changes in the writing: the detector score, the AI tells, the measurable habits, the content, and whether the text sounds like any particular writer?

Summary

Background. AI humanisers rewrite machine-written text so that detectors score it as human. What they change in the writing is rarely published with the numbers in view. We tested ScriptGrain's own humaniser because it is the one we can run with every intermediate number recorded; we sell it, which is a competing interest stated below.

What we did. We fixed four hypotheses before any passage was generated. Twenty passages of 146 to 235 words were written from bare prompts with no style, voice or tone instruction: 5 everyday formats by 4 topics, 10 by Claude (claude-sonnet-5-5) and 10 by GPT (gpt-6-astra). Each was sent once to the humaniser, forced to rewrite even if it already passed, and both versions were measured: the detector's human score, AI tells per 1,000 words, five stylometric habits, voice match against one fixed profile, and what happened to numbers and first-person statements. Two passages (P01 and P11) came back word for word unchanged: the humaniser keeps whichever text scores highest on its detector, the original included, and for P01 none of its 3 passes scored above the original on its detector; for P11 its integrity guard discarded all 3 passes.

What we found. H1 (supported): the detector's human score rose, 0.51 to 0.69 on a 0 to 1 scale, a change of +0.18 (95% interval 0.14 to 0.23). H2 (not supported): AI-tell density did not clearly fall (0.24 to 0.47 per 1,000 words), a change of +0.24 (95% interval 0.00 to 0.71). H3 (supported): voice match against the fixed profile did not move beyond ±0.05 (0.74 to 0.74); the change was −0.001 (95% interval −0.027 to 0.025). H4 (supported): content survived in 20 of 20 pairs (no number lost or added, no first-person sentence invented); 0 pairs lost a number, 0 gained one and 0 gained a first-person sentence the original did not have.

What it means. This describes what one humaniser did to 20 short passages, scored by one detector. It does not show that the rewrite would pass any other detector, that it works on human writing, or that detector scores measure authorship. Four of the pairs are shown in full on this page and all twenty are in the data file, so a reader can judge the rewrites themselves.

Key numbers

Sample

20 passages written on 12 October 2026 from bare prompts with no style, voice or tone instruction: 5 formats (blog intro, linkedin post, launch email, explainer, about page) by 4 topics (loft insulation, a weekly budgeting app, running after forty, a bakery), 10 by Claude and 10 by GPT, one generation per prompt, no retries and no editing. Original lengths ran from 146 to 235 words.

Method

Corpus: the prompts and the generator of each were frozen in the pre-registration before any generation. Every prompt had the same suffix, "Output only the text.", on both generators. Claude passages came from Claude (claude-sonnet-5-5) through the claude command-line tool and GPT passages from GPT (gpt-6-astra) through the codex command-line tool. The passages were generated once, before the measurement day, and were not touched afterwards.

Treatment: each passage was sent once to ScriptGrain's humaniser (api-v1 POST /v1/humanize) with force set, so every passage was rewritten even if it already passed, and with the default target of 0.85. The humaniser's own integrity guard stayed on.

Measures: on the original and on the rewrite, the detector's human score (POST /v1/ai-detect), AI tells per 1,000 words (the AI cliché checker's scan), five habits counted by ScriptGrain's voice-match counter, voice match against the fixed ScriptGrain brand profile (POST /v1/voice-match), and the content checks. Word count was recorded for both.

Tests: H1 to H3 use the paired mean difference with a 95% bootstrap interval (10,000 resamples of passages, seed 20261012). H1 and H2 hold if the interval excludes zero in the stated direction; H3 holds if the interval lies inside -0.05 to +0.05; H4 holds if at least 18 of 20 pairs lose or add no number and gain no invented first-person sentence.

Run: once, on 10 November 2026, the day before this page went live. No result changed any measure, threshold, seed or hypothesis. Analyses beyond H1 to H4 are labelled exploratory.

Variables measured

What each measure means

Detector human score
The score from ScriptGrain's own AI detector, 0 to 1, where 1 reads as human. It is a model's judgement of how the text reads, not a test of who wrote it.
AI tells per 1,000 words
Uses per 1,000 words of the stock phrases, balanced 'not X but Y' sentences and other patterns found by the free AI cliché checker.
Stylometric habits
Counted by code, not scored by a model: contractions per 1,000 words, average sentence length, sentence-length variance, commas per word and em dashes per 1,000 words.
Voice match
How closely a text matches one fixed writing profile, 0 to 1, from ScriptGrain's voice-match engine. The profile used is the ScriptGrain brand profile, fixed in advance because it is unrelated to every topic in the corpus. It asks whether the text sounds like that writer, not whether it sounds human.
Content kept
For each pair: numbers in the original missing from the rewrite, numbers in the rewrite absent from the original, first-person sentences in the rewrite with no first-person source in the original, and the share of the original's content words still present.
Paired change and 95% interval
Each passage is compared with its own rewrite; the change is the mean of the 20 differences (rewrite minus original). The 95% interval resamples the 20 passages with replacement 10,000 times (fixed seed 20261012).

Findings

What this study does not show

Pre-registered hypotheses and results

HypothesisResultChange, rewrite minus original (95% interval)
H1: the mean detector human score risesSupported+0.18 (95% interval 0.14 to 0.23)
H2: the mean AI-tell density fallsNot supported+0.24 (95% interval 0.00 to 0.71) per 1,000 words
H3: voice match against the fixed profile does not move (interval inside ±0.05)Supported−0.001 (95% interval −0.027 to 0.025)
H4: in at least 18 of 20 pairs no number is lost or added and no first-person sentence is inventedSupported20 of 20 pairs

Habits, before and after

Exploratory. Mean across the 20 passages, rewrite minus original, with a 95% interval from the same bootstrap.

HabitBeforeAfterChange (95% interval)
Words194.1204.0+9.9 (95% interval 5.2 to 15.1)
Contractions per 1,000 words30.235.1+5.0 (95% interval −1.1 to 11.0)
Average sentence length (words)13.411.7−1.6 (95% interval −2.4 to −0.9)
Sentence-length variance45.346.8+1.5 (95% interval −6.4 to 9.6)
Commas per word0.8310.671−0.160 (95% interval −0.254 to −0.070)
Em dashes per 1,000 words0.80.0−0.8 (95% interval −1.6 to 0.0)

Claude passages against GPT passages

Exploratory. Ten passages each; the intervals are wide and are shown for completeness, not as separate tests.

Written byMeasureBefore to afterChange (95% interval)
ClaudeDetector human score0.55 to 0.72+0.18 (95% interval 0.11 to 0.23)
ClaudeAI tells per 1,000 words0.5 to 0.50.0 (95% interval 0.0 to 0.0)
ClaudeVoice match0.75 to 0.74−0.00 (95% interval −0.03 to 0.03)
GPTDetector human score0.47 to 0.66+0.19 (95% interval 0.14 to 0.25)
GPTAI tells per 1,000 words0.0 to 0.5+0.5 (95% interval 0.0 to 1.4)
GPTVoice match0.73 to 0.73+0.00 (95% interval −0.04 to 0.04)

Format by format

Exploratory. Four passages in each format (two Claude, two GPT), so these are descriptions of four pairs, not estimates.

FormatMeasureBefore to afterChange (95% interval)
blog introDetector human score0.69 to 0.74+0.04 (95% interval 0.00 to 0.09)
blog introVoice match0.80 to 0.78−0.02 (95% interval −0.09 to 0.05)
linkedin postDetector human score0.55 to 0.71+0.16 (95% interval 0.12 to 0.19)
linkedin postVoice match0.76 to 0.76−0.00 (95% interval −0.03 to 0.02)
launch emailDetector human score0.44 to 0.69+0.24 (95% interval 0.22 to 0.27)
launch emailVoice match0.71 to 0.710.00 (95% interval −0.07 to 0.07)
explainerDetector human score0.35 to 0.62+0.27 (95% interval 0.20 to 0.35)
explainerVoice match0.72 to 0.76+0.04 (95% interval −0.02 to 0.10)
about pageDetector human score0.49 to 0.70+0.21 (95% interval 0.18 to 0.25)
about pageVoice match0.72 to 0.69−0.03 (95% interval −0.07 to 0.01)

Four pairs in full

Chosen by rule before the run: the largest, median and smallest detector gain, and the largest voice-match change in each direction (a pair can fill more than one role). The texts are shown with em and en dashes written out as [em dash] and [en dash], because this site does not print them. All 20 pairs are in the data file, in full.

Pair P04: largest detector gain

GPT passage, explainer about loft insulation. Detector human score 0.22 to 0.62; AI tells per 1,000 words 0.0 to 0.0; voice match 0.71 to 0.71; words 204 to 220; contractions per 1,000 words 0.0 to 18.2. Numbers lost: 0; numbers added: 0; first-person sentences invented: 0.

Original:

Loft insulation lowers heating bills by slowing the movement of heat from your home into the colder air outside. Warm air rises, making the roof an important route for heat loss. Without enough insulation, heat passes through the upstairs ceilings and escapes through the loft and roof. Your heating system then has to replace it to keep rooms comfortable.

Insulation materials, such as mineral wool, trap air in small pockets. This trapped air is a poor conductor of heat, so it creates a barrier that slows heat transfer. In a typical unheated loft, insulation is laid between and over the ceiling joists, helping retain warmth in the rooms below.

Because an insulated home loses heat more slowly, the heating needs to run less often or for shorter periods to maintain the same temperature. That reduces the amount of gas, electricity or other fuel you use, cutting your bills.

The savings depend on how much insulation you already have, the size of your home, your heating system and your usual thermostat setting. Installation matters too: gaps and compressed material reduce performance, while suitable ventilation helps prevent moisture problems. Loft insulation works quietly all year and can also help limit heat entering rooms during hot weather.

After the humaniser:

Loft insulation cuts your heating bills because it slows how fast heat leaves the house. Warm air rises, so the roof is where a lot of it escapes. Skimp on insulation up there and the heat just wanders through the upstairs ceilings, into the loft and out. Your heating then has to keep topping up the rooms.

Mineral wool and similar materials trap air in tiny pockets, and still air conducts heat badly. That's the whole trick. In an unheated loft the stuff goes between the ceiling joists and over them too, so the rooms below hold onto more warmth.

Lose heat slowly and the boiler doesn't need to run as often or for as long to keep the place at the same temperature. Less gas, less electricity, less of whatever you burn. Smaller bills.

How much you actually save is hard to pin down. It turns on what's already up there, the size of the house, the type of heating, and where you tend to leave the thermostat. Fitting counts as well. Gaps and squashed material do a poor job, and without decent ventilation you can get damp. Once it's in, the insulation works all year without anyone touching it, and in a heatwave it can also hold back some of the heat trying to get into the rooms.

Pair P19: median detector gain; largest voice-match rise

Claude passage, explainer about a bakery. Detector human score 0.42 to 0.62; AI tells per 1,000 words 0.0 to 0.0; voice match 0.73 to 0.84; words 235 to 244; contractions per 1,000 words 12.8 to 20.5. Numbers lost: 0; numbers added: 0; first-person sentences invented: 0.

Original:

Sourdough takes longer because it rises using wild yeast and bacteria rather than the fast-acting commercial yeast in ordinary bread.

Commercial yeast is a single, concentrated strain bred for speed. It produces gas quickly, so a standard loaf can be mixed, risen and baked in a few hours.

A sourdough starter is different. It's a living culture of wild yeast and lactic acid bacteria, kept alive on flour and water. The yeast population is much smaller and more varied, so it produces carbon dioxide far more slowly. The dough needs many hours to rise, and the first rise often runs eight to twelve hours or longer.

The bacteria also set the pace. They produce the acids that give sourdough its tang, and they do it slowly. Bakers often chill the dough overnight to develop flavour, which extends the process further. The acidity also slows the yeast, because the dough becomes a more demanding environment for it.

Those same long hours change the bread. Enzymes break down starches and proteins, which deepens the flavour and improves the crust. The acids help the loaf keep longer and may make some of the flour's compounds easier to digest.

A starter also has to be fed and kept active for days or weeks before it can raise a loaf at all.

So the extra time is the cost of the method, and it's also where sourdough gets its character.

After the humaniser:

Sourdough takes longer because it rises on wild yeast and bacteria instead of the fast commercial yeast in ordinary bread.

Commercial yeast is one concentrated strain, bred for speed. Gas comes fast. A standard loaf can be mixed, risen and baked in a few hours, start to finish.

A sourdough starter is a different animal. It's a living culture of wild yeast and lactic acid bacteria, kept alive on flour and water. Way less yeast in there, and a messier mix of types, so the carbon dioxide trickles out. The first rise often runs eight to twelve hours, sometimes longer than that.

The bacteria aren't rushing anyone either. They produce the acids that give sourdough its tang, and they take their time doing it. Plenty of bakers chill the dough overnight to pull out more flavour, which adds even more hours. Then there's the acidity, which slows the yeast too, because the more acid the dough gets, the worse a spot it is for yeast to work in.

Long hours change the bread itself. Enzymes chew through starches and proteins, so the flavour gets deeper and the crust comes out better. The acids help a loaf keep longer. They may also make some compounds in the flour easier to digest.

And before any of that, the starter needs feeding and tending for days or weeks. No loaf until it's active.

You pay for all this in time, and that's where the flavour comes from.

Pair P11: smallest detector gain

Claude passage, blog intro about running after forty. The humaniser returned this passage unchanged (its integrity guard discarded all 3 passes). Detector human score 0.82 to 0.82; AI tells per 1,000 words 0.0 to 0.0; voice match 0.86 to 0.86; words 201 to 201; contractions per 1,000 words 29.9 to 29.9. Numbers lost: 0; numbers added: 0; first-person sentences invented: 0.

Original:

The alarm went off at 5:40 a.m., and for a full minute I lay there negotiating with myself. I was forty-three. My knees had opinions about stairs. The last time I'd run anywhere on purpose was a school cross-country race, and I'd finished it walking, furious, and vowing never again.

So why was I lacing up a pair of cheap trainers in the dark?

Honestly, it wasn't a grand epiphany. There was no health scare, no milestone birthday crisis, no inspirational documentary. It was a small, quiet realisation that I'd been saying "I used to be able to" a lot lately. I used to be able to carry the shopping in one trip. I used to be able to keep up with my kids at the park. It had crept into my vocabulary like a slow leak.

My first run lasted ninety seconds. I know because I checked my watch, certain I'd done at least ten minutes. My lungs burned, my face went the colour of a boiled beetroot, and a man walking a spaniel passed me without apparent effort.

And yet, when I got home, I felt something I hadn't felt in years: the strange, bright satisfaction of having started.

After the humaniser:

The alarm went off at 5:40 a.m., and for a full minute I lay there negotiating with myself. I was forty-three. My knees had opinions about stairs. The last time I'd run anywhere on purpose was a school cross-country race, and I'd finished it walking, furious, and vowing never again.

So why was I lacing up a pair of cheap trainers in the dark?

Honestly, it wasn't a grand epiphany. There was no health scare, no milestone birthday crisis, no inspirational documentary. It was a small, quiet realisation that I'd been saying "I used to be able to" a lot lately. I used to be able to carry the shopping in one trip. I used to be able to keep up with my kids at the park. It had crept into my vocabulary like a slow leak.

My first run lasted ninety seconds. I know because I checked my watch, certain I'd done at least ten minutes. My lungs burned, my face went the colour of a boiled beetroot, and a man walking a spaniel passed me without apparent effort.

And yet, when I got home, I felt something I hadn't felt in years: the strange, bright satisfaction of having started.

Pair P06: largest voice-match fall

GPT passage, blog intro about a weekly budgeting app. Detector human score 0.62 to 0.72; AI tells per 1,000 words 0.0 to 0.0; voice match 0.79 to 0.67; words 206 to 213; contractions per 1,000 words 38.8 to 56.3. Numbers lost: 0; numbers added: 0; first-person sentences invented: 0.

Original:

Most budgeting apps seem to assume your money arrives once a month, neatly lined up with your bills. If you’re paid weekly, you know it rarely works that way.

Friday’s wages land. Rent is due Tuesday. Your phone bill comes out next week, and somewhere in between you need groceries, petrol, and enough room for a takeaway without wondering whether you’ve accidentally spent the electricity money.

A healthy-looking bank balance doesn’t always tell you what you can afford. Some of that money already has a job. The hard part is knowing how much to keep back from this week’s pay [em dash] and how much is yours to use.

That’s where a budgeting app built around weekly pay can help.

Instead of asking you to stretch a monthly plan across four or five paydays, it starts with your next pay packet. It helps you put a little aside for upcoming bills, cover everyday spending, and see what’s left until you’re paid again.

The aim is to make the decisions you already face a little easier: whether you can say yes to dinner out, how much to save this Friday, and what needs to stay untouched until rent day. Your budget should work on the same schedule as your wages.

After the humaniser:

Most budgeting apps assume your money shows up once a month, lined up neatly with your bills. If you're paid weekly, you already know it doesn't work like that.

Friday's wages land. Rent's due Tuesday. The phone bill comes out next week, and in the middle of all that you need groceries and petrol, and ideally a takeaway on the weekend without that nagging worry that you've spent the electricity money by accident.

A healthy bank balance can be misleading. Some of it already has a job. Figuring out how much to hold back from this week's pay is the hard part. Working out what's actually yours to use is harder.

A budgeting app built around weekly pay helps with that.

It won't ask you to stretch a monthly plan over four or five paydays. It starts from your next pay packet. You set a little aside for the bills coming up, cover everyday spending, and see what's left before you're paid again. That's about it.

Mostly it takes some of the weight off decisions you're making anyway, like whether dinner out is a yes, or how much goes into savings this Friday. Rent day is the one thing that stays fixed, so that money stays put while everything else shifts around it.

Limitations

Competing interests

ScriptGrain sells this humaniser and sells voice matching, and the analyst builds both. H3 is a hypothesis that the product's positioning would like to be true: it was tested with an equivalence margin fixed in the pre-registration and is reported whichever way it fell. The hypotheses, measures and tests were committed to ScriptGrain's research repository (public on GitHub) before any passage was generated, and every result is reported whether it passed or failed.

Reproducing this

Data

Released under CC BY 4.0: free to reuse, including commercially, with credit to ScriptGrain and a link to this page.

Citations

How to cite

ScriptGrain (2026). What does a humaniser actually change? 20 AI-written passages, before and after (Study SGR-027, conducted 10 November 2026). Dataset licensed CC BY 4.0. https://scriptgrain.com/research/what-does-a-humaniser-actually-change

About the analyst

Jack Stovell has worked in finance and data for more than twelve years, building management reporting, forecasting and profitability models for advertising agencies and tech scale-ups, from SQL and Power BI reporting to board-level analysis. Since 2016 he has run Adapt Progress Evolve, an applied AI studio, where he builds and operates AI systems and data products: ScriptGrain's measurement of writing voice across 45 attributes, UK Spend, which brings 16.7 million rows of UK council spending into one queryable dataset, and more than thirty AI agents running in production. He designs ScriptGrain's studies and is accountable for every number in them.

More research