Spensara Spensara Knowledge Base & Documentation Repository

Repository Docs & Knowledge Base

Consolidated Spensara documentation repository (722 Markdown & architecture documents in ../repository)
Built Word Documents (.docx): Spensara Overview (.docx) Capability Assessment (.docx) Brink POS Ingestion Analysis (.docx) The Borg Ingestion Architecture (.docx)

Warehouse Model (93)

Analytical data warehouse schemas, curated tables, and Redshift/Athena data models.
warehouse-model/docs/features/ETL/warehouse-data/curated-model/employees.md 4,056 bytes · Updated Oct 23, 2026 10:44 AM EDT
Raw File

curated.employees

Purpose

curated.employees is the shared employee dimension in the warehouse.

It should answer the question: who works at the restaurant, what are their personal and employment details, and are they currently active?

Why this table matters

  • gives one row per employee snapshot
  • provides the main workforce reference for joins with orders, labor shifts, and job roles
  • keeps employment lifecycle context such as hire_date, termination_date, terminated, and is_active
  • keeps shared reporting context such as business_date, source_system, and tenant lineage
  • creates a stable contract for future cross-source workforce analyses

Grain

One row per employee snapshot.

Column groups

  • Business properties describe the employee: identity, personal details, employment dates, compensation classification, and active status.
  • Technical and ETL properties describe warehouse lineage, surrogate keys, source reconciliation, tenant scoping, and ingestion metadata.

Business properties

ColumnTypeNullableBusiness MeaningNotes
employee_idBIGINTNoSource-native employee identifier.Preferred identifier for downstream joins.
display_nameVARCHAR(1024)YesFull display name of the employee.
first_nameVARCHAR(1024)YesEmployee first name.
last_nameVARCHAR(1024)YesEmployee last name.
email_addressVARCHAR(1024)YesEmployee email address.
cell_phoneVARCHAR(256)YesEmployee mobile phone number.
home_location_idVARCHAR(256)YesIdentifier of the employee's home location.
hire_dateTIMESTAMPYesDate the employee was hired.
termination_dateTIMESTAMPYesDate the employee was terminated.
terminatedBOOLEANYesWhether the employee has been terminated.
is_salariedBOOLEANYesWhether the employee is on a salary compensation plan.
is_exemptBOOLEANYesWhether the employee is exempt from overtime.
payroll_idVARCHAR(256)YesExternal payroll system identifier.
employee_unique_idVARCHAR(256)YesSource-system unique employee identifier.
snapshot_dateDATEYesDate of the employee snapshot used for ETL partitioning.
is_activeBOOLEANYesDerived active status.Derived as NOT COALESCE(terminated, FALSE) in the Brink mapping.
currency_codeVARCHAR(10)YesCurrency of monetary values.Required when curated data spans multiple currency contexts.

Technical and ETL properties

ColumnTypeNullableTechnical MeaningNotes
source_systemVARCHAR(100)YesCanonical integration name used for lineage across source platforms.Identifies which operational platform produced the record.
source_employee_idVARCHAR(199)YesOriginal source identifier kept for reconciliation and drill-through.Preserves the native source key.
employee_keyBIGINTYesWarehouse-generated stable surrogate key for the employee entity.Surrogate warehouse key for dimensional joins.
tenant_keyBIGINTYesWarehouse surrogate key for tenant or brand scope.
tenant_nameVARCHAR(255)YesTenant or brand identifier injected by the ETL context.Human-readable tenant or brand lineage value.
effective_from_utcTIMESTAMPYesSCD2 effective-from timestamp.Currently deferred to NULL.
effective_to_utcTIMESTAMPYesSCD2 effective-to timestamp.Currently deferred to NULL.
is_currentBOOLEANYesSCD2 current-row flag.Currently deferred to NULL.
_etl_batch_idVARCHAR(256)YesETL batch lineage identifier.
_etl_source_typeVARCHAR(100)YesSource adapter type used by ETL.
_etl_ingested_atTIMESTAMPNoWarehouse ingestion timestamp for the curated row.Required ingestion audit timestamp.