I maintain this Actor. This is an AI-assisted technical walkthrough checked against the installed source contract.
A frequently observed pair can look impressive simply because both members occur almost everywhere. Before treating co-occurrence as an interesting association, I want the pair count, each member's support, and the union denominator together. A large pair count on its own does not answer that question.
US Brand Signal Co-occurrence Analyzer works on buyer-supplied groups. Each group has a stable ID and a set of opaque signal IDs. There can be one to 100 groups, with one to 30 unique signal IDs in each group. The Actor counts membership in the supplied groups; it does not infer people, organizations, purchases, or identities behind those tokens.
Check a tiny example by hand
The four synthetic groups below contain A/B/C, A/B, A/C, and B/C. Each signal appears in three groups. Every pair appears together in two groups. Pair A/B therefore has support two out of four groups, while its Jaccard overlap is two divided by four: the intersection has two groups and the union contains all four.
That gives a Jaccard value of 0.5. It does not mean a 50 percent chance that A causes B. It describes overlap in these four declared observations. The groups could be documents, analyst-created bundles, or authorized account observations, and changing that unit would change the meaning of the calculation.
Ordering A before B inside a group does not make the pair directional. If order matters, preserve sequences and use a transition calculation instead. If a signal was observed twice in one underlying document, choose whether that document should still contribute one group. The input requires unique signal IDs within each group rather than representing repeated appearances as extra membership.
Use the result to inspect taxonomy
One practical application is reviewing two tags that an upstream classifier assigns to the same documents. Strong overlap can identify a taxonomy question worth investigating. Open a few underlying documents, inspect the annotation instructions, and ask whether the tags encode different concepts. The counting report supplies a reproducible selection aid; it cannot answer the semantic question for you.
Keep a separate ledger mapping group IDs to authorized source records. Opaque IDs make the calculation compact, but they also remove the context a reviewer needs. Avoid putting personal identifiers into a token when an internal reference is sufficient.
Compare pair support alongside Jaccard when reviewing another export. A high overlap from two small supports is a different evidence situation from the same overlap across many observations. The Actor does not provide a population model or significance test. Save the group definition and collection window so a later result can be interpreted against a comparable denominator.
The final review should name the pair, the support counts, the inspected source examples, and the remaining question. That is a useful association review without converting arithmetic into an unsupported claim about intent.
Input and execution boundary
Save this workflow-specific contract example as input.json. This is a synthetic contract example for the workflow described above; it does not assert a real observed business event.
{
"schemaVersion": "1.1",
"groups": [
{
"groupId": "observation-001",
"signalIds": [
"signal-a",
"signal-b",
"signal-c"
]
},
{
"groupId": "observation-002",
"signalIds": [
"signal-a",
"signal-b"
]
},
{
"groupId": "observation-003",
"signalIds": [
"signal-a",
"signal-c"
]
},
{
"groupId": "observation-004",
"signalIds": [
"signal-b",
"signal-c"
]
}
]
}
A deliberate cloud execution can use the following asynchronous request. It creates a new run and may incur charges; this walkthrough did not execute it.
curl --request POST \
'https://api.apify.com/v2/acts/zinin~us-brand-signal-cooccurrence-analyzer/runs?build=0.2.2&timeout=180&maxTotalChargeUsd=0.10' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data-binary @input.json
Save the returned run ID. Check that existing run before retrying after a client timeout, then inspect its terminal status, Dataset, and KVS OUTPUT. A timeout in the caller does not cancel a server run. The charge ceiling bounds the request; it does not guarantee delivery or remove the start event. The build selector pins the observed build number, while the run's actual build ID should be retained for provenance.
Price and reproducibility
On 19 October 2026, the observed FREE-plan rates are $0.005 for the automatic start event and $0.01 per complete delivered report. The platform can count start events according to allocated memory. Other subscription tiers differ. Verify the current Actor page before purchasing a run; optional external services, where enabled, are separate.
This article uses the installed 0.2.2 source contract and saved public input shape, checked on the stated date. The arithmetic examples are explanatory, not fresh cloud acceptance, customer activity, or evidence of revenue. Preserve your input, actual build ID, observation boundary, and terminal receipt when adapting the workflow.
Top comments (0)