---
title: "CalculationShape"
description: "one of the few ways a buyer profile earns value from an offering, as a driver tree over role names that a business model binds to its own drivers: a sales pipeline to a recurring contract; a client won then a retainer over its tenure; a proposal won then a project; a deal then margin on goods; a player or member…"
section: concepts
address: /concepts/calculationshape
contract: 0476e35e6e275db5
---

# CalculationShape

one of the few ways a buyer profile earns value from an offering, as a driver tree over role names that a business model binds to its own drivers: a sales pipeline to a recurring contract; a client won then a retainer over its tenure; a proposal won then a project; a deal then margin on goods; a player or member…

[figure: CalculationShape is a row at platform scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | row |
| scope | platform |
| key | its letter |
| store | postgres |
| family | market |



## Fields


| field | type | required | note |
|---|---|---|---|
| `letter` | `text` | yes | A to F today; a new shape is a new row |
| `name` | `text` | yes |  |
| `what` | `text` | yes | how the buyer earns, in one sentence |
| `tree` | [DriverNode](/concepts/drivernode) | yes | the roots over role names, one per output |
| `roles` | `[text]` | yes | the role names a business model binds to its drivers |
| `outputs` | `[text]` | yes | incremental value, cost, return, payback |



## Routes that use it
No route takes or returns CalculationShape directly. The record holds it, and the objects that point at it reach it.
