Skip to content
GA George Andary
Menu
VERIFIED MATCH REPORT SEP 2026

PMO Pal

A verified local prototype that turns synthetic Excel portfolio data into explainable scores, escalation reports, and a rule-generated executive summary.

PMO Pal project visual showing synthetic portfolio data flowing into reporting, escalation, and BI-ready outputs

The read

PMO and portfolio teams often start with exported project data that needs cleaning, scoring, escalation logic, and leadership-ready interpretation before it can support useful portfolio reporting conversations.

Game plan

  • Create a deterministic synthetic Excel workbook with Projects, Milestones, Risks, Resources, Status_Updates, and Config_Rules sheets.
  • Read editable Config_Rules thresholds and weights from Excel so the reporting logic stays visible to a PMO analyst.
  • Use Python, pandas, and openpyxl to clean records, calculate health and priority scores, and flag stale updates, budget variance, schedule risk, overdue milestones, resource bottlenecks, and data-quality issues.
  • Package the outputs as dashboard-ready workbooks, BI-ready CSV files, a metrics dictionary, and a plain-English executive summary.
  • Keep the artifact public-safe: the data is synthetic, v1 does not use external paid AI calls, and the full demo package is available on request rather than published by default.

Final score

A repeatable reporting flow with visible scoring rules, traceable escalation reasons, and outputs a person can review before making a decision.

  • September 24 verification: 10 tests passed, including the stale-update boundary; generated-input and existing-input pipelines passed in a clean copy.
  • An independent Claude review passed after Codex validated the reporting flow and reconciled the source baseline.
  • The input workbook uses synthetic data only and includes six PMO/PPM-style sheets.
  • Editable Config_Rules drive stale-update, budget-variance, risk, schedule, bottleneck, and escalation logic.
  • One command regenerates dashboard-ready Excel outputs, BI-ready datasets, and an executive summary.
  • Escalation reporting separates red budget variance, stale updates, overdue milestones, high risk exposure, resource bottlenecks, and missing PMO data.
  • The v1 demo does not use real company data, production governance data, or external paid AI calls.
  • The full demo package is intentionally not published by default and is available on request.

What it is

PMO Pal is a synthetic-data Python reporting prototype developed with AI assistance. Its local demo and independent review passed on September 24, 2026.

PMO Pal simulates the reporting and automation layer that could sit around exported PPM data. The project shows how a PMO analyst could use AI-assisted development and straightforward Python automation to move from raw Excel exports to cleaner reporting outputs, escalation candidates, dashboard-ready workbooks, BI-ready files, and a leadership summary.

What the workflow does

  • Starts with a synthetic Excel workbook shaped like a PMO export
  • Uses an editable Config_Rules sheet for thresholds and scoring weights
  • Cleans and standardizes project, milestone, risk, resource, and status-update data
  • Scores project health and priority using visible business rules
  • Flags stale updates, over-budget projects, overdue milestones, bottlenecks, blockers, and missing records
  • Produces dashboard-ready Excel files, BI-ready CSV datasets, a metrics dictionary, and an executive summary

Why I built it

The useful part of PMO reporting is rarely just the dashboard. The harder work is making the input data trustworthy, applying business rules consistently, and turning the result into a decision-ready view.

PMO Pal is meant to make that operating pattern tangible. It shows how practical AI-assisted development can reduce manual reporting friction while keeping the logic simple enough for a PMO analyst to explain, review, and adjust.

Public-safe boundaries

The demo uses synthetic data only. It does not contain real company data, client data, proprietary PPM exports, or a published full-code package on the site.

It is also not a production governance system, a live SaaS product, or a replacement for an enterprise PPM platform. V1 does not use external paid AI calls; the executive summary is generated from deterministic reporting logic.

The full v1 demo package is available on request for walkthroughs, interviews, or deeper review.

What we verified

The generated-input pipeline, all 10 tests, and the existing-input pipeline passed in a clean copy. Testing in a separate copy preserved the original reports because the integration tests regenerate output files. Independent Claude review passed after the source baseline and correction evidence were reconciled.

The default synthetic sample produced 42 project records and 14 escalation candidates. These describe the sample, not business impact. A regression check verifies that an update exactly 14 days old is not stale under the default rule, while one 15 days old is.

A four-minute walkthrough

  1. Open the synthetic input workbook and its editable scoring thresholds.
  2. Run the Python pipeline and follow one project from input to health score.
  3. Inspect its escalation reasons alongside budget, schedule, and data-quality signals.
  4. Open the executive summary and BI-ready exports; explain which decisions still belong to a person.

Guided demo available on request. The illustration above represents the reporting workflow; it is not a product screenshot.

Limits and next step

There is no live PPM connection, production deployment, or measured business savings. Power BI and Tableau are potential consumers of the CSV output; this project does not include a verified dashboard integration. AI supported development and review, while the running pipeline uses explicit rules.

The next milestone is to validate field mappings and thresholds against an approved reporting scenario. My contribution is the product intent and scope; AI assisted implementation, documentation, and validation.

NEXT FIXTURE Signal Mortgage Intake Demo →