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

# Reference

> Tracker types, visibility, scope, and value policy options

## Tracker Types

Each tracker has a **type** that determines how values are entered and displayed.

| Type        | Description                            | Examples                                       |
| ----------- | -------------------------------------- | ---------------------------------------------- |
| **Money**   | Currency amounts                       | ARR, revenue, cash balance, burn rate          |
| **Number**  | Numeric values with optional units     | Headcount, runway (months), NPS score          |
| **Percent** | Percentage values                      | Gross margin, month-over-month growth          |
| **Text**    | Free-form text or multi-line summaries | Investor asks, key risks, quarterly highlights |
| **Boolean** | Yes/no states                          | Profitable?, Series B closed?                  |

***

## Visibility

Visibility controls who on your team can see the tracker and all the values it collects.

**Team**

The tracker is visible to every member of your workspace. This is the default for shared metrics like ARR, headcount, or cash balance that the whole team benefits from seeing.

**Private**

Only you can see this tracker and its values. Use private trackers when you're experimenting with a new metric or tracking something that shouldn't be surfaced team-wide.

***

## Scope

Scope determines which portfolio companies a tracker is active for.

**All Companies**

The tracker applies to every company in your portfolio. Any new companies added are automatically included.

**All Companies with Exclusions**

The tracker applies to all portfolio companies except specific ones you choose to exclude. Useful when you want broad coverage but need to carve out a few companies. For example, if a company uses a different reporting format or you track that metric differently for them.

**Selected Companies**

This tracker applies only to the companies you select. Use it for metrics that matter to a specific segment of your portfolio, such as GMV for marketplaces or clinical milestones for biotech investments. You might even track a KPI specific to a single company.

You can update visibility and scope at any time from the tracker's **Settings** panel. Changes take effect immediately and do not affect historical values already collected.

***

## Value Policy

The **value policy** is an advanced field submitted as a JSON object that controls how values are recorded.

<Tip>
  Value policies are automatically generated when setting up a tracker. This is advanced documentation to customize the suggested behavior.
</Tip>

<Note>
  Value policies only apply to numeric tracker types: **Money**, **Number**, and **Percent**. **Boolean** and **Text** trackers do not use value policies.
</Note>

Numeric trackers in Concrete fall into one of two measurement paradigms. The `kind` field on the value policy selects the paradigm and determines which other fields are available.

***

### Point in Time Value Policy

A snapshot value as of a specific date, for example cash balance as of Dec 31 or runway as of Q3 end. The value doesn't accumulate. It represents what was true at a moment in time.

All fields below are optional. Omit any that don't apply to the tracker.

<ParamField body="kind" type="&#x22;point_in_time&#x22;" required>
  Selects the point-in-time paradigm.
</ParamField>

<ParamField body="observationWindow" type="object | undefined">
  An intrinsic lookback window baked into the metric definition. Use this when the metric is defined by the window it covers, for example Weekly Active Users always looks back 7 days. If omitted, the metric is treated as a pure snapshot with no lookback.

  <Expandable title="properties">
    <ParamField body="allowed" type="Array<{ unit, length }> | null" required>
      The permitted observation windows. Set to `null` to allow any window. Provide an array to restrict to specific options.

      <Expandable title="item properties">
        <ParamField body="unit" type="&#x22;day&#x22; | &#x22;week&#x22; | &#x22;month&#x22; | &#x22;quarter&#x22; | &#x22;year&#x22;" required>
          The time unit of the window.
        </ParamField>

        <ParamField body="length" type="integer">
          The number of units. Must be ≥ 1.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="preferred" type="{ unit, length } | undefined">
      The default window pre-selected in the UI when entering a value. Must be one of the items in `allowed` when `allowed` is an array.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="underlyingCadence" type="object | undefined">
  The period the underlying data came from, even though the metric itself is a snapshot. Use this when the value is derived from a specific period's data. For example, gross margin is a point-in-time snapshot but comes from a quarter's financials.

  <Expandable title="properties">
    <ParamField body="allowed" type="Array<{ unit, length }> | null" required>
      The permitted underlying cadences. Set to `null` to allow any. Provide an array to restrict to specific options.

      <Expandable title="item properties">
        <ParamField body="unit" type="&#x22;month&#x22; | &#x22;quarter&#x22; | &#x22;year&#x22;" required>
          The time unit of the cadence.
        </ParamField>

        <ParamField body="length" type="integer">
          The number of units. Must be ≥ 1.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="preferred" type="{ unit, length } | undefined">
      The default cadence pre-selected in the UI. Must be one of the items in `allowed` when `allowed` is an array.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="denomination" type="object | undefined">
  Applies to run-rate metrics expressed on a per-period basis, for example ARR (annualized) vs MRR (monthly). It sets which denominator is valid when entering a value.

  <Expandable title="properties">
    <ParamField body="allowed" type="Array<&#x22;month&#x22; | &#x22;year&#x22;> | null" required>
      The permitted denominations. Set to `null` to allow any. Provide an array to restrict to specific options.
    </ParamField>

    <ParamField body="preferred" type="&#x22;month&#x22; | &#x22;year&#x22; | undefined">
      The default denomination pre-selected in the UI. Must be one of the items in `allowed` when `allowed` is an array.
    </ParamField>
  </Expandable>
</ParamField>

#### Examples

**No policy**: a simple snapshot like runway with no constraints:

```json theme={null}
{ "kind": "point_in_time" }
```

**Quarterly provenance**: gross margin, derived from quarterly financials:

```json theme={null}
{
  "kind": "point_in_time",
  "underlyingCadence": {
    "allowed": [
      { "unit": "quarter", "length": 1 },
      { "unit": "year", "length": 1 }
    ],
    "preferred": { "unit": "quarter", "length": 1 }
  }
}
```

**ARR**: annualized run-rate revenue, locked to a yearly denomination:

```json theme={null}
{
  "kind": "point_in_time",
  "denomination": {
    "allowed": ["year"]
  }
}
```

***

### Period Total Value Policy

A value that accumulated over a defined time bucket. For example, ARR for Q2 or revenue for FY2025. The value only makes sense in the context of a specific period.

<ParamField body="kind" type="&#x22;period_total&#x22;" required>
  Selects the period-total paradigm.
</ParamField>

<ParamField body="cadence" type="object" required>
  The accumulation bucket that values are reported in. When entering a value, the reporter selects which bucket it belongs to (e.g. Q1 2025 or FY2025).

  <Expandable title="properties">
    <ParamField body="allowed" type="Array<{ unit, length }> | null" required>
      The permitted cadences. Set to `null` to allow any. Provide an array to restrict to specific options.

      <Expandable title="item properties">
        <ParamField body="unit" type="&#x22;month&#x22; | &#x22;quarter&#x22; | &#x22;year&#x22;" required>
          The time unit of the cadence.
        </ParamField>

        <ParamField body="length" type="integer">
          The number of units. Must be ≥ 1.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="preferred" type="{ unit, length } | undefined">
      The default cadence pre-selected in the UI. Must be one of the items in `allowed` when `allowed` is an array.
    </ParamField>
  </Expandable>
</ParamField>

#### Examples

**Quarterly or annual**: revenue tracker defaulting to quarterly:

```json theme={null}
{
  "kind": "period_total",
  "cadence": {
    "allowed": [
      { "unit": "quarter", "length": 1 },
      { "unit": "year", "length": 1 }
    ],
    "preferred": { "unit": "quarter", "length": 1 }
  }
}
```

**Flexible cadence**: any cadence acceptable:

```json theme={null}
{
  "kind": "period_total",
  "cadence": { "allowed": null }
}
```
