---
title: "tool si.act.decide_brand_design"
description: "the brand, the value's path, the decision (accepted, declined, changed) and, when changed, the tenant's own value, with the reason: the decision as a fact at brand scope: the brand's memory, read by the merge, so a changed value stands as stated by the tenant until the site changes and a declined one is never…"
section: reference
address: /reference/tools/si-act-decide_brand_design
contract: 0476e35e6e275db5
---

# tool si.act.decide_brand_design

the brand, the value's path, the decision (accepted, declined, changed) and, when changed, the tenant's own value, with the reason: the decision as a fact at brand scope: the brand's memory, read by the merge, so a changed value stands as stated by the tenant until the site changes and a declined one is never…

[figure: Over MCP, si.act.decide_brand_design takes DecideBrandDesignInput and returns a card whose body is BrandDecision.]

the decision as a fact at brand scope: the brand's memory, read by the merge, so a changed value stands as stated by the tenant until the site changes and a declined one is never proposed again. The call needs the act grant at the brand rung.



| | |
|---|---|
| input | [DecideBrandDesignInput](/concepts/decidebranddesigninput) |
| result | a card whose body is [BrandDecision](/concepts/branddecision) |
| read-only | no |
| destructive | yes |
| card address | `ui://scale-intelligence/cards/BrandDecision` |
| HTTP route | [`/v1/act/decide_brand_design`](/reference/act/decide_brand_design) |





| field | type | required | note |
|---|---|---|---|
| `brand` | `id` | yes |  |
| `path` | `text` | yes |  |
| `decision` | `one of accepted \| declined \| changed` | yes |  |
| `value` | `json` | no | the tenant's own value, when changed |
| `why` | `text` | no |  |
