Project Managers Narrative
Purpose
This view supports a range of portfolio and project management insights, helping decision-makers understand delivery health and emerging risks across all active projects. It transforms Project Manager Narratives (PMNs) into a structured, analysable format, making it easier to identify recurring risks, schedule pressures, and delivery challenges. By standardising how commentary is stored and linked to project data, it enables consistent reporting and trend analysis — while ensuring sensitive or personal information is handled safely and responsibly.
Use Case
- Owner: Martyn Coles
- Typical Use Cases:
- Identify trends in project commentary – Spot recurring themes such as delays, resourcing pressures, or risk causes from PM updates.
- Strengthen governance and assurance – Track whether project narratives have been reviewed, excluded, or remain eligible for inclusion in reporting, with visibility of last-updated dates.
- Monitor schedule and status confidence – Align qualitative commentary (e.g. “on track” or “at risk”) with project delivery metrics to highlight potential slippage or capacity issues early.
- Link narrative to portfolio performance – Combine narrative insights with project master data to provide a richer understanding of delivery challenges and customer impact.
- Style: Each row represents one attribute of a single project’s PMN entry, typed by
META_TYPE.CODE_VALUEholds a canonical code (hashed for long text), withVALUE_METADATApreserving readable payload.
Suggested dashboard insights:
- Heat-maps showing the volume and focus of project commentary over time.
- Top recurring factors behind profit erosion, cost growth, or delivery delays.
- Review coverage and commentary freshness across the portfolio.
- Alignment between reported schedule health and recent PM narrative tone.
Source
pmo.pmo_PMN- Refresh cadence: Weekly (TBC) or aligned to PMN dataflow
- Load path: Bronze → Silver (aligned PMN) → Gold/CDM (
project.meta_codes_pmn)
Integration with Dimension / Reference Tables
Joins used (per SQL):
pmo.tsl_bmtprojects— enrichPROJECT_IDwith project name forIDENTITYattributes
Common optional joins:
cdm.project_core(canonical keys, lifecycle)cdm.employee_core(to map PM to employee, if added later)
Sample Exec
For sample data execution, use the code:
EXEC get.myView @dataMart = 'Project', @viewName = 'Meta_Codes_PMN', @token = '<myToken>', @version = '<202404>'Response (Output Schema)
Columns emitted by final SELECT:
Identifiers
- OBJECT_SEQ:
json (varchar)— canonical project key JSON:{ "COMPANY_ID": "<code>", "PROJECT_ID": "<id>" }(direct from source columnsCompany_ID,Project_ID). - META_TYPE:
varchar— one of:IDENTITY | PMN | COMMENTS | PRINCIPLE | QUALITY | REVIEW | RISK | SCHEDULE | STATUS | CAUSE.
Meta Codes (attributes by META_TYPE)
- IDENTITY
PROJECT_ID— code = project ID;DESC= project name
- PMN (tables or multi‑field composites hashed)
RadarScores,Progress— MD5(…) short hex inCODE_VALUE;DESC= original text
- COMMENTS
Review,CustomerRelationship,Resourcing,Schedule,ProfitOnTrack,PM,CostIncrease,RevenueReduction— hashed from free‑text fields (see SQL), preserved inVALUE_METADATA.DESC
- PRINCIPLE
KeyRisks,KeyOpportunities,KeyVunerabilities— hashed from free‑text
- QUALITY
Modified— last modified date (YYYY‑MM‑DD)
- REVIEW
Excluded,Eligible,Reviewed— boolean flags emitted as'True'|'False'
- RISK
RiskRegisterUpToDate,HasRiskRegister(DESCcarries link),RiskRegisterRequired
- SCHEDULE
ProjectOnSchedule,WillFinishOnSchedule
- STATUS
BelieveData,ProfitOnTrack,Report,Customer,Resource,Reviewed— hashed for long text where applicable; booleans or categorical otherwise
- CAUSE
ProfitReduction,CostIncrease,RevenueReduction,SupplierDriven,InternallyDriven,CustomerDelay— hashed from free‑text causes
Common fields
- CODE_VALUE:
varchar— canonical value (short MD5 hex for long text; raw for booleans/dates) - VALUE_METADATA:
json (varchar)— compact JSON with at leastCODEand optionalDESC(sanitised; single quotes replaced by^).
Audit & Status
- CREATE_DATE:
date—GETDATE()cast to date at load time - EXPIRY_DATE:
date— constant'2099‑12‑31' - SOURCE_SYSTEM:
varchar— e.g.,{"Source":"pmo.pmo_PMN"} - ACTIVE_FLAG:
int—1 - CHECKSUM:
nvarchar(32)— MD5 of(OBJECT_SEQ, ATTRIBUTE, CODE_VALUE)(hex string)
Keys & Uniqueness
- Primary (logical) key:
OBJECT_SEQ, META_TYPE, ATTRIBUTE, CODE_VALUE - Grain statement: One row per project narrative attribute (
META_TYPE+ATTRIBUTE). - De‑duplication rule(s): Prefer most recent
CREATE_DATE; useCHECKSUMfor change detection.
Data Quality & Rules
- Mandatory fields:
OBJECT_SEQ, META_TYPE, ATTRIBUTE, CODE_VALUE - Validations:
- Dates castable to
YYYY‑MM‑DD(e.g.,Modified) - Hashes present when source narrative non‑blank
- Boolean/text flags only
'True'|'False'
- Dates castable to
- Business rules applied:
- Free‑text narrative hashed → short MD5; original preserved in
DESC - Sanitise quotes in narrative (
'→^)
- Free‑text narrative hashed → short MD5; original preserved in
- Assumptions/limitations: Some attributes carry long narrative; consider truncation limits in downstream tools when displaying
DESC.
Security & Privacy
- PII/Commercial sensitivity: Narrative may include sensitive commercial or client references. Treat as Internal/Confidential. Display of
VALUE_METADATA.DESCshould respect project access controls. - Access control: Restrict by project/PRU; consider row‑level filtering on
COMPANY_IDand project ownership. - Retention: Align to PMO record retention (TBC).
Dependencies
- Upstream:
pmo.pmo_PMN, optionalpmo.tsl_bmtprojects - Downstream: PMO dashboards (narrative trends, risk/issue theming), programme reviews, portfolio status packs