> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.middesk.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.middesk.com/_mcp/server.

# Understand risk dimensions

> Understand the business-level risk dimensions on a Middesk risk assessment, including scores, banded levels, and top factors

Dimensions are business-level scored risk analyses inside a risk assessment. Each dimension examines the business through one lens, such as transaction laundering, and carries its own score along with the factors that explain it. Dimensions live in the `dimensions[]` array on the [risk assessment](/business-risk/risk-assessments).

While [identifier assessments](/business-risk/identifier-risk) score individual identifiers like an email address or a phone number, a dimension scores the business as a whole. The `dimensions[]` array grows as Middesk ships new dimensions, so build consumers that tolerate `type` values they don't recognize.

## The dimension object

**`Example risk dimension`**

```json title="Example risk dimension"
{
  "object": "risk_dimension",
  "type": "transaction_laundering",
  "score": 0.82,
  "level": "high",
  "top_factors": [
    { "name": "website_has_no_refund_language", "type": "boolean", "value": true, "contribution": 0.24 },
    { "name": "url_risk_score", "type": "double", "value": 91.0, "contribution": 0.18 },
    { "name": "url_domain_newly_registered", "type": "boolean", "value": true, "contribution": 0.12 },
    { "name": "website_has_privacy_or_tos", "type": "boolean", "value": true, "contribution": -0.07 },
    { "name": "website_num_pages_crawled", "type": "integer", "value": 14, "contribution": -0.03 }
  ]
}
```

| Field                        | Type              | Description                                                                                                                                          |
| ---------------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `object`                     | string            | The object type. Always `risk_dimension`.                                                                                                            |
| `type`                       | string            | The dimension. `transaction_laundering` is available today, and Middesk adds new values as new dimensions ship.                                      |
| `score`                      | number            | A risk score from 0 to 1. Higher scores indicate higher risk.                                                                                        |
| `level`                      | string            | The categorical level banded from `score` through the same thresholds as the assessment's top-level verdict, so the two vocabularies never disagree. |
| `top_factors`                | object\[]         | The factors that contributed most to the score, ordered by the size of their contribution.                                                           |
| `top_factors[].name`         | string            | The factor name, such as `url_risk_score`.                                                                                                           |
| `top_factors[].type`         | string            | The type of `value`. One of `boolean`, `integer`, or `double`.                                                                                       |
| `top_factors[].value`        | boolean or number | The measured value.                                                                                                                                  |
| `top_factors[].contribution` | number            | The signed effect of this factor on the score. Positive contributions raise risk, and negative contributions lower it.                               |

Only measured factors appear in `top_factors[]`. A factor Middesk did not measure on a run is omitted rather than reported with a default, so a `false` value always means the factor was checked and found absent, never that it wasn't computed.

## Transaction laundering

Transaction laundering occurs when a merchant processes payments for undisclosed activity through a seemingly legitimate storefront. The storefront presents an acceptable business while the actual sales, often for prohibited goods or services, run through the same merchant account.

The `transaction_laundering` dimension draws on 20 measured factors spanning website content and policy signals, phone risk, and URL and domain reputation, listed here in order of importance to the model:

| Factor                           | Type    | What it measures                                                                           |
| -------------------------------- | ------- | ------------------------------------------------------------------------------------------ |
| `url_is_web_tracker`             | boolean | The URL was flagged for web tracking.                                                      |
| `website_has_instagram_link`     | boolean | An Instagram link detected on the website.                                                 |
| `website_num_social_links`       | integer | The number of social profile links detected on the website.                                |
| `website_has_no_refund_language` | boolean | No-refund language, such as "no refunds" or "all sales final", detected on the website.    |
| `phones_any_risky`               | boolean | At least one phone number on the business is flagged as risky.                             |
| `phones_any_linetype_unknown`    | boolean | At least one phone number on the business has an unknown line type.                        |
| `website_tech_wix`               | boolean | Wix is among the ecommerce technologies detected on the website.                           |
| `website_tech_cloudflare`        | boolean | Cloudflare appears in the technologies detected on the website.                            |
| `website_has_compliance_links`   | boolean | Compliance-related pages, such as terms or privacy, detected on the website.               |
| `website_num_pages_crawled`      | integer | The number of pages crawled during the website analysis.                                   |
| `phones_avg_risk_score`          | double  | The average risk score across the business's phone numbers.                                |
| `url_risk_score`                 | double  | The URL's overall risk score.                                                              |
| `website_has_privacy_or_tos`     | boolean | A privacy policy or terms of service page detected on the website.                         |
| `url_domain_newly_registered`    | boolean | The website's domain was registered recently.                                              |
| `url_tld_risky`                  | boolean | The domain's top-level domain is high risk.                                                |
| `url_domain_parked`              | boolean | The URL is parked.                                                                         |
| `website_tech_shoplazza`         | boolean | Shoplazza is among the ecommerce technologies detected on the website.                     |
| `website_tech_woocommerce`       | boolean | WooCommerce is among the ecommerce technologies detected on the website.                   |
| `website_has_business_name`      | boolean | A primary business name detected on the website.                                           |
| `website_ecommerce_detected`     | boolean | Ecommerce functionality, such as an add-to-cart or checkout flow, detected on the website. |

Read each factor together with its contribution. In the example above, `website_has_no_refund_language` with a value of `true` and a positive contribution raises the score, while `website_has_privacy_or_tos` with a value of `true` and a negative contribution lowers it.

Transaction laundering is the first production dimension. Future dimensions share the same structure, so an integration that reads `type`, `score`, `level`, and `top_factors[]` handles new dimensions as they ship.

> **Get a demo**
>
> Contact your account manager or [contact sales](https://www.middesk.com/contact-sales) to inquire about access.