Skip to content
HN · hnghia.space

RECORD01/04

ARC, Singapore

Nocturnal

Took a crypto trading terminal from beta to launch on X, and built the attribution stack that showed which channel was actually doing the work.

Role
Marketing Executive
Engagement
Nov 2025 to Jul 2026
Channels
X organic, X Ads, GA4 and UTM attribution

READOUT02/04

Measured outcomes

915,000

organic impressions on X

Earned reach, with no paid support behind it.


 GAINEDX AnalyticsNov 2025 to Jul 2026

900 → 3,500

followers

Where the account stood the day I left. It peaked at 4,800.


 GAINEDX AnalyticsNov 2025 to Jul 2026

5.1%

engagement rate

Across organic posts over the same window.


 MEASUREDX AnalyticsNov 2025 to Jul 2026

SGD 0.039

average cost per click

11.6M impressions from a little over SGD 800 of spend.


 MEASUREDX AdsNov 2025 to Jul 2026

28%

of first-touch new users

Attributed to the blog, which the paid work on X was feeding.


 MEASUREDGA4Nov 2025 to Jul 2026

66%

of losing calls went green first

Median peak of +35% before they gave it back. The leak was exit timing, not entries.


 FLAGGEDSauron call log, n=67Reviewed Jun 2026

GRAPHICS03/04

Data graphics

Followers on XGross follows accumulating from 900.
Nov 2025Jul 2026
  • 4,842gross follows, cumulative
  • 3,500net, on departure

The export records follows and not unfollows, so the decline is not drawn.

 GAINEDX AnalyticsNov 2025 to Jul 2026

ACCOUNT04/04

The situation

ARC is a Singapore collective that builds, incubates and scales its own ventures. Nocturnal is one of them, a crypto trading terminal, and it moved from beta to launch while I owned its growth.

Two things were true on day one. The X account had 900 followers and a launch to make noise about. And nothing downstream of a click was measured, so when traffic did arrive there was no honest way to say which channel had earned it.

I treated the second problem as the first one. Every budget decision after it depended on the answer.

What I did

  • Built the GA4 and UTM attribution stack from scratch, so every post, campaign and partner link resolved to a named source instead of landing in direct traffic.
  • Ran X as the primary organic channel through beta and launch, where a trading audience already reads.
  • Co-planned and launched paid acquisition on X across Southeast Asia on just over SGD 800, kept small while the tracking proved itself.
  • Reported on organic and paid against the same attribution model, so the two were argued about with one set of numbers rather than two.

What changed

The account went from 900 followers to 3,500 by the time I left, having peaked at 4,800. Organic posting earned 915,000 impressions at a 5.1% engagement rate, none of it promoted.

On the paid side, a little over SGD 800 bought 11.6M impressions at an average cost per click of SGD 0.039. Crypto audiences on X are cheap to reach and expensive to convince, so a low CPC is the start of the argument rather than the end of it.

The attribution stack is the part I would point at first. Before it, channel performance was a matter of opinion. After it, it was a report. It showed the blog carrying 28% of first-touch new users, and the paid work on X was a large part of what put people on those pages.

The product finding

Late in the engagement I pulled the call log for Sauron, one of the terminal’s features, and looked only at the calls that lost money. Sixty-six per cent of them had gone green first, with a median peak of +35%. More than half touched +30% before round-tripping all the way down.

That reframes the problem. The entries were not where value was leaking. Exit timing was, and that is a feature to build rather than a message to write. I wrote it up as a product recommendation with the counterfactual attached.

What I would do differently

I built the model around first-touch. For a launch that was the pragmatic choice: it answers what brings people in, and it is the easiest to keep clean.

But a trading terminal is not an impulse purchase. People read for weeks, lurk in a Telegram channel, and come back long after whatever first introduced them. First-touch flatters the loudest channel and writes off everything that did the convincing.

Next time I would stand a position-based model up alongside first-touch from the start, so the gap between the two shows itself early, while there is still budget left to act on what it says.

← All work