# AiRiskMesh Product Demo · Data Format Guide

This guide explains the fields, format requirements, and desensitization rules for the data you upload in the product demo. Demo data is used only for this analysis—please make sure every file is desensitized and contains no production personal information.

## 1. Files

| File | Data kind on the page | Content |
|---|---|---|
| decision_case_import_template.csv | Import Decision Cases | One row per case: strategy decision and the actual (manual) decision, plus intermediate variable context and rule execution results |
| case_label_import_template.csv | Import Case Labels | Disposal labels per case (risk confirmation, review conclusion, etc.) |
| user_label_import_template.csv | Import User Labels | Labels per user subject (risk labels, review labels, etc.) |

The Decision Cases and Case Labels files are joined by `caseRecordId`; the User Labels file identifies a user subject via `identity` + `idType`. You can submit the demo with at least one file, but uploading all three is recommended for a complete analysis.

## 2. How to use the templates

The first few rows of each template CSV are annotations—delete them before importing:

- Row 1: field names (the import header, **keep this row**)
- Row 2: Chinese field descriptions (delete)
- Rows 3–4: requirement notes (delete)
- Row 5 onwards: sample data (delete, replace with your actual data)

## 3. General format requirements

- Format: UTF-8 CSV; the first row is the header, and column names must match the template
- Each file must be under 2GB
- Time format: ISO 8601 (e.g. `2026-07-03T10:30:00`)
- `caseRecordId` is the unique case identifier—globally unique, no duplicates, and joinable across the Decision Cases and Case Labels files
- `sourceType` (data source type): `APPLY` (application) / `TRANSACTION` (transaction)

## 4. Field reference

### decision_case_import_template.csv (Decision Cases)

| Field | Meaning | Requirement |
|---|---|---|
| caseRecordId | Case record ID | Required, globally unique |
| eventTraceId | Event trace ID; unique ID of the request event data | Required |
| businessId | Business order ID related to the request | Optional |
| caseType | Case type | Required, enum: application_fraud / pre_credit_grant / in_event_fraud / in_event_loan / in_event_early_warning / transaction_fraud / aml_strategy / post_loan_collection |
| decisionKey | Strategy key; unique ID of the decision used | Optional |
| decisionVersion | Strategy version | Optional |
| decisionLevel | Decision level | Required, HIGH / MEDIUM / LOW |
| decisionScore | Decision score | Recommended |
| decisionAction | Decision action | Required, BLOCK / REVIEW / ALLOW |
| actualDecisionAction | Actual decision action (manual outcome) | Required, BLOCK / REVIEW / ALLOW |
| actualDecisionLevel | Actual decision level | Required, HIGH / MEDIUM / LOW |
| notes | Notes | Optional |
| decisionTime | Decision time | Required, ISO 8601 |
| eventCode | Event code | Optional |
| caseName | Case name | Optional |
| shareContext | Intermediate variable context | Required, JSON string (e.g. `{"ip":"192.168.1.1","deviceId":"DEV001"}`) |
| results | Rule execution results | Recommended, JSON array (items contain ruleName / ruleCode / variables / output); without it, rule execution matching is unavailable |
| sourceType | Data source type | Optional, APPLY / TRANSACTION |

Note: a JSON field must be wrapped in double quotes as a whole, and inner double quotes must be escaped as two double quotes per the CSV spec (the sample rows in the template show the standard form).

### case_label_import_template.csv (Case Labels)

| Field | Meaning | Requirement |
|---|---|---|
| caseRecordId | Case record ID | Required, globally unique |
| eventTraceId | Event trace ID | Optional |
| labelCode | Label code (e.g. RISK_LABEL / REVIEW_LABEL) | Required |
| labelValue | Label value (e.g. FRAUD_CONFIRMED / NEED_REVIEW) | Required |
| userId | Operator ID | Optional |
| disposalTime | Disposal time | Required, ISO 8601 |
| sourceType | Data source type | Optional, APPLY / TRANSACTION |

### user_label_import_template.csv (User Labels)

| Field | Meaning | Requirement |
|---|---|---|
| identity | User subject identifier | Required; must be a desensitized identifier (hashed or masked), used together with idType |
| idType | Identifier type | Required, e.g. idNumber (ID number) / mobile (phone number) / customer (customer number) / ecif (ECIF customer ID) / accountNo (account number) |
| labelCode | Label code (e.g. RISK_LABEL / REVIEW_LABEL) | Required |
| labelValue | Label value (e.g. FRAUD_CONFIRMED / NEED_REVIEW) | Required |
| labelTime | Labeling time | Required, ISO 8601 |

## 5. Desensitization rules

- No direct personal information: names, ID numbers, phone numbers, bank card numbers, addresses, etc.
- Use desensitized internal IDs for `caseRecordId`, `eventTraceId`, and `businessId`—never raw business IDs that can be traced back to an individual
- In the User Labels file, `identity` must always be a hashed or masked value, even for idNumber or mobile types—never upload plaintext identifiers
- Hash or mask fields such as IPs and device IDs in `shareContext`
- Uploading is taken as confirmation that the data has been desensitized and that you are authorized to use it for this demo analysis

## 6. Analysis results

Once your data and email are submitted, the analysis result (including any failure reasons) is sent to the email you provided—no need to stay on the page. Entering the same access code again shows the progress of your previous task.
