Raw
1 ---
2 title: "ProcureNet Wallet Confidence Score (WCS) Explained"
3 sidebarTitle: "WCS"
4 description: "Learn how ProcureNet scores buyer identity signals to determine session mode, transport, and checkout experience at orchestration time."
5 ---
6
7 The Wallet Confidence Score (WCS) is ProcureNet's buyer identity scoring engine. Every time a session is created, the WCS engine evaluates the signals you supply — such as a customer ID, email address, phone number, or device fingerprint — assigns weighted point values to each, and produces a numeric score. That score determines which orchestration mode the session enters and which real-time transport protocol is used to deliver events. The higher the score, the more ProcureNet knows about the buyer, and the more streamlined the checkout experience becomes.
8
9 ## Scoring Signals
10
11 Each signal you pass in the `hints` object of `POST /api/v7/orchestrate` contributes a fixed number of points toward the total WCS. Signals are additive — providing more signals always raises the score.
12
13 <ParamField body="customerId" type="string">
14 **100 points** — The strongest possible signal. A recognized customer ID confirms a returning buyer with a known purchase history. Supplying this alone is enough to enter resolved mode.
15 </ParamField>
16
17 <ParamField body="email" type="string">
18 **40 points** — A verified email address. Combined with a customer ID, this raises the score to 140 and reinforces identity confidence.
19 </ParamField>
20
21 <ParamField body="phone" type="string">
22 **40 points** — A verified phone number. Carries the same weight as email and can substitute for it when email is unavailable.
23 </ParamField>
24
25 <ParamField body="deviceId" type="string">
26 **20 points** — A device fingerprint or persistent device identifier. Useful for recognizing repeat sessions from the same hardware even without account credentials.
27 </ParamField>
28
29 The maximum possible score is **200 points**, achieved by supplying all four signals.
30
31 ## Score Thresholds and Routing
32
33 ProcureNet maps WCS ranges to orchestration modes and transport protocols. The assignment happens at session creation and is immutable for the lifetime of that session.
34
35 | Score Range | Mode | Transport | Prefill Available |
36 |---|---|---|---|
37 | ≥ 100 | `resolved` | Server-Sent Events (SSE) | Yes |
38 | 40 – 99 | `partial` | WebSocket | No |
39 | < 40 | `anonymous` | WebSocket | No |
40
41 See [Orchestration Modes](/concepts/orchestration-modes) for a full breakdown of what each mode enables.
42
43 ## TypeScript Example
44
45 The `WCSEngine.calculate()` method is called automatically during orchestration, but you can also invoke it directly in your integration code to predict routing before making the API call.
46
47 ```typescript
48 import { WCSEngine } from './scoring/WCSEngine';
49
50 const result = WCSEngine.calculate({
51 customerId: 'cust_123',
52 email: 'user@example.com',
53 phone: null,
54 deviceId: 'dev_456',
55 });
56
57 // result.score → 160
58 // result.mode → 'resolved'
59 // result.transport → 'sse'
60 ```
61
62 In this example, `customerId` contributes 100 pts, `email` adds 40 pts, and `deviceId` adds 20 pts, producing a total of 160 — well above the resolved threshold.
63
64 <Note>
65 You never need to call `WCSEngine.calculate()` yourself in production. ProcureNet computes the WCS automatically when you call `POST /api/v7/orchestrate`. Pass your buyer signals in the `hints` object of the request body, and the response will include `wcs_score`, `mode`, and `transport`.
66 </Note>
67
68 <Tip>
69 Supplying a `customerId` alone guarantees resolved mode. At 100 points, it clears the threshold on its own — no additional signals required.
70 </Tip>