# Badge rules

The matrix slide attaches a single uppercase orange-bordered tag at the end of each row's Notes column. The example deck uses a tight vocabulary; pick the most distinctive applicable badge.

## Vocabulary and triggers

| Badge              | Trigger                                                                          |
|--------------------|----------------------------------------------------------------------------------|
| `SUBLEASE`         | Suite is a sub-lease (CoStar Lease tab marks it sublease, or brochure says so)   |
| `PLUG & PLAY`      | Suite is fully furnished / move-in ready (brochure phrasing)                     |
| `SPEC SUITE`       | Brand-new spec suite, completed                                                  |
| `SPEC SUITE` + sub `UNDERWAY` | Spec suite under construction. Use `SPEC SUITE UNDERWAY` text or set `subhead_tags` to include `SPEC SUITE UNDERWAY` |
| `JULY 2026`        | Suite has a future availability date (use the actual month/year)                  |
| `TERRACE`          | Outdoor terrace is a notable amenity                                              |
| `LARGEST`          | Largest space in the report (set on exactly one row — the one with most SF)       |
| `FULL BUILDING`    | Entire building available, not a suite                                            |
| `SIGNAGE`          | Building signage opportunity (a callout in commercial leasing)                    |
| `VALUE`            | Lowest $/SF/MO in the report (set on exactly one row)                             |

## Selection logic

If multiple badges apply, prefer in this order: `LARGEST` > `VALUE` > `SUBLEASE` > `SPEC SUITE` > `PLUG & PLAY` > `TERRACE` > date-based > `FULL BUILDING` > `SIGNAGE`. The thinking: distinctive structural attributes ("largest," "cheapest") rank higher than amenity attributes, which rank higher than condition attributes.

`LARGEST` and `VALUE` are mutually exclusive across rows — assign each to exactly one row in the report. Compute them across the matrix, not per row.

## Subhead tags on property pages

The property-page sub-header (small-caps orange line under the address) takes up to three tags joined by ` · `:

1. The submarket (always — e.g. `SOUTH OF MARKET`).
2. The badge from the matrix row.
3. An optional secondary descriptor (e.g. `VIRTUAL TOUR` if the listing has one, `9+ PARKING` if parking is a notable callout, `FULLY BUILT-OUT`, `OUTDOOR TERRACE`).

Keep the line under ~50 characters total. If it's getting long, drop the secondary descriptor.


## Mandatory content for SUBLEASE rows

When `badge == "SUBLEASE"`, the row's `notes` text **must** include "through [Month Year]" or "thru [Month Year]" naming the sublease end date. The `subhead_tags` for that property's slide **must** include `SUBLEASE THRU [MMM YYYY]` (e.g., `SUBLEASE THRU APR 2027`).

This is non-negotiable: a tenant rep deck that publishes a SUBLEASE without the end date is materially incomplete. If the date isn't in CoStar or the brochure, ask the listing broker before generating the deck.
