Affinity and AI decisions

Decide on what each person is drawn to

How long someone spends on boots against loafers, or on setup against pricing, says more than what they click. UserCurrent keeps it on the profile and lets a slot pick by it, weighed by what each pick is worth, and say why.

One affinity decision, as the decision log explains itExample data

This shopper's vector

This session Over time

Style

boot48%
loafer34%
sneaker18%

Material

suede41%
leather44%

Slot picked_for_you: chance of a sale x margin

  1. Chelsea boot31% x $72 = $22.32
  2. Hiking boot22% x $70 = $15.40
  3. Suede driver19% x $52 = $9.88
  4. Canvas low9% x $22 = $1.98
  • This session, 71% of the style interest is boot
  • Over time, suede is 41% of the material interest

Served with a propensity of 0.62: the share of draws from the model in which it wins, kept in the log for evaluating later models.

What browsing tells you

The signal most sites throw away

A page view says someone arrived. Time spent, and what the thing they spent it on is about, says what they want.

  • How long, not only what

    The web SDK counts the time an item is on screen while the person is active, and a longer look counts for more. A click, an add to cart and a purchase count for more again.

  • Events say what they are about

    A view carries the item's style, material, features or an article's topics as properties. The profile needs no synced catalog, so it works on the first day.

  • This session and who they are

    Each value keeps two scores: one that fades in minutes, for what the person wants now, and one that fades over weeks, for what they keep coming back to.

  • Small and always current

    The vector lives in the profile and is updated in the write the profile already makes, so it adds no rows and no requests. A decision reads it with the rest of the person's history.

Affinity decisions

A slot that picks by expected value

Give a slot candidates with their dimensions and a value. It reads the person's affinities with the rest of their profile, in one read, and serves the candidate with the highest expected value.

  • Weighed by what a success is worth

    Each candidate gets a chance of success from the person's affinities, times its value: margin, order value or lead value. The slot serves the highest.

    Built

  • Sensible on the first visitor

    A starting model treats matching interest as a reason to pick, so the first decision makes sense before any learning. A visitor with no affinities yet gets each candidate's base rate times its value.

    Built

  • Explores a little

    The pick is drawn from the model, so close candidates each get served. The decision log keeps the chance that the served one would be picked, for judging a later model on past traffic.

    Built

  • Says why

    Every decision keeps the profile values it read and how each one moved the pick, so "why did this person see this" has a plain answer.

    Built

  • Respects consent

    Without a profile the person allowed for personalization, the affinity rule is skipped and the slot's fallback is served. Withdrawing consent drops the vector.

    Built

  • Learns each slot's model

    Every few minutes a learner refits each slot's model from the outcomes of decisions people saw, and serves the new model only when a check on past decisions shows it is no worse.

    Built

AI decisions

A model picks, after the first decision

A model can read the same affinities and pick one of the slot's approved candidates, with a reason. It reaches the person in one of two ways, and neither holds up the page.

One response and the next
  1. Request

    The page asks for its slots. The profile answers from the person's affinities and rules, and the first decision goes out at once.

  2. Same response, later AI

    A model reads the same affinities and picks from the slot's approved candidates. If the pick arrives while the slot is not on screen yet, it replaces the first decision. A slot already shown stays as it is.

  3. Next request AI

    A pick the model made in the background was written to the profile, so the next decision serves it with no model call.

  • Only approved candidates

    The model picks among the variants a person published or approved for the slot. It never writes what a visitor sees.

  • The first decision never waits

    A model is never in the path of the first answer. Its pick arrives later on the same response, or is waiting on the profile for the next request.

  • Inside your AI policy

    Calls use the models your project's AI policy allows, within its budget. When a model is unavailable or over budget, the decision the profile already made stands.

Built: AI decision hooks that pick a published variant, given the person's affinities, when they enter a segment or as a later revision on a response that changes only slots not yet shown.

What it is for

Wherever a slot has more than one good answer

The candidates and their value are yours; the dimensions are whatever your events already describe.

  • A shop

    Pick the product, the banner or the category to feature by style, material and fit, weighted by margin.

  • A publisher

    Pick the next article or the newsletter offer by the topics a reader spends time on, not the ones they skim.

  • A software company

    Pick the next page, the demo or the plan to highlight by what a visitor reads: setup, pricing or the product for their team.

  • Lead generation

    Pick the offer worth the most for this person, with the value of a lead as the weight.

In a simulation with synthetic shoppers who browse toward a hidden taste, the affinity vector with no training converted 2.7 times as often as a plain bandit where taste drives the purchase. The numbers are synthetic and show the mechanism, not a forecast.

On this site

This site picks your next step the same way

Every page here is tagged with who it is for and what it is about. The time you spend reading builds a small vector in your browser, and the second button at the bottom of each page is picked from it. Open “Why this button?” to see the reasons. Nothing is sent.

See your vector on the live demo, where a shelf of shoes adds style and material to it.

Put the first affinity slot on your site

Declare the dimensions your events carry and give a slot its candidates and their value.

Why this button?

It is this page's own suggestion for now. As you read, this site keeps a small profile of who each page is for and what it is about, in your browser, and picks this button from it. Nothing is sent.

See your vector on the live demo