
RFA / Brand audit
TTTThhhheeeeuuuunnnnsssseeeennnnttttaaaapppppppplllliiiiccccaaaattttiiiioooonnnn....
The handler written for one form.
Thirteen published surfaces were checked from outside with nothing asked of either account, and the handler written for one form is what this document lands on.
The form says it arrived. Nothing typed into it leaves the browser.
Thirteen of thirteen surfaces answered on the day they were checked, and 190 posts on one grid and 171 on the other were scored against their own medians.
What follows
Three ranked findings, one estate.
The handler at rank one.
The handler written for one form is rank one of the three below.
Checked on 11 August 2026 from the two public grids, both biographies, the brand site, the diagnostic and every link either profile publishes, with one file read on 18 August.
The rule this list is sorted by
Ranked by what a reader can check, and by how much is already on the brand site.
- Rank one
The cancelled submission.
- Rank two
The reply that cannot be given.
- Rank three
The four silent write paths.
The two intakes
Two intakes, two different asks.
Two intakes on two deploys.
Two owned intakes sit on two different Netlify deploys, and past a first name and an email they never ask the same thing.
| Intake | What it asks | Where it sits |
|---|---|---|
| The diagnostic | 10 profile questions, then 15 diagnostic questions | audit.rfacoaching.com, a name pointed at nervous-system-diagnostic.netlify.app. Both hosts served one body, md5 8af64f6acb986714e31ae9c21ef1d56d, 39,304 bytes, both answering 200 |
| The written application | Nine named answer fields, from a first name to how the applicant found RFA | rfacoaching.com/apply, on the brand site's own apex record, a different deploy |
A Netlify site serves one deploy across all of its domains, so two different roots is two different sites. The two builds subscribe through two different form ids on the same email platform. The diagnostic's own build is served at a third address on the brand site's deploy, and its gate there is the same two field form, so that address is a third door onto the first intake rather than a third intake.
The block that sends people to the diagnostic advertises 30 diagnostic questions, and that block is published on two of the brand site's own routes, each with an anchor beneath it resolving to /osb.
Past a first name and an email, neither asks what the other asks. The diagnostic's own landing card names an occupation set, and none of its ten profile questions asks for it. The application does.
The teardown
The strongest three on each grid.
Six frames already on the grids.
The strongest three on each grid inside the twelve months to August 2026, in date order, on the grids linked to the intake.
Eilidh
eilidhsutherland.rfa
171 scored posts, April 2025 to July 2026
-
2025-08-17 / Sidecar 277 likes, 5.89x own median -
2025-08-21 / Sidecar 982 likes, 20.89x own median -
2026-04-19 / Sidecar 379 likes, 8.06x own median
Kristian
kristianhill.rfa
190 scored posts, March 2025 to August 2026
-
2025-11-16 / Sidecar 154 likes, 3.95x own median -
2026-03-03 / Video 647 likes, 16.59x own median -
2026-03-17 / Video 211 likes, 5.41x own median
In its own words
The card that names the buyer.
The buyer description, once.
The intake publishes RFA's own description of its buyer on its landing screen, in front of its two field form, and no biography carries it.
Founders, executives, and high performers in their 30s and 40s who have built something impressive on the outside but feel like something underneath isn't quite right. You're successful by most measures. But the walls are crumbling privately.
Where that sentence renders
- The diagnostic's landing screen, in front of the two field form: yes
- The eilidhsutherland.rfa biography: no
- The kristianhill.rfa biography: no
- The brand site hero: no
It renders on the intake and on none of the three surfaces listed above it. Neither biography names that reader, and the hero opens on outcomes.
The buy path
Two routes that do not meet.
The route behind the third link.
Two routes leave the grids and reach two different intakes, and both first bio links land on one of the two.
Route A
-
Instagram profile
rented
-
First bio link, resolving on both profiles to the diagnostic
rented placement
-
The diagnostic gate, a first name and an email posted before question one
owned deploy
No privacy notice, cookie banner, terms link, consent control or unsubscribe reference on the screens either side of it. One sentence there speaks in the page's own voice about spam and privacy, which is a claim rather than a notice, a link, a control or a named recipient.
Route B
-
Third bio link
rented placement
-
The brand site
owned
The nav, the hero, the programmes block and the closing block all send to the booking page. The diagnostic is asked for once.
-
The written application, which publishes a personal read and a reply if it is a fit
owned
The page whose title sells the work names the application as its own step one and gives that step no control of its own.
The application, in its own words
Four published promises.
The promise printed four times.
The page promises a reply four separate times, and this is the page in its own words.
Every string here is the client's own published copy on rfacoaching.com/apply, read 11 August 2026.
- Above the form
-
Tell us where you are and what's not working. We read every application and respond to every one that's a fit.
- Beside the what happens next block
-
Kristian reads every application personally. If it's a fit, you'll hear back within 48 hours to schedule a call.
- Under the submit button
-
We read every application. You'll hear back within 48 hours if it's a fit.
- In the reassurance block, a read rather than a reply
-
Kristian reads every application himself. Not a team member, not an assistant.
A third sentence in that paragraph carries a dash and is described rather than reproduced. It tells the applicant in advance that silence means the timing or the fit was wrong rather than that the application was ignored.
- The screen the handler reveals
-
Application Received We've got it. Kristian will read your application personally. If it's a fit, you'll hear back within 48 hours to schedule a discovery call.
The screen's heading, its line and its paragraph are three elements in the source, printed here in the order the applicant meets them. That paragraph's final sentence carries a dash and is described rather than reproduced. It directs the applicant to the inbox and the spam folder.
The nine named answer fields on that form
fname, lname, email, location, role, situation, tried, looking-for, source
Rank one / The application form
The cancelled submission.
A form cancelled, not unwired.
The handler written for that form cancels the browser's own submission and reveals a success screen, while a page on the same site declares its form with a POST method and posts by hand.
<form id="apply-form" name="application" data-netlify="true" onsubmit="handleApply(event)" novalidate><input type="hidden" name="form-name" value="application">function handleApply(e) { e.preventDefault(); document.getElementById('apply-form').style.display = 'none'; document.getElementById('success-message').style.display = 'block'; window.scrollTo({ top: document.getElementById('success-message').offsetTop - 100, behavior: 'smooth' });}method="POST" is absentaction="..." is absentThe declaration carries the platform attribute and the cancelling handler, and it carries no method and no action. The hidden field the platform keys on follows it inline. The handler's first statement cancels the submission and its last reveals a screen that was already in the page.
<form name="osb-signup" method="POST" netlify data-netlify="true" hidden>fetch('/', { method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, body: new URLSearchParams({'form-name':'osb-signup','name':n,'email':em}).toString(),}).catch(function(){});One page away, a declaration with a POST method and both platform attributes, and beneath it a hand written post that sends the form name first.
Send constructs counted across the whole application document, every one of them zero: fetch(, XMLHttpRequest, sendBeacon, new FormData, URLSearchParams, requestSubmit, .submit(, action=, method=. The document carries two script tags. The other is nav.js, a menu toggle, an active link class and a scroll reveal, with no submit listener and no reference to any form.
What it costs
The declaration is present, the send is absent, no other script touches the form, and nothing typed into it leaves the browser.
Where the claim stops
The claim is transmission. Whether a form named application is registered on that build is not readable from outside, and this document does not say.
What has to exist
A check rather than a code review: the page source, searched for the word fetch or the word action.
What would kill this finding
The submission counter on the form named application in the Netlify account is the cheapest test in this document, and its asymmetry travels with it. A non zero count kills this finding outright. A zero count proves nothing, because it is equally consistent with nobody having applied and with everybody having applied and nothing arriving. The code proves the mechanism. Nothing available to either side proves the count.
Rank two / The answer the page promises
The reply that cannot be given.
A promise with no other side.
The reply the page promises four times cannot be given, because a person who typed nine answers reads it arrived while nothing they wrote left the browser.
| What the page publishes | What the applicant is shown | What leaves the browser |
|---|---|---|
| A personal read, and a reply if it is a fit, published four times on that page | Three above and around the form, the fourth on the screen the handler reveals, all quoted whole on the slide before this one | Nothing |
| A success screen | Pre rendered in the page, hidden in the page's own style block and flipped to visible by the handler, so a failure and a success look identical | Nothing |
| A record of the submission | Nothing is shown, because nothing is written | Nothing. Zero send constructs in the application document, none in its menu script, and no localStorage, sessionStorage, indexedDB or document.cookie in either file |
This failure mode writes nothing, so it leaves nothing to audit backwards.
What it costs
For any person who submits this form the page's promise cannot be kept, because nothing sits on the other side.
Where the claim stops
It is a property of the route, true at every volume including none. No number of people is counted here and none exists in this evidence base. The absence of records is bounded by the two files this capture reads.
Rank three / The write paths
The four silent write paths.
Four writes with no failure path.
The handlers on four write paths across two builds swallow their own failures and carry on, so a failed capture looks like a success.
| Where the write is | What follows the failure |
|---|---|
| The diagnostic, its first write to the email platform | An empty catch. The run continues. |
| The diagnostic, its second write to the same platform | An empty catch. The run continues. |
| The diagnostic, its third write, back to its own deploy | An empty catch, and the screen advances with no wait on any of the three. |
| The breakdown page, its write to a serverless function | An empty catch, and the result screen renders on the next line regardless. |
One write on this estate posts to a root whose own declaration carries a POST method and both platform attributes. The breakdown page posts by hand to its own root with the form name first, and the comment above it in the source calls that the backup to the platform's own forms. Three of the four paths are written once and served by both builds, so the two stored bodies carry seven write sites between them and every one of the seven closes the same way. It is named beside the table and it is not a fifth row: the column beside it asks what follows a failure, and this one is cited for where it posts.
What it costs
This is four paths rather than one incident. Posting one form closes one hole and leaves the paths that made it.
Where the claim stops
What did or did not arrive on any of the four was not tested, and this document does not say.
The format figure
One format splits the grids.
The format that does not travel.
Video carries the engine verdict on one grid and not on the other, while Sidecar carries it on both grids linked to the intake.
The test A format's own likes median against that account's own likes median, over that account's own scored set. Engine needs a sample of five or more, two posts at or above 2.0x, and a format median at or above that account's own. The verdict and the sample travel on every bar.
Sidecar
Eilidh eilidhsutherland.rfa
1.15x n 112, likes median 54.0, 12 posts at or above 2.0x engine
That account's own likes median, 1.0x
Kristian kristianhill.rfa
1.03x n 145, likes median 40, 18 posts at or above 2.0x engine
That account's own likes median, 1.0x
Image
Eilidh eilidhsutherland.rfa
0.81x n 40, likes median 38.0, 3 posts at or above 2.0x not engine
That account's own likes median, 1.0x
Kristian kristianhill.rfa
0.82x n 32, likes median 32.0, 2 posts at or above 2.0x not engine
That account's own likes median, 1.0x
Video
Eilidh eilidhsutherland.rfa
1.11x n 19, likes median 52, 0 posts at or above 2.0x not engine
That account's own likes median, 1.0x
Kristian kristianhill.rfa
2.0x n 13, likes median 78, 7 posts at or above 2.0x engine
That account's own likes median, 1.0x
Eilidh eilidhsutherland.rfa Kristian kristianhill.rfa
Format likes median as a multiple of that account's own likes median
The scale runs to 2.0x, the largest multiple any of these six rows reaches. It is an axis ceiling read from the data and it is not a target.
The same six rows as a table
| Format | Account | Against own median | Scored posts | Verdict |
|---|---|---|---|---|
| Sidecar | eilidhsutherland.rfa | 1.15x | n 112, likes median 54.0, 12 posts at or above 2.0x | engine |
| Sidecar | kristianhill.rfa | 1.03x | n 145, likes median 40, 18 posts at or above 2.0x | engine |
| Image | eilidhsutherland.rfa | 0.81x | n 40, likes median 38.0, 3 posts at or above 2.0x | not engine |
| Image | kristianhill.rfa | 0.82x | n 32, likes median 32.0, 2 posts at or above 2.0x | not engine |
| Video | eilidhsutherland.rfa | 1.11x | n 19, likes median 52, 0 posts at or above 2.0x | not engine |
| Video | kristianhill.rfa | 2.0x | n 13, likes median 78, 7 posts at or above 2.0x | engine |
The record
Six more measured rows.
The record, not a lever.
Six more measurements, reported symmetrically for both accounts, from the two grids that put the intake behind their first bio link.
| Measured | Eilidh | Kristian |
|---|---|---|
| Posts a month, median, across active months | 10.0 across 16 active months | 12.0 across 18 active months |
| Comments, median | 2 | 1.0 |
| Posts carrying play data | 19 of scored rows, 19 of all rows | 13 of scored rows, 14 of all rows |
| Strongest post against its own median | 20.89x | 16.59x |
| Posts carrying a tag, counted over all rows including pins | 2 posts, 2 tags, over 173 rows | 11 posts, 12 tags, over 193 rows |
| Distinct commenters observed | 137 | 156 |
Each column is read against that account's own scored set, 171 posts on eilidhsutherland.rfa and 190 on kristianhill.rfa. The tag value for eilidhsutherland.rfa is the audited one, after a parse artefact was removed from the field. The commenter counts are floors, bounded by how many comments the scrape returned per post, and 47 of those commenters appear on both accounts.
The naming
Four names for one asset.
One asset under four names.
One intake carries four names across the surfaces leading to it, and the work the site calls the reader's problem is sold under a different name again.
One asset, four names
Read from the funnel, the brand site and both biographies on 11 August 2026.
- On the funnel, and in the site's own Free Diagnostic block
-
The Operating System Breakdown
- The titled bio link, on both profiles
-
Nervous system audit
- In one biography
-
Complete FREE audit
- In the other
-
FREE audit
One kind of work, three vocabularies
Read from the brand site on 11 August 2026.
- The condition, as the site states it. The two sentences are separated in the source and read as one line on the page.
-
You don't have a productivity problem. You have a nervous system problem.
- The method, further down the same page
-
The method sentence carries a dash and is described rather than reproduced. It names identity deconstruction, nervous system regulation and somatic work as three stages working at once.
- The inclusion line that sells that work, inside the RFA PRO block
-
Subconscious pattern rewiring
I want to be world-class in this space of like subconscious rewiring.Kristian Hill, calibration call, 17 August 2026
Said on that call about the same work, reproduced here rather than found here.
What it costs
A reader arriving through one door and buying through another meets a new name at each step.
The move
Two ways to make the send.
The form with a POST method.
The send happens in either of two ways, one smaller and one that keeps more, and the second step is the same.
-
One The change
To stop cancelling the submission and give the form a POST method.
Two edits on the one line the form tag occupies: the onsubmit attribute comes off, the POST method goes on. The hidden form name field is already inline, directly after it on the same line.
-
Two The belt and braces version
To post it by hand the way /osb on the same site already posts to /, which also keeps the screen the applicant reads.
Move one deletes the only code in the document that reveals the success screen, so the applicant stops reading its first line and meets whatever the platform's own confirmation is. That is what the braces are for.
-
Three The second step, either way
To submit one application and confirm it arrives.
Whether the form is registered on that build is not readable from outside, so neither move can be promised to work. This step settles it, and answering what then comes in is an operations commitment rather than a code change.
The form tag and the hidden field are read from the client's own served bytes. What the platform's own handling keys on is knowledge about that platform, and it is labelled here rather than carried under the same heading as a byte.
What we would build
Four builds, in dependency order.
A send that can be watched.
A send that can be watched is the first of four builds.
The second is an intake whose output persists, the third a reading a visitor can check against their own answers, the fourth the diagnostic's own continue control and progress labels.

What we still need
Five answers we do not have.
The five answers still missing.
Four of these five can be answered in a sentence. The first names the reply the page promises.
- One What happens to an application once it arrives, and who answers it against the reply the page already promises.
- Two What the nine day sequence says after capture. No read from outside reaches it.
- Three Whether a form named application exists in the Netlify account. This is the question that can be answered while reading this.
- Four What the discovery call screens for before it starts. The booking page was never captured.
- Five An Instagram Insights export from both accounts.