# Address

A postal address shared by people, organizations and branches.

Source table: Address in Core Record Types (`schema:PostalAddress`). An Address is a postal address: a street line, a city, a region, a postal code and a country. People, Organizations and Branches link it; it has no owner of its own.

## Rules and relationships

Enter Street Address* and Complement°, then link one [City](/systems/core/city), one [State](/systems/core/state) and one [Country](/systems/core/country). Full Address joins those values into one line. Type says how the linked party uses the address: Primary, Billing, Mailing or Other. Person, Organizations (Primary Address), Organizations (Registered Agent Address) and Branches are inverse links: link the address from the person, company or branch. Reuse an existing row when two parties share a place.

## Lifecycle and checks

The table has no status field. Record health is the share of six fields that are filled; Health check names the missing ones. Zipcode is a number, so a leading zero is lost; a Work Item proposes changing it to text. State, City and Country are each typed as single-record links, but nothing checks that the city belongs to the state or the state to the country.

## Source fields

Names, types, options and links are those configured in Core Record Types. The meaning is the first line of each field description in Airtable. Options describe configuration; they do not prove a rule is enforced elsewhere.

### Recorded values

| Field | Type | Meaning | Options, link or calculation |
| --- | --- | --- | --- |
| Street Address* | Text | Stores the street name and building number of this address. | Entered value. |
| Zipcode | Number | Stores the postal code of the address as a whole number. | Entered value. |
| Complement° | Text | Stores what comes after the street line, such as apartment, suite, floor, or building name. | Entered value. |
| Type | Multiple select | Stores how the linked person or company uses this address. | Primary, Billing, Mailing, Other |

### Links

| Field | Type | Meaning | Options, link or calculation |
| --- | --- | --- | --- |
| State | Linked records | Stores the state or province the address is in. | → [State](/systems/core/state) · one record |
| Person | Linked records | Links the people who use this address. | → [Person](/systems/core/person) · several records |
| Organizations (Primary Address) | Linked records | Links the companies whose main place of business is this address. | → [Organization](/systems/core/organization) · several records |
| City | Linked records | Links the city the address is in. | → [City](/systems/core/city) · one record |
| Country | Linked records | Links the country the address is in. | → [Country](/systems/core/country) · one record |
| Branches | Linked records | Links every branch or site located at this address. | → [Branch](/systems/core/branch) · several records |
| Organizations (Registered Agent Address) | Linked records | Links the companies whose registered agent accepts legal notices at this address. | → [Organization](/systems/core/organization) · several records |
| Tags | Linked records | Links optional labels from the shared Core Tags catalog. | → [Tag](/systems/core/tag) · several records |

### Calculated

| Field | Type | Meaning | Options, link or calculation |
| --- | --- | --- | --- |
| Full Address | Formula | Shows the whole address on one line so the row reads on its own. | Formula below. |
| Country: Name [CO] | Lookup | Shows the country's name so the address reads on its own. | Lookup of Name through Country |
| City: Name [CY] | Lookup | Shows the city's name so the address reads on its own. | Lookup of Name through City |
| Record health | Formula | Shows how complete this address is, as the share of six key fields that are filled. | Formula below. |
| Health check | Formula | Says in words what is missing from this address, or shows ✅ when nothing is. | Formula below. |

## Current formulas

Field IDs are rendered as current field names.

### Full Address

```text
SUBSTITUTE(
  TRIM(
    CONCATENATE(
      IF({Street Address*}, {Street Address*} & "  "),
      IF({Complement°}, {Complement°} & "  "),
      IF({State}, {State} & "  "),
      IF({City: Name [CY]}, {City: Name [CY]} & "  "),
      IF({Country: Name [CO]}, {Country: Name [CO]} & "  "),
      IF({Zipcode}, {Zipcode} & "  ")
    )
  ),
  "  ",
  ", "
)
```

### Record health

```text
SUM(
IF({Street Address*},1,0),
IF(COUNTA({City})>0,1,0),
IF(COUNTA({State})>0,1,0),
IF({Zipcode},1,0),
IF(COUNTA({Country})>0,1,0),
IF({Type},1,0)
)/6
```

### Health check

```text
IF(
  AND(
    {Street Address*},
    COUNTA({City})>0,
    COUNTA({State})>0,
    {Zipcode},
    COUNTA({Country})>0,
    {Type}
  ),
  "✅",
  "Missing: " & REGEX_REPLACE(
    CONCATENATE(
      IF({Street Address*}, "", "Street Address, "),
      IF(COUNTA({City})>0, "", "City, "),
      IF(COUNTA({State})>0, "", "State, "),
      IF({Zipcode}, "", "Zipcode, "),
      IF(COUNTA({Country})>0, "", "Country, "),
      IF({Type}, "", "Type, ")
    ),
    ", $", ""
  )
)
```

## Example (fictitious)

"100 Example Street, Suite 2" links City Austin, State Texas and Country United States, Type Primary. Example Roofing LLC links it as Primary Address and its Branch "Austin office" links it as Address.

## Use by other systems

No other system mirrors this table.

[Correct shared records](/systems/core/maintain-shared-records) · [All entities](/systems/core/entities)