<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "TrustInsights",
  "identifier" : "/documentation/TrustInsights/InsightEvaluation",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Trust Insights"
    ],
    "preciseIdentifier" : "s:13TrustInsights17InsightEvaluationC"
  },
  "title" : "InsightEvaluation"
}
-->

# InsightEvaluation

The insight result that an evaluation request returns.

```
final class InsightEvaluation<each InsightResult> where repeat each InsightResult : TrustInsight
```

## Discussion

This is the object that [`requestEvaluation(context:)`](/documentation/TrustInsights/InsightEvaluator/requestEvaluation(context:))method returns. It includes the insight result, metadata about the ID and server timestamps you can use to track and match requests, as well as a signed payload which contains additional information about the evaluation.

There are two ways to access the information in the `signedPayload`. The most secure approach is to send the [`signedPayload`](/documentation/TrustInsights/InsightEvaluation/signedPayload) to a server that’s making the access decision where the your service can validate the signature and read the results directly. The alternative, when making and on device decision, is to read from the [`insight`](/documentation/TrustInsights/InsightEvaluation/insight) property and incorporate that summary result into decision logic within your app.

However your decide to process the result, your app needs to call [`reportConsumption(_:insightsUsed:)`](/documentation/TrustInsights/InsightEvaluation/reportConsumption(_:insightsUsed:)) to indicate how the app made use of the insights.

## Topics

### Evaluation properties

[`let additionalInfo: [String : String]`](/documentation/TrustInsights/InsightEvaluation/additionalInfo)

Additional information about the evaluation.

[`let generationTimestamp: Date`](/documentation/TrustInsights/InsightEvaluation/generationTimestamp)

The timestamp that indicates when the framework created the on-device portion of the assessment, in UTC.

[`let insight: (repeat each InsightResult)`](/documentation/TrustInsights/InsightEvaluation/insight)

Result values and errors for the requested insights.

[`var requestID: String?`](/documentation/TrustInsights/InsightEvaluation/requestID)

An app defined identifier.

[`let serverTimestamp: Date`](/documentation/TrustInsights/InsightEvaluation/serverTimestamp)

The server-side timestamp that indicates when the server processed the evaluation, in UTC.

[`let signedPayload: Data`](/documentation/TrustInsights/InsightEvaluation/signedPayload)

A signed data object that contains details about the insight.

### Providing feedback on insights

[`func reportConsumption(InsightEvaluationConsumptionStatus, insightIDsUsed: [String])`](/documentation/TrustInsights/InsightEvaluation/reportConsumption(_:insightIDsUsed:))

Reports the consumption status, and optionally provides one or more associated insight identifiers.

[`func reportConsumption(InsightEvaluationConsumptionStatus, insightsUsed: [any TrustInsight])`](/documentation/TrustInsights/InsightEvaluation/reportConsumption(_:insightsUsed:))

Reports the consumption status, and optionally provide one or more associated insights.

### Instance Properties

[`var eventID: String`](/documentation/TrustInsights/InsightEvaluation/eventID)

Identifier for this evaluation result that can be recorded with other transaction records so that in the event
that fraud or abuse is later discovered associated with the transaction it can be reported to Apple as Offline
feedback via Apple Business Register

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)