SpiderNet is the relationship layer between people and the physical world.
Remember everyone you meet.
- Today
- Your private relationship memory.
- Tomorrow
- The network that connects people across physical spaces.
- Over time
- Relationship intelligence infrastructure.
01The gap
Nobody knows what relationship you actually have.
LinkedIn knows who you are connected to. A CRM knows who you have contacted. Neither knows what relationship you have with someone, or how it has changed since you met.
That is the empty category. Not a better address book: a record of the relationship itself.
A contact is a record. A relationship is a living system.
Events are temporary. Relationships aren’t.
02The unit of data
The unit is the relationship, not the contact. And it decays.
A relationship is a dynamic system. Leave it alone and it fades on its own. We model that literally: the recency of a relationship is e−days / 90, so ninety days without contact leaves about a third of it.
Recency is one of four weighted components. The whole instrument — every weight, every term — is further down this page.
Source:src/lib/intensity.js in this site’s repository, and its twin in the app. Both are checked against the same twelve shared test vectors: if one drifts, a test goes red.
03The sensor
The one input you cannot import.
Contacts, calendars and notes all live in files. They can be exported, bought or rebuilt. Physical proximity cannot: there is no file anywhere that says the two of you stood in the same room on a Tuesday in March.
It only exists if you were there, and only if something was paying attention at the time. Any firm can license a contact database. Nobody can license a room.
In the App Store since May 2026. Open the app at an event and the people around you who are also running it come in on their own, over Bluetooth. No background scanning: iOS and Android do not allow it, and we do not claim it.
04Not stored
When you cross paths with someone, nothing on our server says you did.
This is the counter-intuitive part, and it is exactly what the sensor makes possible. Pairing happens on the phone. The server is told you are visible, and that is all it is told.
- Your identifier
- A random Bluetooth token that rotates every 15 minutes and is not derived from your account.Eight random bytes. Nobody can read another person’s tokens.
- Your presence
- One row per person: visible. It is overwritten, and it deletes itself after 5 minutes.No history. There is no table of who met whom, by design.
- Your location
- Never your coordinates. Your phone computes a 150 × 150 m cell; only that string reaches the server, and it expires after 1 hour.The format is enforced by the database itself: an exact coordinate cannot be stored, even by mistake.
- A meeting
- Exists only if you confirm it. Then it is written with its evidence, so you can always ask where a number came from.The relationship keeps a history. The encounter does not.
- Your address book
- Stays on your phone. Matching uses one-way fingerprints of phone numbers and emails, never the names or numbers themselves.People without an account are never known to the server by name.
012_presence_cell.sql, 20260711_presence_radar.sql) and our privacy policy, which describes exactly this.
05Arithmetic, not AI
Ninety percent of this is arithmetic. Every number can explain itself.
No black box decides anything about your relationships. Each score comes with its components, their weights, their contributions and a sentence of evidence, and the contributions add up to the score exactly, by construction. That is a legal advantage, a cost advantage and, mostly, a credibility advantage.
- IntensityThe four-component formula above.
explainIntensity()returns weight, value, contribution and evidence per component. - TrajectoryLeast-squares fit over the last 90 days. You get a slope and an
R², so “cooling” comes with how sure the fit is. - Cadence anomaliesThe current gap against the mean of past gaps plus two standard deviations. Nothing is flagged with fewer than five meetings.
- BridgesWho connects otherwise separate parts of your network: Brandes betweenness, weighted with degree.
- Relationship stateSix states (growing, healthy, deep, cooling, dormant, reactivating) with hysteresis, so a state does not flicker from one day to the next.
Where a language model is used, it does two jobs and decides nothing: it turns facts we already computed into a sentence, and it turns a voice note into structured facts that are validated against a schema and discarded if they fail. The prompts are four files in version control. No training, no fine-tuning.
The layer that replaces names with placeholders before anything reaches a model is built and tested. Wiring it into every path that talks to a model is still in progress, and we will say so here until it is done.
06The instrument
Model rev 2026-09-03
Nobody publishes how they score a relationship.
We do. It is arithmetic, and every term is above the line.
Intensity · four components
| Component | Weight | Term |
|---|---|---|
| recency | 0.35 | e−days / 90 |
| frequency | 0.25 | min(1, meetings / 8) |
| reciprocity | 0.20 | ½·e−in / 90 + ½·e−out / 90 null — not zero — without a mutual connection |
| depth | 0.20 | min(1, context / 5) |
No number without traceable evidence.
Tap any number and it tells you where it came from.
Without a mutual connection there is nothing to measure, so reciprocity is null. Not zero. The formula renormalises over the weights it can measure and the denominator becomes 0.80. Nobody is scored down for data we have no right to look at.
Source: src/lib/intensity.js. The app carries the same
implementation, checked against twelve shared vectors.
One person’s network · rings are trust grades
mutual connection no mutual connection Illustrative dataset. Not real users.
Breakdown · Mateo no mutual connection
| recency | 0.35 | 34.65 |
| frequency | 0.25 | 7.81 |
| reciprocity | 0.20 | null |
| depth | 0.20 | 10.00 |
| intensity | 52 |
Treated as zero instead of null, this would read 42. That is a ten point accusation about someone who never accepted a connection.
The negative space
Every other system has a record of who connected.
We have a sensor for who was in the same room and didn’t.
That falls out of the sensor. It is not a feature with a button, and nothing in the app surfaces it today. We are saying what the model can see, not selling you a screen.
07The moat
The moat is your judgement, not your data.
Your data will always be yours to take out, in full, on every plan. A one-click export is not shipped yet; today it is an email to support and you get JSON or CSV. We would rather tell you that than round it up.
What cannot be exported is the judgement the system has built from how you corrected it: which relationships you said mattered, which reminders you dismissed, which encounters you confirmed. That is not a file. It cost calendar time, not money, and it is the only lock-in we want.
The longer you use SpiderNet, the better it understands your relationships.
The record is being written now, one room at a time.