A free, vendor-neutral instrument

The Dark Join Diagnostic

A dark join is a relationship that is real and load-bearing in your business, and exists in no schema anywhere in your estate. The relationship isn't in the data — it's in the work, and this measures how much of that work your systems can't see. Not by estimating, but by making you look. One account, thirty artifacts, an afternoon.

Nothing leaves your browser No account needed CC BY 4.0 ~1 afternoon

Why this isn't a slider. Assessments that ask you to guess a percentage produce a number you don't believe. This one asks you to open your own calls, emails, threads and docs and tick what you actually find. Same arithmetic — but the result is evidence you gathered, which is the only kind worth taking into a budget conversation.

Nothing is uploaded · Progress is stored only in this browser · Clear it any time

Before you start

Choosing a sample that tells you something.

01 · The account

Pick one that matters.

A strategic account with a real relationship history — ideally one that has had a renewal, an escalation, or a project inside the last two quarters. A quiet account will under-report, because nothing needed coordinating.

02 · The artifacts

Mix the surfaces deliberately.

Roughly ten calls, ten email threads, five Slack or Teams conversations and five shared docs. Include the non-call surfaces — they're where most people are surprised, and where no vendor has built even the naive integration.

03 · The check

Be strict about what counts as a link.

A mention inside a text field isn't a link. It has to be a relationship something could traverse — a lookup, a related record, a foreign key, an explicit association. If you'd have to read the sentence to know it existed, it doesn't count.

A high rate is normal. Every estate we have seen scores high, including ours.

The instrument

Log each artifact as you read it.

Dark join tally 0 of 30 logged
01 · What kind of artifact is it?
02 · Label it — for your own notes, optional
03 · Does it reference anything outside the record it's filed against?

A ticket number, a Jira key, a contract clause, another document, a different customer, a named competitor, a roadmap commitment, a person outside the account team.

Does it exist as a link?

Your tally is kept in this browser only. Nothing is sent anywhere, and closing the tab won't lose it.

The reference ledger

Nothing logged yet. Every reference you record appears here — with whether the relationship exists anywhere in your systems.

By the end this is a list of named, real, missing edges from your own business. That list is the finding, not the percentage.

Method & limitations

What this measures, and what it doesn't.

The calculation

Unlinked references ÷ total references.

The relationship isn't in the data. It's in the work. This counts how often that is literally true in your estate.

Every outbound reference you record is a relationship someone declared while doing the work. The rate is the share of those that exist nowhere as a traversable link. No weighting, no modelling, no adjustment.

The limitation

Thirty artifacts is not statistically valid.

It's one account, hand-sampled, by someone who knows what the tool is arguing. Treat the number as an order of magnitude, not a measurement. Run it on two more accounts before you quote it to anyone who will push back.

The honest bit

A high rate is not a failure.

Every estate scores high, including ours. It isn't a hygiene problem or an adoption problem — these relationships were never enterable, because no schema had a field for them. The number describes a structural gap, not your team.

This instrument and its method are published under CC BY 4.0 — reuse, adapt and republish with attribution to Noded AI. If you build on it, we'd like to see what you find. The full argument behind it is in Dark Joins: The Relationship Isn't in the Data. It's in the Work..

The full argument

The white paper, if you'd rather forward something.

Dark Joins · 11 pages · PDF

The relationship isn't in the data. It's in the work.

Everything on this page, argued properly and laid out to be read away from a browser — the version that survives being forwarded to the person who wasn't in the meeting.

  • The query you cannot write, and why the key never existed
  • Why MDM, ETL and knowledge graphs structurally can't find dark joins
  • The full ingestion chaining design — rank, decay, intent filter — with its failure modes
  • The build-it-yourself spec, in enough detail to actually cost it
  • The objections, answered mechanically rather than reassuringly

We'll email you the PDF and, occasionally, more on this line of work. Unsubscribe any time. Privacy policy. Prefer not to? Download it without the form →

On its way.

Your download should have started. If it didn't, grab it here — and check your inbox for a copy.

Download the PDF ↓

After the afternoon

You just found those edges by hand.

The relationship isn't in the data. It's in the work.

Noded reads the same action layer across your whole estate and assembles those relationships automatically — the mechanism is called ingestion chaining — from pointers, not copies, with nothing moved and nothing trained on. Bring your ledger to a working session and we'll compare it against what ingestion chaining surfaces on an estate like yours.

45 minutes, technical, no deck. Complex estate? We'll run the project with you →