> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# درجة مخاطر المعاملات: الصيغة والحدود

> كيف يحتسب Didit درجة كل معاملة: مساهمات القواعد والحدود وربط الحالات (APPROVED وIN_REVIEW وDECLINED). 1,000 شهرياً مشمولة، ثم $0.001 لكل عملية.

تحصل كل معاملة على **الدرجة**، وهي عدد صحيح يلخّص مستوى مخاطرها. تحدد الدرجة حالة المعاملة (`APPROVED` أو `IN_REVIEW` أو `DECLINED`)، وتحدد كذلك ما إذا كان سيتم إنشاء تنبيه أو فتح حالة أو طلب معالجة من المستخدم.

## الصيغة

```
score = Σ(score_delta of every matched rule)
```

* الدرجة الأساسية: 0.
* تساهم كل قاعدة مطابقة بقيمة `score_delta` المُعدّة لها (عادةً بين 25 و35).
* المعاملة التي لا تطابق أي قاعدة تحصل على درجة 0.

## الحدود والحالات

تُضبط حدود الدرجات لكل تطبيق في *Transactions → Settings*.

| الإعداد | الافتراضي | المعنى |
| - | - | - |
| `preferred_review_score_threshold` | 75 | الدرجات ≥ هذه القيمة تنتقل إلى `IN_REVIEW` |
| `preferred_decline_score_threshold` | 500 | الدرجات ≥ هذه القيمة تنتقل إلى `DECLINED`. القيمة الافتراضية والقصوى (`500`) تعني "عدم الرفض بناءً على الدرجة"، لذا خفّضها لتبدأ الرفض بناءً على الدرجة. |

تعيين الحالة:

```
if decline_threshold < 500 and score >= decline_threshold: status = DECLINED
else if score >= review_threshold: status = IN_REVIEW
else: status = APPROVED
```

يمكن لإجراءات القواعد الفردية أن تتجاوز ذلك. مثلاً، القاعدة التي تضم `action: change_status → DECLINED` ترفض المعاملة بغض النظر عن الدرجة.

## مثال عملي لمساهمات القواعد

لنفترض أن هذه القواعد تنطبق على معاملة واحدة:

| القاعدة | `score_delta` |
| - | - |
| الصادرة عالية القيمة (>\$10,000) | 30 |
| الطرف المقابل في ولاية قضائية عالية المخاطر | 35 |
| رصد نمط التجزئة | 35 |

إجمالي الدرجة = 30 + 35 + 35 = **100**.

مع حد مراجعة 60 وحد رفض 85، تصبح هذه المعاملة `DECLINED`.
مع الحدود الافتراضية (75 للمراجعة و500 للرفض)، تصبح `IN_REVIEW` لأن الحد الافتراضي لا يرفض أبداً بناءً على الدرجة.

## تجاوزات الإجراءات

يمكن للقواعد أيضاً أن تحدد الحالة مباشرةً، متجاوزةً حدود الدرجات:

| إجراء القاعدة | التأثير |
| - | - |
| `change_status → DECLINED` | رفض المعاملة بغض النظر عن الدرجة |
| `change_status → IN_REVIEW` | إرسال المعاملة إلى المراجعة بغض النظر عن الدرجة |
| `change_status → AWAITING_USER` | انتظار معالجة المستخدم للمعاملة. يُستخدم سير العمل المحدد في إجراء القاعدة. أما قواعد المكتبة فتعود إلى خيارك في الإعدادات، ثم إلى سير عمل المصادقة البيومترية الخاص بك (يتطلب وجهاً مخزناً)، ثم إلى سير العمل الافتراضي لديك |
| `add_score(n)` | يساهم في الدرجة فقط، دون فرض أي حالة |
| `add_tags([...])` | يُضيف وسوماً لتصفيتها في وحدة التحكم، دون تأثير على الدرجة |
| `add_to_list(...)` | يُضيف معرّفاً إلى قائمة الحظر |

يمكن أن تحتوي القاعدة الواحدة على عدة إجراءات، مثلاً: `add_score(35)` + `add_tags(["structuring"])` + `add_note("Auto-tagged by structuring preset")`.

