<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Incognia Research]]></title><description><![CDATA[Incognia Research]]></description><link>https://incognia-research.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>Incognia Research</title><link>https://incognia-research.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 16:59:54 GMT</lastBuildDate><atom:link href="https://incognia-research.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to evaluate device signals before turning them into fraud rules]]></title><description><![CDATA[Disclosure: prepared on behalf of Incognia with AI assistance, using the existing articles linked below. The evaluation plan is a proposed way to apply those articles; it is not a report of a new benc]]></description><link>https://incognia-research.hashnode.dev/how-to-evaluate-device-signals-before-turning-them-into-fraud-rules</link><guid isPermaLink="true">https://incognia-research.hashnode.dev/how-to-evaluate-device-signals-before-turning-them-into-fraud-rules</guid><category><![CDATA[Security]]></category><category><![CDATA[authentication]]></category><dc:creator><![CDATA[André Ferraz]]></dc:creator><pubDate>Tue, 08 Sep 2026 21:25:06 GMT</pubDate><content:encoded><![CDATA[<p>Disclosure: prepared on behalf of Incognia with AI assistance, using the existing articles linked below. The evaluation plan is a proposed way to apply those articles; it is not a report of a new benchmark.</p>
<p>A fraud rule can be correct about an identifier and wrong about the person behind it. If one phone appears under several device IDs, a rule counting distinct devices can overstate the number of devices involved. If several phones share an identifier, the same rule can miss activity.</p>
<p>Before connecting a device signal to a blocking decision, make its behavior measurable.</p>
<h2>1. Separate device changes from identifier changes</h2>
<p>Incognia's <a href="https://www.incognia.com/the-signal-finserv-newsletter/your-signals-might-have-a-quality-problem">May 2026 discussion of signal quality</a> distinguishes a customer changing phones from an existing phone being assigned a new identifier. Both can appear as a new device in downstream systems.</p>
<p>Make those separate cases in your evaluation. Record which physical test device generated each event, the returned identifier, and the relevant software change. Compare an unchanged device, a legitimate replacement device, and a change in browser or app environment. A label such as <code>new_device</code> should have a documented meaning.</p>
<h2>2. Test the assumptions an attacker can change</h2>
<p>The <a href="https://www.incognia.com/blog/device-id-obfuscation">device-obfuscation explainer</a> describes how reinstalls, resets, emulators, and cloned applications can interfere with recognition. An identifier is only useful for repeat-abuse detection if you understand when continuity breaks.</p>
<p>In a controlled environment you own, define the expected result for each relevant scenario before running it. Record both recognition and integrity signals. An unsupported or manipulated environment should be distinguishable from an ordinary customer returning. Do not treat a passed recognition check as proof that every other reported attribute is trustworthy.</p>
<h2>3. Inspect what happens to the account graph</h2>
<p>Incognia's <a href="https://www.incognia.com/blog/incognias-network-graph-persistent-device-id-for-faster-fraud-investigations">network-graph article</a> explains why identifier continuity affects relationships between accounts and devices. When one device fragments into several apparent devices, connected activity can look unrelated.</p>
<p>Test the relationship your rule needs: whether several test accounts on one device stay connected, and whether separate devices stay separate. Inspect the underlying events as well as the visualization. A graph can look convincing while its identity assumptions are wrong.</p>
<h2>4. Measure the intervention, too</h2>
<p>The <a href="https://www.incognia.com/blog/smart-friction-on-fraud-prevention">smart-friction article</a> describes escalating verification according to risk. Detection and intervention therefore need separate evaluation.</p>
<p>For a limited pilot, compare the proposed decision with known test outcomes. Track unnecessary challenges, legitimate completion after a challenge, missed abuse, and review workload. Keep ordinary device upgrades and software changes in the legitimate test set. A stronger-looking rule is not an improvement if it mainly sends returning customers through repeated verification.</p>
<h2>A compact evaluation record</h2>
<table>
<thead>
<tr>
<th>Field</th>
<th>What to record</th>
</tr>
</thead>
<tbody><tr>
<td>Scenario</td>
<td>Ordinary return, legitimate device change, or controlled manipulation</td>
</tr>
<tr>
<td>Ground truth</td>
<td>Which test account and physical device produced the event</td>
</tr>
<tr>
<td>Observation</td>
<td>Identifier, integrity result, and relevant software version</td>
</tr>
<tr>
<td>Proposed decision</td>
<td>Allow, challenge, review, or block</td>
</tr>
<tr>
<td>Outcome</td>
<td>Whether recognition and intervention matched expectations</td>
</tr>
</tbody></table>
<p>Keep the signal version with the results so later changes can be compared. The useful deliverable is evidence about when a signal supports a decision, where it fails, and what the user experiences when it does.</p>
<p>Source author credits: Danny Paulk (device obfuscation and smart friction), Alice Lucena (network graphs), and André Ferraz (signal quality). This article adapts their existing Incognia publications; it does not attribute the new wording or proposed evaluation plan to them.</p>
]]></content:encoded></item></channel></rss>