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

# Tag reference

> Every term Prophia captures: tag names, the units they carry, space-dependence, and customValue meanings

This page lists all **218 tag definitions** Prophia can capture, grouped by subject. Use it to find the `tagName` behind a term you're looking for, and to know what shape its value will arrive in before you parse it.

For how tags are structured in a response — categories, typed values, schedules, options — read [Tags and tag values](https://docs.prophia.com/api-reference/v2/concepts/tags-and-values.md) first.

## Reading the tables

Every column below is something you can read off a tag in a response — there are no internal registry values here.

| Column | The response field it describes |
| - | - |
| **`tagName`** | The tag's `tagName`. A dotted name (`renewal.rentalRate`) belongs to the option named before the dot. |
| **`displayName`** | The tag's `displayName` — its label in the Prophia app. |
| **`category`** | The tag's `category`: `STANDARD`, `COMPLEX`, or `EXHIBIT`. |
| **Where the data lands** | Which field on the response actually carries the substance — see below. |
| **`value.unit` can be** | The values you can expect in `value.unit`, which is also what decides `value.kind`. *(fixed)* means the term only ever carries that one unit; a dash means no unit applies. |
| **Per-space** | `Yes` when the same `tagName` can appear more than once in a lease's tag list, once per space. See [space-dependent and space-independent tags](https://docs.prophia.com/api-reference/v2/concepts/tags-and-values.md#space-dependent-and-space-independent-tags). |
| **Scope** | Restrictions on which leases or documents the term can appear on at all. |

### Where the data lands

Reading `value` is right for most terms, but not all — for an option it is nearly empty, and for a schedule-bearing term it's a summary. This column tells you where to actually look:

| Entry | What to read |
| - | - |
| `value` | The tag's own `value`. Branch on `value.kind`. |
| `tagComponents` · `RENEWAL` | A `COMPLEX` tag: the substance is in `tagComponents`, and its `kind` is the one named. |
| `schedule` · `RENT` | The term carries a series in `schedule`, of the `kind` named. The schedule is authoritative; `value` is a summary. |
| `customValue`s | Part of the term lives in the positional `customValue1`–`customValue6` fields. |
| → `renewal` component | A component tag, normally **folded into its parent option** — you read it as a field on that option's `tagComponents` rather than as a tag of its own. |

> [!NOTE]
>
> Component tags are listed here because you can still meet them as standalone tags: fetch a document's tags with [`GET .../docs/{leaseDocId}/tags`](https://docs.prophia.com/api-reference/v2/documents/list-tag) and they come back individually, each with its own `category: STANDARD` and its own `value` resolved from the unit it was captured with. It is the consolidated lease view that folds them away.

## Units are the signal, not a separate data type

Internally a tag carries both a data type and a unit, but **the data type is not exposed anywhere in this API** — and it isn't a stable property of the term either. The two are set together per tag instance: picking a unit also sets the data type that goes with it, so a term whose definition defaults to text can be stored as a number the moment someone gives it a numeric unit. There is no useful "this term is always a number" fact to publish, and this reference doesn't try to.

What you observe instead is [`value.kind`](https://docs.prophia.com/api-reference/v2/concepts/tags-and-values#typed-values-branch-on-kind) and `value.unit`. The unit is what decides the kind, by this rule, in order:

| If the value was captured… | `value.kind` |
| - | - |
| as free text | `text` |
| with unit `range of dates` | `dateRange` |
| with any other `range of …` unit | `numberRange` |
| as a date | `date` |
| with a unit starting with `$` | `money` |
| with a unit starting with `%` | `percent` |
| as any other number | `number` |
| otherwise | `text` |

Three consequences worth designing around:

* **A `$` unit is the whole test for money, and a `%` unit the whole test for percent.** Both are prefix tests over the unit string, so `$psf (annual)` is money and `% of FMV` is percent without any per-tag special-casing. Branch on `kind`, never on the tag name.
* **A percentage arrives as the percentage itself**, not a fraction: `3.5` with unit `%` means three and a half percent. Terms that accept both percent and dollar units — `rentBump`, `opexCap` — return `percent` or `money` according to what was captured, so the same `tagName` can hand you either.
* **Free text wins over the unit.** A term stored as text returns `kind: text` even when it carries a percent or dollar unit. Rental rates are the common case: a rate the lease words rather than states — most often fair market value — comes back as `text` with `unit: "FMV"` rather than as a money value with nothing in it, and a rate the lease leaves to the landlord comes back as `text` with `unit: "landlordDefined"`.

The general parsing rule sits underneath all of this: the typed field is populated by parsing `capturedData`, so it is omitted whenever the captured text couldn't be parsed into that kind — a range that wouldn't split leaves `start` and `end` unset, a relative date leaves `value` unset. `capturedData` always holds the raw text and is the fallback.

## Lease type and country scoping

By default a term is available on any lease. Some are restricted, and a restricted term simply never appears on a lease that doesn't qualify:

| Scope | Terms |
| - | - |
| `RETAIL` leases only | Cotenancy (opening and operating), sales statements and kickouts, tenant radius restriction, no-build area, landlord parking space restrictions |
| `GSA_OFFICE` leases only | `tiRent`, `bsacRent`, their interest rates, `fixedParking`, `cpiIncreaseAmount`, `cpiIncreaseDate` |
| Buildings in `IE` / `UK` only | `rentReviewDate`, `typeOfRevisedRent` |
| Rent roll documents | The `rentRollTenant` family |

The tables below flag each of these in the **Scope** column. This is the mechanism behind the warning on [lease type](https://docs.prophia.com/api-reference/v2/concepts/leases.md#lease-type-shapes-what-you-see): change a lease's type and its type-scoped terms stop surfacing.

## `customValue` meanings

Sixteen terms carry data in `customValue1`–`customValue6`. The positional table lives on [Tags and tag values](https://docs.prophia.com/api-reference/v2/concepts/tags-and-values.md#customvalue1-customvalue6-positional-and-tag-dependent); the tables below flag them in the **Where the data lands** column.

The recurring pattern is a **`:-:`-delimited parallel array** — several `customValue` fields each holding one token per period, read together by index. The abatement terms are the clearest case:

```json theme={null}
{
  "tagName": "rentAbatement",
  "capturedData": "3",
  "customValue1": "months:-:months",
  "customValue2": "$:-:%",
  "customValue3": "1-3:-:6",
  "customValue4": "10000:-:50",
  "customValue5": "0:-:0"
}
```

Two periods: months 1–3 abated at \$10,000/month, and month 6 abated at 50%. Split each field on `:-:` and zip by index.

## Terms that break the pattern

A few terms don't behave the way the tables would lead you to expect:

* **`autoRenewal`** groups its component tags by **space** rather than by the `referenceId` every other option chain uses. Its components also remain visible as space-keyed tags in their own right instead of being folded away entirely. If you are walking option chains by `referenceId`, auto-renewal won't be found that way — read the `AUTO_RENEWAL` component off the tag and its per-space effects from `Lease.autoRenewalExpirationDates`.
* **`rentSchedule`, `percentageRent`, and the abatement terms** carry their real payload in a [`schedule`](https://docs.prophia.com/api-reference/v2/concepts/tags-and-values#schedules) or in `customValue` arrays, not in `value`. The tag's own `value` is close to meaningless for them.
* **`suiteNumber`** is a term as well as a field name. As a tag its `capturedData` is a comma-separated list of the spaces named in the document — distinct from `Lease.suiteNumber`, which is the resolved list of space objects the lease occupies.
* **`opexCap`** and `percentageRent` both use `customValue1` as a mode switch that changes how the remaining `customValue` fields should be read. Check it first.
* **`securityDeposit` and `letterOfCreditAmount`** hold the *original* amount in `value` and the amount after the refund schedule in `customValue1`. Whichever you report, be consistent.

## All tag definitions

### Basic Lease Information

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `squareFootage` | Square Footage | STANDARD | `value` | `SF` *(fixed)* | Yes | |
| `suiteNumber` | Suite Number | STANDARD | `value` + `customValue`s | — | Yes | |
| `tenantLegalName` | Tenant Legal Name | STANDARD | `value` | — | No | |

### Lease Term

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `autoRenewal` | Auto Renewal | COMPLEX | `tagComponents` · `AUTO_RENEWAL` | — | Yes | |
| `autoRenewal.advancedNoticePeriod` | Auto Renewal: Advanced Notice Period | STANDARD | → `autoRenewal` component | `days`, `business days`, `weeks`, `months`, `years`, `date`, `range of days`, `range of business days`, `range of weeks`, `range of months`, `range of dates` | Yes | |
| `autoRenewal.autoRenewalPeriods` | Auto Renewal: Number of Additional Periods | STANDARD | → `autoRenewal` component | `period` *(fixed)* | Yes | |
| `autoRenewal.autoRenewalRate` | Auto Renewal: Renewal Rate | STANDARD | → `autoRenewal` component | `$ per month`, `$ per year` | Yes | |
| `autoRenewal.autoRenewalRateBump` | Auto Renewal: Renewal Rate Bump | STANDARD | → `autoRenewal` component | `% per year`, `% per month`, `$ per month`, `$ per year` | Yes | |
| `autoRenewal.autoRenewalTerm` | Auto Renewal: Renewal Term | STANDARD | → `autoRenewal` component | `years`, `months` | Yes | |
| `autoRenewal.rightIsStricken` | Right is Stricken | STANDARD | → `autoRenewal` component | — | Yes | |
| `commenceDate` | Commencement Date | STANDARD | `value` | `date` *(fixed)* | Yes | |
| `effectiveDate` | Effective Date | STANDARD | `value` | `date` *(fixed)* | No | |
| `expectedCommenceDate` | Expected Commencement Date | STANDARD | `value` | `date` *(fixed)* | Yes | |
| `expirationDate` | Expiration Date | STANDARD | `value` | `date` *(fixed)* | Yes | |
| `floatingCommenceDate` | Floating Commencement Date | STANDARD | `value` | — | Yes | |
| `holdover` | Holdover | STANDARD | `value` | — | No | |
| `mtm` | Month-To-Month | STANDARD | `value` | — | Yes | |
| `rentCommenceDate` | Rent Commencement Date | STANDARD | `value` | `date` *(fixed)* | Yes | |
| `supportPartialDays` | Support partial days in month | STANDARD | `value` | — | Yes | |
| `term` | Term | STANDARD | `value` | `months`, `years` | Yes | |
| `yty` | Year-To-Year | STANDARD | `value` | — | Yes | |

### Rent

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `annualRent` | Annual Rent | STANDARD | `value` | `$`, `$psf` | Yes | |
| `deferredRent` | Deferred Rent | STANDARD | `value` | `$`, `$ per month` | Yes | |
| `deferredRentPeriod` | Deferred Rent Period | STANDARD | `value` | `range of dates`, `range of months` | Yes | |
| `grossUp` | Gross Up | STANDARD | `value` | `%` *(fixed)* | No | |
| `monthlyRent` | Monthly Rent | STANDARD | `value` | `$`, `$psf` | Yes | |
| `opexPrs` | Opex Pro-Rata Share | STANDARD | `value` | `%` *(fixed)* | Yes | |
| `percentageRent` | Percentage Rent | STANDARD | `value` + `schedule` · `PERCENT_RENT` + `customValue`s | — | Yes | |
| `prepaidRent` | Prepaid Rent | STANDARD | `value` + `customValue`s | `$` *(fixed)* | Yes | |
| `prepaidRentPeriod` | Prepaid Rent Period | STANDARD | `value` | `range of dates`, `range of months` | Yes | |
| `prs` | Pro-Rata Share | STANDARD | `value` | `%` *(fixed)* | Yes | |
| `rentBump` | Rent Bump | STANDARD | `value` | `% increase (annual)`, `$ increase (annual)`, `% increase $psf (annual)`, `$psf increase (annual)` | Yes | |
| `rentBumpIndex` | Rent Bump : Index | STANDARD | `value` | — | Yes | |
| `rentReviewDate` | Rent Review | STANDARD | `value` | `date` *(fixed)* | Yes | `IE` / `UK` only |
| `rentSchedule` | Rent Schedule | STANDARD | `value` + `schedule` · `RENT` + `customValue`s | — | Yes | |
| `taxPrs` | Tax Pro-Rata Share | STANDARD | `value` | `%` *(fixed)* | Yes | |
| `typeOfRevisedRent` | Type of Revised Rent | STANDARD | `value` | — | Yes | `IE` / `UK` only |

### Abatements & Concessions

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `concessionOther` | Other Concession | STANDARD | `value` | `$`, `$psf` | Yes | |
| `opexAbatement` | Opex Abatement | STANDARD | `value` + `schedule` · `ABATEMENT` + `customValue`s | — | Yes | |
| `rentAbatement` | Rent Abatement | STANDARD | `value` + `schedule` · `ABATEMENT` + `customValue`s | — | Yes | |
| `taxAbatement` | Tax Abatement | STANDARD | `value` + `schedule` · `ABATEMENT` + `customValue`s | — | Yes | |
| `tenantImprovement` | Tenant Improvement | COMPLEX | `tagComponents` · `TENANT_IMPROVEMENT` | — | Yes | |
| `tenantImprovement.rightIsStricken` | Right is Stricken | STANDARD | → `tenantImprovement` component | — | Yes | |
| `tenantImprovement.tiAmount` | TI Amount | STANDARD | → `tenantImprovement` component | `$`, `$psf`, `$ per year` | Yes | |
| `tenantImprovement.tiRemaining` | Tenant Improvement Remaining | STANDARD | → `tenantImprovement` component | — | Yes | |
| `tenantImprovement.tiSunset` | TI Sunset | STANDARD | → `tenantImprovement` component | `months`, `years`, `days`, `date` | Yes | |

### Operating Expenses & Taxes

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `baseOperatingYear` | Base Operating Year | STANDARD | `value` | `year`, `range of dates` | Yes | |
| `baseOpexYearStop` | Base Opex Year Stop | STANDARD | `value` | `$`, `$psf` | Yes | |
| `baseTaxYear` | Base Tax Year | STANDARD | `value` | `year`, `range of dates` | Yes | |
| `baseTaxYearStop` | Base Tax Year Stop | STANDARD | `value` | `$`, `$psf` | Yes | |
| `baseYear` | Base Year | STANDARD | `value` | `year`, `range of dates` | Yes | |
| `baseYearStop` | Base Year Stop | STANDARD | `value` | `$`, `$psf` | Yes | |
| `expenseAccounts` | Expanse Accounts | STANDARD | `value` | — | No | |
| `opexCap` | Opex Cap | STANDARD | `value` + `customValue`s | `$ per year`, `% per year`, `$psf (annual)` | Yes | |
| `taxAccounts` | Tax Accounts | STANDARD | `value` | — | No | |

### Security & Financial

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `guarantor` | Guarantor | STANDARD | `value` | — | No | |
| `lateFee` | Late Fee | STANDARD | `value` | — | No | |
| `letterOfCreditAmount` | Letter of Credit: Amount | STANDARD | `value` + `customValue`s | `$` *(fixed)* | Yes | |
| `letterOfCreditInstitution` | Letter of Credit: Institution | STANDARD | `value` | — | No | |
| `letterOfCreditRefundSchedule` | Letter of Credit Refund Schedule | STANDARD | `value` + `schedule` · `REFUND` + `customValue`s | — | Yes | |
| `purchaseOffer` | Purchase Offer | COMPLEX | `tagComponents` · `PURCHASE` | — | No | |
| `purchaseOffer.rightIsDeclined` | Right is Declined | STANDARD | → `purchaseOffer` component | — | No | |
| `purchaseOffer.rightIsExercised` | Right is Exercised | STANDARD | → `purchaseOffer` component | — | No | |
| `purchaseOffer.rightIsStricken` | Right is Stricken | STANDARD | → `purchaseOffer` component | — | No | |
| `securityDeposit` | Security Deposit | STANDARD | `value` + `customValue`s | `$` *(fixed)* | Yes | |
| `securityDepositRefundSchedule` | Security Deposit Refund Schedule | STANDARD | `value` + `schedule` · `REFUND` + `customValue`s | — | Yes | |

### Fees

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `fee` | Fee | COMPLEX | `tagComponents` · `FEE` + `schedule` · `FEE` + `customValue`s | — | Yes | |
| `fee.feeAmount` | Fee Amount | STANDARD | → `fee` component | `$ per month`, `$ per year`, `$`, `$psf`, `$psf (annual)`, `$psf (monthly)` | Yes | |
| `fee.feeIncrease` | Fee Increase | STANDARD | → `fee` component | `$`, `%` | Yes | |
| `fee.feeTerm` | Fee Term | STANDARD | → `fee` component | `range of months`, `range of dates` | Yes | |
| `fee.rightIsStricken` | Right is Stricken | STANDARD | → `fee` component | — | Yes | |

### Rights & Options

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `contractionRight` | Contraction Right | COMPLEX | `tagComponents` · `CONTRACTION` | — | Yes | |
| `contractionRight.advancedNoticePeriod` | Contraction Right | STANDARD | → `contractionRight` component | `days`, `business days`, `weeks`, `months`, `years`, `date`, `range of days`, `range of business days`, `range of weeks`, `range of months`, `range of dates` | Yes | |
| `contractionRight.contractionFee` | Contraction Fee | STANDARD | → `contractionRight` component | `$` *(fixed)* | Yes | |
| `contractionRight.contractionSpace` | Contraction Space | STANDARD | → `contractionRight` component | — | Yes | |
| `contractionRight.earlyMoveOutDate` | Early Move Out Date | STANDARD | → `contractionRight` component | `date`, `months`, `days`, `business days`, `weeks`, `years` | Yes | |
| `contractionRight.effectiveDateOfRight` | Effective Date of Right | STANDARD | → `contractionRight` component | `date`, `range of dates`, `months`, `days`, `business days`, `weeks`, `years` | Yes | |
| `contractionRight.optionEndDate` | Move Out Date | STANDARD | → `contractionRight` component | `date`, `months`, `days`, `business days`, `weeks`, `years`, `range of dates` | Yes | |
| `contractionRight.rightIsDeclined` | Right is Declined | STANDARD | → `contractionRight` component | — | Yes | |
| `contractionRight.rightIsExercised` | Right is Exercised | STANDARD | → `contractionRight` component | — | Yes | |
| `contractionRight.rightIsStricken` | Right is Stricken | STANDARD | → `contractionRight` component | — | Yes | |
| `earlyTermination` | Early Termination | COMPLEX | `tagComponents` · `EARLY_TERMINATION` | — | Yes | |
| `earlyTermination.advancedNoticePeriod` | Advanced Notice Periods | STANDARD | → `earlyTermination` component | `days`, `business days`, `weeks`, `months`, `years`, `date`, `range of days`, `range of business days`, `range of weeks`, `range of months`, `range of dates` | Yes | |
| `earlyTermination.earlyMoveOutDate` | Early Move Out Date | STANDARD | → `earlyTermination` component | `date`, `months`, `days`, `business days`, `weeks`, `years` | Yes | |
| `earlyTermination.effectiveDateOfRight` | Effective Date of Right | STANDARD | → `earlyTermination` component | `date`, `range of dates`, `months`, `days`, `business days`, `weeks`, `years` | Yes | |
| `earlyTermination.optionEndDate` | Move Out Date | STANDARD | → `earlyTermination` component | `date`, `months`, `days`, `business days`, `weeks`, `years`, `range of dates` | Yes | |
| `earlyTermination.rightIsDeclined` | Right is Declined | STANDARD | → `earlyTermination` component | — | Yes | |
| `earlyTermination.rightIsExercised` | Right is Exercised | STANDARD | → `earlyTermination` component | — | Yes | |
| `earlyTermination.rightIsStricken` | Right is Stricken | STANDARD | → `earlyTermination` component | — | Yes | |
| `earlyTermination.terminationFee` | Termination Fee | STANDARD | → `earlyTermination` component | `$` *(fixed)* | Yes | |
| `exclusiveUse` | Exclusive Use | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `exclusiveUse.clause` | Clause | STANDARD | → `exclusiveUse` component | — | No | |
| `exclusiveUse.rightIsStricken` | Right is Stricken | STANDARD | → `exclusiveUse` component | — | No | |
| `expansion` | Expansion | COMPLEX | `tagComponents` · `EXPANSION` | — | No | |
| `expansion.advancedNoticePeriod` | Advanced Notice Period | STANDARD | → `expansion` component | `days`, `business days`, `weeks`, `months`, `years`, `date`, `range of days`, `range of business days`, `range of weeks`, `range of months`, `range of dates` | No | |
| `expansion.expansionSpace` | Expansion Space | STANDARD | → `expansion` component | — | No | |
| `expansion.expirationDate` | Expansion Expiration Date | STANDARD | → `expansion` component | `date`, `weeks`, `months`, `years` | No | |
| `expansion.rentalRate` | Rental Rate | STANDARD | → `expansion` component | `$`, `$ per month`, `$ per year`, `$psf (annual)`, `$psf`, `% of FMV`, `FMV`, `landlordDefined` | No | |
| `expansion.rightIsDeclined` | Right is Declined | STANDARD | → `expansion` component | — | No | |
| `expansion.rightIsExercised` | Right is Exercised | STANDARD | → `expansion` component | — | No | |
| `expansion.rightIsStricken` | Right is Stricken | STANDARD | → `expansion` component | — | No | |
| `goDark` | Go Dark | STANDARD | `value` | — | No | |
| `landlordParkingSpaceRestrictions` | Landlord Parking Space Restrictions | COMPLEX | `tagComponents` · `OTHER` | — | No | `RETAIL` only |
| `landlordParkingSpaceRestrictions.clause` | Clause | STANDARD | → `landlordParkingSpaceRestrictions` component | — | No | `RETAIL` only |
| `landlordParkingSpaceRestrictions.rightIsDeclined` | Right is Declined | STANDARD | → `landlordParkingSpaceRestrictions` component | — | No | `RETAIL` only |
| `landlordParkingSpaceRestrictions.rightIsExercised` | Right is Exercised | STANDARD | → `landlordParkingSpaceRestrictions` component | — | No | `RETAIL` only |
| `landlordParkingSpaceRestrictions.rightIsStricken` | Right is Stricken | STANDARD | → `landlordParkingSpaceRestrictions` component | — | No | `RETAIL` only |
| `llKickout` | LL - Kickout | COMPLEX | `tagComponents` · `OTHER` | — | Yes | |
| `llKickout.rightIsExercised` | Right is Exercised | STANDARD | → `llKickout` component | — | Yes | |
| `llKickout.rightIsStricken` | Right is Stricken | STANDARD | → `llKickout` component | — | Yes | |
| `llRelocation` | LL - Relocation | COMPLEX | `tagComponents` · `OTHER` | — | Yes | |
| `llRelocation.rightIsExercised` | Right is Exercised | STANDARD | → `llRelocation` component | — | Yes | |
| `llRelocation.rightIsStricken` | Right is Stricken | STANDARD | → `llRelocation` component | — | Yes | |
| `naming` | Naming | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `naming.rightIsStricken` | Right is Stricken | STANDARD | → `naming` component | — | No | |
| `parking` | Parking | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `parking.clause` | Clause | STANDARD | → `parking` component | — | No | |
| `parking.rightIsStricken` | Right is Stricken | STANDARD | → `parking` component | — | No | |
| `renewal` | Renewal | COMPLEX | `tagComponents` · `RENEWAL` | — | Yes | |
| `renewal.advancedNoticePeriod` | Advanced Notice Period | STANDARD | → `renewal` component | `days`, `business days`, `weeks`, `months`, `years`, `date`, `range of days`, `range of business days`, `range of weeks`, `range of months`, `range of dates` | Yes | |
| `renewal.numberOfAdditionalPeriods` | # of Additional Periods | STANDARD | → `renewal` component | `period` *(fixed)* | Yes | |
| `renewal.renewalPeriodTerm` | Renewal Period Term | STANDARD | → `renewal` component | `years`, `months`, `weeks` | Yes | |
| `renewal.rentalRate` | Rental Rate | STANDARD | → `renewal` component | `$`, `$ per month`, `$ per year`, `$psf (annual)`, `$psf`, `% of FMV`, `FMV`, `landlordDefined` | Yes | |
| `renewal.rightIsDeclined` | Right is Declined | STANDARD | → `renewal` component | — | Yes | |
| `renewal.rightIsExercised` | Right is Exercised | STANDARD | → `renewal` component | — | Yes | |
| `renewal.rightIsStricken` | Right is Stricken | STANDARD | → `renewal` component | — | Yes | |
| `rightOfFirstOffer` | Right of First Offer | COMPLEX | `tagComponents` · `RIGHT_OF_FIRST_OFFER` | — | No | |
| `rightOfFirstOffer.acceptancePeriod` | Acceptance Period | STANDARD | → `rightOfFirstOffer` component | `days`, `business days`, `weeks`, `months` | No | |
| `rightOfFirstOffer.expirationDateOfRight` | Expiration Date of Right | STANDARD | → `rightOfFirstOffer` component | `date`, `years`, `months` | No | |
| `rightOfFirstOffer.offeredSpace` | Offered Space | STANDARD | → `rightOfFirstOffer` component | — | No | |
| `rightOfFirstOffer.oneTimeOrOngoing` | One time or Ongoing | STANDARD | → `rightOfFirstOffer` component | — | No | |
| `rightOfFirstOffer.rentalRate` | Rental Rate | STANDARD | → `rightOfFirstOffer` component | `$`, `$ per month`, `$ per year`, `$psf (annual)`, `$psf`, `% of FMV`, `FMV`, `landlordDefined` | No | |
| `rightOfFirstOffer.rightIsDeclined` | Right is Declined | STANDARD | → `rightOfFirstOffer` component | — | No | |
| `rightOfFirstOffer.rightIsExercised` | Right is Exercised | STANDARD | → `rightOfFirstOffer` component | — | No | |
| `rightOfFirstOffer.rightIsStricken` | Right is Stricken | STANDARD | → `rightOfFirstOffer` component | — | No | |
| `rightOfFirstRefusal` | Right of First Refusal | COMPLEX | `tagComponents` · `RIGHT_OF_FIRST_REFUSAL` | — | No | |
| `rightOfFirstRefusal.acceptancePeriod` | Acceptance Period | STANDARD | → `rightOfFirstRefusal` component | `days`, `business days`, `weeks`, `months` | No | |
| `rightOfFirstRefusal.expirationDateOfRight` | Expiration Date of Right | STANDARD | → `rightOfFirstRefusal` component | `date`, `years`, `months` | No | |
| `rightOfFirstRefusal.oneTimeOrOngoing` | One time or Ongoing | STANDARD | → `rightOfFirstRefusal` component | — | No | |
| `rightOfFirstRefusal.refusalSpace` | Refusal Space | STANDARD | → `rightOfFirstRefusal` component | — | No | |
| `rightOfFirstRefusal.rentalRate` | Rental Rate | STANDARD | → `rightOfFirstRefusal` component | `$`, `$ per month`, `$ per year`, `$psf (annual)`, `$psf`, `% of FMV`, `FMV`, `landlordDefined` | No | |
| `rightOfFirstRefusal.rightIsDeclined` | Right is Declined | STANDARD | → `rightOfFirstRefusal` component | — | No | |
| `rightOfFirstRefusal.rightIsExercised` | Right is Exercised | STANDARD | → `rightOfFirstRefusal` component | — | No | |
| `rightOfFirstRefusal.rightIsStricken` | Right is Stricken | STANDARD | → `rightOfFirstRefusal` component | — | No | |
| `salesKickout` | Sales Kickout (Landlord Option) | COMPLEX | `tagComponents` · `OTHER` | — | Yes | `RETAIL` only |
| `salesKickout.clause` | Clause | STANDARD | → `salesKickout` component | — | Yes | `RETAIL` only |
| `salesKickout.rightIsExercised` | Right is Exercised | STANDARD | → `salesKickout` component | — | Yes | `RETAIL` only |
| `salesKickout.rightIsStricken` | Right is Stricken | STANDARD | → `salesKickout` component | — | Yes | `RETAIL` only |
| `salesKickoutTenant` | Sales Kickout (Tenant Option) | COMPLEX | `tagComponents` · `OTHER` | — | Yes | `RETAIL` only |
| `salesKickoutTenant.clause` | Clause | STANDARD | → `salesKickoutTenant` component | — | Yes | `RETAIL` only |
| `salesKickoutTenant.rightIsExercised` | Right is Exercised | STANDARD | → `salesKickoutTenant` component | — | Yes | `RETAIL` only |
| `salesKickoutTenant.rightIsStricken` | Right is Stricken | STANDARD | → `salesKickoutTenant` component | — | Yes | `RETAIL` only |
| `signage` | Signage | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `signage.clause` | Clause | STANDARD | → `signage` component | — | No | |
| `signage.rightIsStricken` | Right is Stricken | STANDARD | → `signage` component | — | No | |
| `sublet` | Right to Sublet | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `sublet.clause` | Clause | STANDARD | → `sublet` component | — | No | |
| `sublet.rightIsDeclined` | Right Is Declined | STANDARD | → `sublet` component | — | No | |
| `sublet.rightIsStricken` | Right Is Stricken | STANDARD | → `sublet` component | — | No | |
| `telecomAntenna` | Telecom/Antenna | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `telecomAntenna.clause` | Clause | STANDARD | → `telecomAntenna` component | — | No | |
| `telecomAntenna.rightIsDeclined` | Right is Declined | STANDARD | → `telecomAntenna` component | — | No | |
| `telecomAntenna.rightIsStricken` | Right is Stricken | STANDARD | → `telecomAntenna` component | — | No | |

### Amenity Usage

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `conferenceRoomUsage` | Conference Room Usage | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `conferenceRoomUsage.rightIsStricken` | Right is Stricken | STANDARD | → `conferenceRoomUsage` component | — | No | |
| `fitnessCenterUsage` | Fitnesss Center Usage | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `fitnessCenterUsage.rightIsStricken` | Right is Stricken | STANDARD | → `fitnessCenterUsage` component | — | No | |
| `loungeUsage` | Lounge Usage | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `loungeUsage.rightIsStricken` | Right is Stricken | STANDARD | → `loungeUsage` component | — | No | |
| `petAllowance` | Pet Allowance | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `petAllowance.rightIsStricken` | Right is Stricken | STANDARD | → `petAllowance` component | — | No | |
| `storageUsage` | Storage Usage | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `storageUsage.rightIsStricken` | Right is Stricken | STANDARD | → `storageUsage` component | — | No | |

### Sales Reporting

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `annualSalesStatement` | Annual Sales Statement | STANDARD | `value` | `days` *(fixed)* | No | `RETAIL` only |
| `monthlySalesStatement` | Monthly Sales Statement | STANDARD | `value` | `days` *(fixed)* | No | `RETAIL` only |
| `openingCotenancy` | opening Co-tenancy | COMPLEX | `tagComponents` · `OTHER` | — | No | `RETAIL` only |
| `openingCotenancy.clause` | Clause | STANDARD | → `openingCotenancy` component | — | No | `RETAIL` only |
| `openingCotenancy.rightIsDeclined` | Right is Declined | STANDARD | → `openingCotenancy` component | — | No | `RETAIL` only |
| `openingCotenancy.rightIsExercised` | Right is Exercised | STANDARD | → `openingCotenancy` component | — | No | `RETAIL` only |
| `openingCotenancy.rightIsStricken` | Right is Stricken | STANDARD | → `openingCotenancy` component | — | No | `RETAIL` only |
| `operatingCotenancy` | Operating Co-tenancy | COMPLEX | `tagComponents` · `OTHER` | — | No | `RETAIL` only |
| `operatingCotenancy.clause` | Clause | STANDARD | → `operatingCotenancy` component | — | No | `RETAIL` only |
| `operatingCotenancy.rightIsDeclined` | Right is Declined | STANDARD | → `operatingCotenancy` component | — | No | `RETAIL` only |
| `operatingCotenancy.rightIsExercised` | Right is Exercised | STANDARD | → `operatingCotenancy` component | — | No | `RETAIL` only |
| `operatingCotenancy.rightIsStricken` | Right is Stricken | STANDARD | → `operatingCotenancy` component | — | No | `RETAIL` only |
| `quarterlySalesStatement` | Quarterly Sales Statement | STANDARD | `value` | `days` *(fixed)* | No | `RETAIL` only |

### GSA-Specific Tags

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `bsacRent` | BSAC Rent | STANDARD | `value` + `customValue`s | `$ per year`, `$psf (annual)` | Yes | `GSA_OFFICE` only |
| `bsacRentInterestRate` | BSAC Rent Interest Rate | STANDARD | `value` | — | Yes | `GSA_OFFICE` only |
| `cpiIncreaseAmount` | CPI Increase Amount | STANDARD | `value` | `$` *(fixed)* | Yes | `GSA_OFFICE` only |
| `cpiIncreaseDate` | CPI Increase Date | STANDARD | `value` | `date` *(fixed)* | Yes | `GSA_OFFICE` only |
| `fixedOpex` | Fixed Opex | STANDARD | `value` | `$ per year`, `$ per month`, `$psf (annual)` | Yes | |
| `fixedParking` | Fixed Parking | STANDARD | `value` | `$ per year`, `$ per month`, `$psf (annual)` | Yes | `GSA_OFFICE` only |
| `fixedRETaxes` | Fixed Real Estate Taxes | STANDARD | `value` | `$ per year`, `$ per month`, `$psf (annual)` | Yes | |
| `tiRent` | TI Rent | STANDARD | `value` + `customValue`s | `$ per year`, `$psf (annual)` | Yes | `GSA_OFFICE` only |
| `tiRentInterestRate` | TI Rent Interest Rate | STANDARD | `value` | — | Yes | `GSA_OFFICE` only |

### Other

| `tagName` | `displayName` | `category` | Where the data lands | `value.unit` can be | Per‑space | Scope |
| - | - | - | - | - | - | - |
| `estoppel` | Estoppel | STANDARD | `value` | — | No | |
| `exhibit` | Exhibit | EXHIBIT | `value` | — | No | |
| `noBuildArea` | No Build Area | COMPLEX | `tagComponents` · `OTHER` | — | No | `RETAIL` only |
| `noBuildArea.clause` | Clause | STANDARD | → `noBuildArea` component | — | No | `RETAIL` only |
| `noBuildArea.rightIsDeclined` | Right is Declined | STANDARD | → `noBuildArea` component | — | No | `RETAIL` only |
| `noBuildArea.rightIsExercised` | Right is Exercised | STANDARD | → `noBuildArea` component | — | No | `RETAIL` only |
| `noBuildArea.rightIsStricken` | Right is Stricken | STANDARD | → `noBuildArea` component | — | No | `RETAIL` only |
| `permittedUse` | Permitted Use | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `permittedUse.clause` | Clause | STANDARD | → `permittedUse` component | — | No | |
| `permittedUse.rightIsStricken` | Right is Stricken | STANDARD | → `permittedUse` component | — | No | |
| `policyExpirationDate` | Policy Expiration Date | STANDARD | `value` | `date` *(fixed)* | No | |
| `policyStartDate` | Policy Start Date | STANDARD | `value` | `date` *(fixed)* | No | |
| `prohibitedUse` | Prohibited Use | COMPLEX | `tagComponents` · `OTHER` | — | No | |
| `prohibitedUse.clause` | Clause | STANDARD | → `prohibitedUse` component | — | No | |
| `prohibitedUse.rightIsStricken` | Right is Stricken | STANDARD | → `prohibitedUse` component | — | No | |
| `rentRollTenant` | Tenant | COMPLEX | `tagComponents` · `OTHER` | — | No | rent-roll documents |
| `rentRollTenant.commenceDate` | Commencement Date | STANDARD | → `rentRollTenant` component | `date` *(fixed)* | No | rent-roll documents |
| `rentRollTenant.expirationDate` | Expiration Date | STANDARD | → `rentRollTenant` component | `date` *(fixed)* | No | rent-roll documents |
| `rentRollTenant.monthlyRent` | Monthly Rent | STANDARD | → `rentRollTenant` component | `$` *(fixed)* | No | rent-roll documents |
| `rentRollTenant.squareFootage` | Square Footage | STANDARD | → `rentRollTenant` component | `SF` *(fixed)* | No | rent-roll documents |
| `rentRollTenant.suiteNumber` | Suite Number | STANDARD | → `rentRollTenant` component | — | No | rent-roll documents |
| `rentRollTenant.tenantLegalName` | Tenant Legal Name | STANDARD | → `rentRollTenant` component | — | No | rent-roll documents |
| `tenantRadiusRestriction` | Tenant Radius Restriction | STANDARD | `value` | — | No | `RETAIL` only |


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