## لماذا تتفوق الدرجات على القواعد الصارمة

يؤدي الحد الصارم («ارفض كل معاملة تتجاوز \$100k») إلى رفض المعاملات المشروعة عالية القيمة والمخاطر الحقيقية معاً. أما الجمع بين عدة قواعد `score_delta` معتدلة وحد مراجعة وحد رفض، فيمنحك:

* **التقييم المتدرج**: لا تؤدي قاعدة واحدة وحدها إلى الرفض، بل يجب أن تتفق إشارات متعددة.
* **حساسية قابلة للضبط**: ارفع الحدود أو اخفضها دون تعديل تعريفات القواعد.
* **ترتيب الخطورة**: المعاملة ذات الدرجة 65 تنتقل إلى المراجعة (تستحق النظر)، بينما الدرجة 90 تؤدي إلى الرفض (خطيرة).

## ضبط الحدود

من *Transactions → Settings*:

* **حد المراجعة**: ارفعه إذا امتلأت قائمة انتظار المراجعة لديك، واخفضه لالتقاط حالات أكثر على الحدود.
* **حد الرفض**: ارفعه لتقليل حالات الرفض الإيجابي الكاذب، واخفضه للميل نحو الحظر الأكثر صرامة. اضبطه على القيمة القصوى (`500`) لتوجيه الدرجات العالية إلى المراجعة بدلاً من الرفض التلقائي.

لا تُطبَّق التغييرات إلا على المعاملات **الجديدة**، أما المعاملات السابقة فتحتفظ بالحالة التي حُددت وقت التقييم.

## وضع الاختبار للقواعد

يمكن تشغيل القواعد في وضع `TEST`:

* تُقيَّم القاعدة على المعاملات، لكنها لا تساهم في الدرجة ولا في الحالة.
* تُنشأ سجلات `TransactionRuleRun` مع `is_test = true`.
* يتيح لك التحقق من مدى انتقائية القاعدة دون المخاطرة برفض حقيقي في بيئة الإنتاج.

انتقل إلى `ACTIVE` عندما تكون راضياً عن الانتقائية.

## الشدة والحقول القديمة

حقل `severity` في Transaction وTransactionAlert قابل للقيمة الفارغة وقديم. لا تعيّنه التقييمات الجديدة للقواعد. استخدم `score` بوصفه إشارة المخاطر الأساسية.

## فحص الدرجات

### عبر API

تتضمن كل استجابة للمعاملة الحقل `score` ومصفوفة `rule_runs[]` تحتوي على إدخال واحد لكل قاعدة مطابقة (راجع [مخطط الاستجابة](https://docs.didit.me/ar/transaction-monitoring/response-schema.md#تشغيلات-القواعد) لكل الحقول):

```json theme={null}
{
  "txn_id": "tx-0002",
  "status": "IN_REVIEW",
  "score": 65,
  "rule_runs": [
    {
      "rule_title": "High-value outbound",
      "matched": true,
      "score_delta": 30,
      "severity": null,
      "status_target": null,
      "action_summary": "score +30"
    },
    {
      "rule_title": "High-risk jurisdiction counterparty",
      "matched": true,
      "score_delta": 35,
      "severity": "HIGH",
      "status_target": "IN_REVIEW",
      "action_summary": "score +35; add_tag:high_risk_country"
    }
  ]
}
```

### في وحدة التحكم

في صفحة تفاصيل المعاملة، تعرض علامة التبويب **الدرجة** تفصيلاً لمساهمة كل قاعدة مطابقة وتعيين الحالة النهائي. مرّر المؤشر فوق شارة الدرجة لرؤية قيم الحدود المستخدمة وقت التقييم.

## الخطوات التالية

> [card] [القواعد](https://docs.didit.me/ar/transaction-monitoring/rules.md)
>
> بنية القاعدة وطريقة تقييمها.

> [card] [التنبيهات](https://docs.didit.me/ar/transaction-monitoring/alerts.md)
>
> ما يحدث عند تفعيل قاعدة.

> [card] [الإعدادات](https://docs.didit.me/ar/transaction-monitoring/settings.md)
>
> ضبط الحدود.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.