BuilderVault
Build-your-own PMO blueprint

Change, risk, and issue control

Give delivery teams structured portals for change requests, risks, issues, actions, escalations, and decisions.

Finished outcome: A connected control layer for change requests, risk and issue management, decision logs, and escalation communications.

Business problem

Projects fail quietly when changes, risks, and issues live in meeting notes. A small PMO needs one operational source of truth.

Core data model

  • Change Requests
  • Risks
  • Issues
  • Actions
  • Decisions
  • Escalations
  • Impact Assessments

Portals and workflows to build

Change Request Portal

Capture scope, schedule, budget, risk, and benefit impacts before approving project changes.

Power Platform build

  • change request form
  • impact assessment section
  • approval matrix
  • linked project and gate records

Automations

  • change review routing
  • approval/rejection notification
  • project baseline update reminder
  • change board agenda digest

Reporting

  • changes by project
  • approved impact
  • pending change aging
  • change reasons

Risks and Issues Portal

Track ownership, severity, mitigation, due dates, escalation, and closure evidence.

Power Platform build

  • risk and issue forms
  • severity and probability scoring
  • owner work queue
  • escalation notes

Automations

  • overdue mitigation reminder
  • high-severity Teams alert
  • weekly RAID digest
  • closure confirmation

Reporting

  • open risks by severity
  • issues aging
  • mitigation overdue
  • escalations by sponsor

Power BI report pages

  • RAID dashboard
  • change impact dashboard
  • risk heat map
  • issue aging and escalation trends

Implementation roadmap

  • Define change, risk, and issue fields.
  • Build separate but linked portals for each control area.
  • Automate reminders and escalations.
  • Create Power BI views for executives and delivery teams.
  • Review open controls in weekly governance meetings.

Governance notes

  • Separate risks from issues: risks might happen, issues are already happening.
  • Require owner and due date on every active item.
  • Track decision history so escalations do not reset the story.

Next layer down: implementation details

Table build specs

EitherChange Requests

Controls scope, budget, schedule, and risk changes after charter approval.

ColumnTypeRequiredNotes
ProjectLookupYesProject affected by the change.
Change TypeChoiceYesScope, schedule, budget, resource, quality, compliance.
ReasonMultiple lines textYesWhy the change is needed.
Scope ImpactChoiceYesNone, Low, Medium, High.
Schedule Impact DaysNumberNoPositive or negative variance.
Budget ImpactCurrencyNoEstimated cost increase or decrease.
StatusChoiceYesDraft, Submitted, Under Review, Approved, Rejected, Closed.

Relationships

  • Many Change Requests relate to one Project.
  • Change approvals create Approval History records.

Recommended indexes

  • Project
  • Status
  • Change Type
  • Approver
  • Decision Date
EitherRisks and Issues

Operational RAID control for project uncertainty and active blockers.

ColumnTypeRequiredNotes
Item TypeChoiceYesRisk or Issue.
ProjectLookupYesParent project.
SeverityChoiceYesLow, Medium, High, Critical.
ProbabilityNumberNoUse only for risks.
Impact ScoreNumberYes1-5 scoring for heat maps.
OwnerPersonYesAccountable for mitigation or resolution.
Due DateDateYesDrives reminders and overdue reporting.
StatusChoiceYesOpen, Monitoring, Escalated, Closed.

Relationships

  • Many Risks and Issues relate to one Project.
  • Actions and Decisions can link to a RAID item.

Recommended indexes

  • Project
  • Item Type
  • Severity
  • Owner
  • Due Date
  • Status

Recommended fields

  • Change Request: Change ID, Project, Requestor, Change Type, Description, Reason, Scope Impact, Schedule Impact, Budget Impact, Risk Impact, Recommendation, Status, Approver, Decision Date.
  • Risk: Risk ID, Project, Category, Cause, Event, Impact, Probability, Impact Score, Exposure, Mitigation Plan, Contingency Plan, Owner, Due Date, Status.
  • Issue: Issue ID, Project, Description, Severity, Impact, Owner, Due Date, Resolution Plan, Escalation Needed, Status, Closed Date.
  • Decision: Decision ID, Project, Decision Needed, Options, Recommendation, Decision Maker, Decision, Decision Date, Rationale.

Screens to build

  • Change request form with impact assessment, recommendation, approval route, and baseline update reminder.
  • Risk register screen with heat scoring, mitigation owner, due date, escalation flag, and trend notes.
  • Issue register screen with severity, blocker flag, owner queue, resolution plan, and closure evidence.
  • Weekly RAID review dashboard for open high-severity items and overdue actions.

Power Apps screen blueprints

Project manager and PMO analystRAID Register Screen

Manage risks, issues, actions, and decisions from one operating queue.

Layout

  • Filter tabs for Risk, Issue, Action, Decision
  • Severity and overdue filters
  • Register gallery
  • Selected item edit panel

Controls

  • tabRaidType
  • galRaidItems
  • cmbSeverity
  • tglEscalatedOnly
  • frmRaidItem
  • btnEscalate
  • btnCloseItem

Formula notes

  • Heat score = Probability * Impact Score
  • Close requires closure notes
  • Escalate creates decision request when decision is needed

Data sources

  • Risks and Issues
  • Actions
  • Decisions
  • Escalations
Project manager or sponsorChange Request Screen

Capture impact and route change approval before baseline changes.

Layout

  • Change summary
  • Impact assessment cards
  • Recommendation
  • Approver routing
  • Decision history

Controls

  • frmChangeRequest
  • cmbChangeType
  • numScheduleImpact
  • curBudgetImpact
  • cmbScopeImpact
  • txtRecommendation
  • btnSubmitChange

Formula notes

  • Impact level derives from budget, schedule, scope, and risk impacts
  • Approval route changes by impact threshold
  • Approved change prompts baseline update task

