I pulled a GA4 segment and found one desktop visitor: thirteen return sessions, seven minutes on /work/, two courses read and several articles worked through. No form submitted. No enquiry sent. The question I’d put to the data was what the Upwork-prospect visitors were doing. The answer: evaluating, returning, evaporating.
The page was doing its job. The page had no till.
Improving on the till-less shop floor diagnosis: the hire strip shipped on July 25th. This is what was built.
The strip
The hire strip closes /work/. It is an ink-inverted panel: the brand palette reversed so the section reads as a zone apart from the project cards above it. A blood left rule marks it as brand space. The same rule appears on the hero and nowhere else on the page. A volt availability pulse (a single animated dot) signals that there is a slot open now. Two lines of copy. One link to /contact/.
Ink inversion is a hard choice. It commits the section to a visual register the rest of the page does not use. Consequence: the strip cannot be mistaken for another project card, another section header, another testimonial block. It reads as “this is different; this is asking you to do something.” That is the only job it needs to do.
The volt pulse is doing something specific. It is not “get in touch.” It is not “I’m available.” It signals current slot availability: not a standing invitation but a specific, time-bound fact. The copy does not need to say this explicitly; the pulse says it visually.
Before July 25th, the page ended after the last project card. A visitor who had assessed the work, formed intent, and scrolled to the bottom found the footer. The footer has links to other pages. It does not convert.
What the data required
Seven minutes is not a browse. Thirteen sessions is not a glance. The visitor who surfaced in the GA4 segment had done the evaluation work. They had returned. They knew what they were looking at. The only thing the page owed them was a place to act on that assessment.
The constraint that follows is narrower than it sounds. It does not require a redesign of /work/. It does not require new project descriptions, social proof, a testimonials section, a rates table, or a booking widget. Those would be additions to the evaluation layer. The evaluation layer was working. What was missing was the action layer.
One component at the bottom of the page that says: if you have read this and you want to engage, here is how. That is the requirement the data specified.
The strip is that component. Nothing else changed on the page.
The four-piece day
The hire strip was the last piece of a funnel sprint. Three other changes landed on the same day, each tracing back to the same question: what happens to intent once the page generates it?
What’s New band on the homepage. The front page had no signal that anything was live or recent. Recent launches (/security/, the hire strip, the timelines fix) were invisible from the homepage. They existed; they were not findable from the front door. The band now sits directly under the hero: blood top, direct links to each launch, no copy explaining what the links are.
/security/ goes public. The security-by-design materials were internal documentation: methodology, artefacts, working patterns. The intent was to surface them as a philosophy: “a discussion topic and way of working in my software architecture.” The page draws directly from the internal materials. It is a position statement, not a marketing page; the design is doing the work of keeping them different.
Timelines note on /contact/. The note read: “I’m not taking on rushed work … two weeks … probably not the right person.” Written as a quality signal. Re-reading through a prospect’s eyes told a different story: it was filtering intent before the enquiry arrived, and the right clients were reading it and raising their threshold for contact. The note now presents the same information as a strength. Constraint unchanged; framing inverted.
All four changes trace to the same source: one visitor, one data set, one question about what the page was doing with the intent it was generating.
The shop floor principle
There is a version of this problem that looks like a copy problem. It is not.
The copy on /work/ was not wrong. The projects were real, the descriptions accurate, the positioning correct. None of that was the failure mode.
The failure mode was the absence of a commercial layer at the end of the page. Every shop floor needs a till. Not as a metaphor about e-commerce, but as a structural requirement for any context where evaluation precedes action. A visitor who has walked the floor, examined the product, and formed intent needs somewhere to take that intent. If the floor ends and the till is not there, they leave.
That is not a UX problem you solve with better copy. You solve it by installing the till.
The thirteen-session visitor had evaluated, returned, and formed intent. The page had no till. The strip is the till.
Out of scope
The enquiry flow on /contact/ was not part of this sprint. The strip directs to /contact/. Whether the contact mechanics convert that traffic is a subsequent question. The volt pulse is static: it reflects genuine current availability, not a live feed from a booking system. Connecting it to a real-time source is a later sprint, contingent on evidence that the strip generates enquiries worth managing.
Analytics on the strip itself sit within what GA4 already tracks for the page. Whether the strip generates click-throughs, whether those convert: the next segment pull will show it.
Where this leaves the funnel
Before July 25th: one known high-intent visitor, no action path, no homepage signal that anything was live, a contact page note that filtered intent before it arrived.
After: the strip closes /work/. The What’s New band signals recency from the front page. The contact page no longer pre-filters. The security position is public.
The funnel has eyes. The till is installed. Whether the thirteen-session visitor comes back and acts is the next data point.



