Orbit Compatibility Algorithm

Updated Oct 2026

How maths and computer science can estimate compatibility between two humans.

Orbit starts with one simple input: what two people write about themselves.

Instead of asking an LLM to directly decide whether two people are compatible, Orbit turns their text into mathematical representations and compares them.

The algorithm has four main steps:

About text
    ↓
Contextual vectors
    ↓
Semantic matching
    ↓
WFR distance
    ↓
Compatibility score

1. Turn the About text into contextual vectors

Suppose a user writes:

I love building software, hiking, quiet cafes, and spending weekends in the mountains.

We pass the full text through a contextual embedding model. Instead of creating one vector for the entire paragraph, the model produces multiple vectors representing meaningful tokens inside their original context.

Conceptually:

software  → v1
hiking    → v2
quiet     → v3
cafes     → v4
mountains → v5

Each vector is a point in a high-dimensional space:

\[ v_i \in \mathbb{R}^d \]

where \(d\) is the embedding dimension.

The important part is that the entire sentence is processed together first, so the vector for a word depends on the words around it. After encoding, we remove common stop words and other low-value tokens.

So each person becomes a set of contextual vectors:

\[ A = \{a_1, a_2, \dots, a_n\} \] \[ B = \{b_1, b_2, \dots, b_m\} \]

The sizes do not need to match:

\[ n \neq m \]

That matters because one person may write a short About while another may write much more.

2. Find related meanings

To compare two vectors, we can use cosine similarity:

\[ \operatorname{cos}(a,b) = \frac{a \cdot b} {\|a\|\|b\|} \]

A high cosine similarity means the vectors represent similar meaning.

hiking    ↔ trekking      high similarity
software  ↔ programming   high similarity
hiking    ↔ accounting    low similarity

A ColBERT-style comparison looks for the strongest semantic match for each vector. For a vector \(a_i\):

\[ s_i = \max_j \operatorname{cos}(a_i,b_j) \]

This tells us which meanings in one profile are closest to meanings in the other. But MaxSim alone has a problem: several vectors can all point toward the same vector.

mountains ─┐
trekking  ─┼──→ hiking
camping   ─┤
outdoors  ─┘

That can make two profiles look more similar than they really are. So Orbit uses a stronger comparison for the final compatibility calculation.

3. Compare both vector sets using WFR

Orbit uses Wasserstein-Fisher-Rao distance, or WFR.

WFR comes from unbalanced optimal transport. The simplest way to think about it is to imagine that every vector carries a small amount of semantic mass.

WFR tries to align the meaning in one profile with the meaning in the other. Matching similar meanings is cheap. Matching unrelated meanings is expensive. Leaving meaning unmatched also has a cost.

For example:

User A:
hiking
mountains
camping
software

User B:
trekking
programming
coffee

A good alignment may look like:

hiking    → trekking       cheap
software  → programming    cheap
mountains → trekking       somewhat related
camping   → unmatched      penalty
coffee    → unmatched      penalty

The useful part is that WFR does not require both people to have the same number of vectors. It directly compares two differently sized semantic sets.

Conceptually:

\[ D(A,B) = \min_T \left( \text{transport cost} + \text{unmatched mass cost} \right) \]

The better the semantic alignment, the smaller the WFR distance:

\[ D(A,B) \downarrow \quad\Rightarrow\quad \text{compatibility} \uparrow \]

4. Turn distance into compatibility

WFR gives us a distance, but users want a compatibility score. A simple way to convert distance into similarity is:

\[ S(A,B) = e^{-\lambda D(A,B)} \]

where:

Then the user-facing score can be based on:

\[ \text{Compatibility} = 100 \times S(A,B) \]

In practice, the final percentage can be calibrated using real Orbit data so the scale stays meaningful.

Final algorithm

About
  ↓
contextual vectors
  ↓
semantic matching
  ↓
WFR distance
  ↓
similarity
  ↓
compatibility

Orbit is not trying to mathematically prove whether two people will fall in love.

It is trying to answer a smaller question: how closely does the meaning expressed by one person align with the meaning expressed by another?

That turns compatibility matching into a compact combination of embeddings, vector similarity, and optimal transport.