Data sources

  • Change Requests
  • Projects
  • Approval History
  • Actions
Risk, issue, and action ownersOwner Work Queue Screen

Let owners update mitigation, due dates, and closure evidence without seeing the full PMO admin app.

Layout

  • My open items
  • Due soon and overdue grouping
  • Update panel
  • Closure evidence panel

Controls

  • galMyActions
  • frmOwnerUpdate
  • txtMitigationUpdate
  • dpNewDueDate
  • attClosureEvidence
  • btnSubmitUpdate

Formula notes

  • Items filter by current user email
  • Due date extension requires reason
  • Closure sets Closed Date and notifies PM

Data sources

  • Risks and Issues
  • Actions
  • Communication Log

Dataverse solution component map

Create this as BV PMO Controls using publisher prefix bvpmocntl.

Tables

  • bv_changerequest
  • bv_raiditem
  • bv_action
  • bv_decision
  • bv_escalation
  • bv_impactassessment

Choices

  • bv_changetype
  • bv_controlstatus
  • bv_severity
  • bv_raidtype
  • bv_decisionstatus

Apps

  • RAID Register
  • Change Request Portal
  • Owner Work Queue

Cloud flows

  • Control - Route Change Approval
  • Control - Escalate Critical Risk
  • Control - Overdue Owner Reminder
  • Control - Close Item Notification

Security roles

  • Control Project Manager
  • Control Item Owner
  • Change Approver
  • Executive Escalation Viewer

Environment variables

  • Critical Risk Channel URL
  • Change Board Email
  • Overdue Reminder Days
  • Baseline Update Owner

Dashboards

  • Risk Heat Map
  • Issue Aging
  • Change Impact
  • Open Decisions

Power Fx snippets

lblHeatScore.TextCalculate RAID heat score
Formula / code
With(
    {
        heatScore: Coalesce(Value(cmbProbability.Selected.Value), 1) * Coalesce(Value(cmbImpact.Selected.Value), 1)
    },
    Text(heatScore, "0")
)

Implementation notes

  • Use probability only for risks; issues can default probability to 1.
  • Use the score to drive escalation and Power BI heat maps.
btnCloseItem.OnSelectClose RAID item with evidence
Formula / code
If(
    IsBlank(Trim(txtClosureNotes.Text)),
    Notify("Add closure notes before closing this item.", NotificationType.Warning),
    IfError(
        Patch(
            'Risks and Issues',
            varSelectedRaidItem,
            {
                Status: { Value: "Closed" },
                'Closed Date': Today(),
                'Closure Notes': txtClosureNotes.Text
            }
        ),
        Notify("Item could not be closed.", NotificationType.Error),
        Notify("Item closed.", NotificationType.Success)
    )
);

Implementation notes

  • Closure evidence is what makes RAID history useful later.
  • Notify the project manager when an owner closes an escalated item.

Power Automate flow pseudo-steps

FlowControl - Escalate Critical Risk

Trigger: When a risk or issue is created or severity changes.

Workflow map

Check severity and heat score. ->
If critical or escalated, post Teams alert to sponsor and PMO lead. ->
Create escalation record. ->
Create owner action with due date. ->
Write communication log.

Useful expressions

  • @or(equals(triggerOutputs()?['body/Severity/Value'], 'Critical'), greaterOrEquals(triggerOutputs()?['body/HeatScore'], 12))
  • addDays(utcNow(), 3)
FlowControl - Route Change Approval

Trigger: When Change Request status changes to Submitted.

Workflow map

Calculate impact level from schedule, budget, scope, and risk. ->
Route low impact to PMO lead and high impact to sponsor/change board. ->
Update decision fields. ->
Create baseline update action after approval.

Useful expressions

  • @equals(triggerOutputs()?['body/Status/Value'], 'Submitted')
  • if(greater(triggerOutputs()?['body/BudgetImpact'], 25000), 'Sponsor', 'PMO Lead')

Status model

  • Draft
  • Submitted
  • Under Review
  • Action Required
  • Approved or Accepted
  • Rejected or Closed
  • Escalated

Permissions

  • Project managers create and update controls for their projects.
  • Risk and issue owners update mitigation, resolution, and due dates assigned to them.
  • Change approvers approve or reject assigned changes.
  • Executives view escalated items and decision requests.

Workflow map

Team submits change, risk, issue, or decision ->
Classify severity and impact ->
Assign owner and due date ->
Route approval or escalation if needed ->
Track mitigation or decision action ->
Confirm closure evidence ->
Report open exposure and aging

Workflow logic

  • When a change is submitted, calculate impact level and route approval by threshold.
  • When a high-exposure risk is created, notify the PMO lead and sponsor.
  • Send overdue mitigation reminders before and after due dates.
  • When a change is approved, remind the project manager to update baselines.

Power BI measures and calculations

  • Open Risk Exposure = SUMX(FILTER('Risks', 'Risks'[Status] <> "Closed"), 'Risks'[Probability] * 'Risks'[Impact Score])
  • Overdue Actions = COUNTROWS(FILTER('Actions', 'Actions'[Due Date] < TODAY() && 'Actions'[Status] <> "Closed"))
  • Average Issue Age = AVERAGEX(FILTER('Issues', 'Issues'[Status] <> "Closed"), DATEDIFF('Issues'[Created Date], TODAY(), DAY))
  • Approved Change Impact = SUM('Change Requests'[Budget Impact])

MVP build sequence

  • Create Change Requests, Risks, Issues, Actions, and Decisions tables linked to Projects.
  • Build owner queues first so the tool changes behavior.
  • Add threshold-based escalation for high-severity items.
  • Add change approval with impact assessment and baseline reminder.
  • Create Power BI RAID and change-impact pages.

Starter template downloads