---
title: "ContentAffinity"
description: "what an entity publishes, likes, stars, replies to and follows across every connector, as concept weights with their evidence over a window, kept and re-read on the beat"
section: concepts
address: /concepts/contentaffinity
contract: 0476e35e6e275db5
---

# ContentAffinity

what an entity publishes, likes, stars, replies to and follows across every connector, as concept weights with their evidence over a window, kept and re-read on the beat

[figure: ContentAffinity is a fact at follows scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | fact |
| scope | follows |
| key | the entity and the window |
| store | postgres+lake |
| family | models |



## Fields


| field | type | required | note |
|---|---|---|---|
| `entity` | `id` | yes |  |
| `window` | [Window](/concepts/window) | yes |  |
| `concepts` | [ConceptWeight](/concepts/conceptweight) | yes |  |
| `sources` | `[id]` | yes | the sources read |
| `units` | `count` | yes | the units of the record behind it |
| `basis` | [Basis](/concepts/basis) | yes |  |
| `as_of` | [TwoDates](/concepts/twodates) | yes |  |



## Routes that use it
No route takes or returns ContentAffinity directly. The record holds it, and the objects that point at it reach it.
