Skip to content

Guides

Roles

Understand how Parcel identifies and classifies the firms and people associated with a project.

When Parcel processes project documents, it extracts the companies and people named in those documents and assigns each one a role. Roles describe what a firm or person does on a specific project: who is developing it, who is designing it, who is building it, and who is advising it.

Roles work at two levels: a role that categorizes the firm by function, and an optional specific role that identifies the precise discipline within that function.

How roles are extracted

Parcel’s document parser reads permit applications, entitlement filings, and other public records and identifies role attributions in the text. Phrases like “Architect of Record”, “Prepared by”, “General Contractor”, or “Structural Engineer of Record” are matched to the firms and individuals named alongside them.

Each extracted attribution goes through a normalization step:

  1. If a specific discipline is identified (e.g. structural_engineer), Parcel maps it to its parent role (engineer) automatically.
  2. If only a role is identified, the specific role is left blank.
  3. If the role cannot be classified, it is recorded as other.

The same account can appear on a project under multiple roles if the documents name them in different capacities.

Roles

Roles are the top-level categories used to classify firms on a project.

RoleIdentifierDescription
DeveloperdeveloperReal estate developer or project owner
ArchitectarchitectArchitecture firm
EngineerengineerEngineering firm (any discipline)
General contractorgcGeneral contractor or builder
Law firmlaw_firmLand-use or permitting legal counsel
ConsultantconsultantNon-engineering consultant (planning, environmental, etc.)
Landscape architectlandscape_architectLandscape architecture firm
OtherotherUnclassified or unknown role

Note: agency appears as an account type but not as a project role. Agency contacts appear on projects via the contacts layer, not the accounts layer.

Specific roles

Specific roles are optional narrower disciplines within a role. They give more precision when the document identifies the exact function of a firm.

Architecture

Specific roleIdentifierBroad role
Architect of recordarchitect_of_recordarchitect
Design architectdesign_architectarchitect
Landscape architectlandscape_architectarchitect

Engineering

Specific roleIdentifierBroad role
Civil engineercivil_engineerengineer
Structural engineerstructural_engineerengineer
MEP engineermep_engineerengineer
Mechanical engineermechanical_engineerengineer
Electrical engineerelectrical_engineerengineer
Plumbing engineerplumbing_engineerengineer
Geotechnical engineergeotechnical_engineerengineer
Traffic engineertraffic_engineerengineer
Transportation engineertransportation_engineerengineer
Surveyorsurveyorengineer
Wind engineerwind_engineerengineer

Consulting

Specific roleIdentifierBroad role
Permitting consultantpermitting_consultantconsultant
Environmental consultantenvironmental_consultantconsultant
Planning consultantplanning_consultantconsultant
Sustainability consultantsustainability_consultantconsultant
Historic consultanthistoric_consultantconsultant

Contact roles

Contacts (individual people) on a project are classified with their own role set, separate from account roles.

RoleIdentifierDescription
Developer contactdeveloper_contactWorks for the developer
Architect contactarchitect_contactWorks for the architect
Engineer contactengineer_contactWorks for the engineer
GC contactgc_contactWorks for the general contractor
Agency PMagency_pmPublic agency project manager
AttorneyattorneyLand-use or permitting attorney
Owner contactowner_contactWorks for the property owner
OtherotherOther or unclassified role

Working with roles in code