# Score components in SourceAFIS transparency data

Detailed scoring, a part of algorithm transparency,
is a breakdown of *similarity score* that is computed by SourceAFIS during matching for a pair of fingerprints.
Scoring is done separately for every pairing.
Pairing with the highest total score is selected as the best match.

Key | MIME | Filename in ZIP |
---|---|---|

`score` | `application/cbor` | `047-score.cbor` |

`score` | `application/cbor` | `049-score.cbor` |

... skipped 48 files ... | ||

`score` | `application/cbor` | `147-score.cbor` |

`score` | `application/cbor` | `149-score.cbor` |

## Format

Scoring is recorded as a CBOR-encoded object holding several fields.
Final similarity score is stored in `shapedScore`

field. Other fields describe intermediate scores that contribute to the final score.

`minutiaCount`

- Number of matched minutiae, regardless of correctness of minutia type or accuracy of angles and distances.`minutiaScore`

- Score assigned for`minutiaCount`

.`minutiaFractionInProbe`

- Fraction of probe minutiae that were successfully paired, including approximate matches like in`minutiaCount`

.`minutiaFractionInCandidate`

- Like`minutiaFractionInProbe`

but for candidate minutiae.`minutiaFraction`

- Average of`minutiaFractionInProbe`

and`minutiaFractionInCandidate`

.`minutiaFractionScore`

- Score assigned for`minutiaFraction`

.`supportingEdgeSum`

- Number of supporting edges in the pairing graph.`edgeCount`

- Number of edges in the pairing graph, including supporting edges. This value is actually one higher than that.`edgeScore`

- Score assigned for`edgeCount`

.`supportedMinutiaCount`

- Number of minutiae with at least one supporting edge in addition to edges in the pairing tree.`supportedMinutiaScore`

- Score assigned for`supportedMinutiaCount`

.`minutiaTypeHits`

- Number of matched minutia pairs where probe and candidate minutia have the same type (ending or bifurcation).`minutiaTypeScore`

- Score assigned for`minutiaTypeHits`

.`distanceErrorSum`

- Sum of distance errors, i.e. differences between probe and candidate edge length, for all edges in the pairing tree.`distanceAccuracySum`

- Like`distanceErrorSum`

but zero at maximum tolerated distance error and increasing towards exact match.`distanceAccuracyScore`

- Score derived from`distanceAccuracySum`

and`distanceErrorSum`

.`angleErrorSum`

- Sum of angle errors, i.e. differences between probe and candidate edge angles that are measured between reference/neighbor minutia direction and edge direction, for all edges in the pairing tree.`angleAccuracySum`

- Like`angleErrorSum`

but zero at maximum tolerated angle error and increasing towards exact match.`angleAccuracyScore`

- Score derived from`angleAccuracySum`

and`angleErrorSum`

.`totalScore`

- Total raw score computed by adding together above score components.`shapedScore`

- Final similarity score computed from`totalScore`

with the help of monotonic shaping function constructed in such a way as to make`shapedScore`

approximately correspond to FMR (false match rate) thresholds. Increase in`shapedScore`

by 10 points roughly corresponds to 10x lower FMR.

Example: `047-score.cbor`

```
{
"minutiaCount": 29,
"minutiaScore": 0.928,
"minutiaFractionInProbe": 0.6170212765957447,
"minutiaFractionInCandidate": 0.7435897435897436,
"minutiaFraction": 0.6803055100927442,
"minutiaFractionScore": 6.109143480632843,
"supportingEdgeSum": 270,
"edgeCount": 299,
"edgeScore": 79.235,
"supportedMinutiaCount": 29,
"supportedMinutiaScore": 5.597,
"minutiaTypeHits": 26,
"minutiaTypeScore": 16.354,
"distanceErrorSum": 253,
"distanceAccuracySum": 111,
"distanceAccuracyScore": 3.0189560439560443,
"angleErrorSum": 4.476240332317074,
"angleAccuracySum": 5.297603478851171,
"angleAccuracyScore": 1.5122314200586873,
"totalScore": 112.75433094464756,
"shapedScore": 225.6584429542732
}
```