← Playbooks

PlaybookPortfolio30 days

The internal app portfolio audit: a 30-day framework

For heads of platform, internal tools, and PMO: a complete, runnable process that takes an unmeasured application estate to a keep/fix/kill decision deck in one month. No consultants, no six-month discovery phase.

July 21, 2026 · Playbook · 12 min read

Illustration of a grid of app tiles under a magnifying glass

Week 1: inventory — find everything that runs

You cannot audit what you haven't listed, and every estate is bigger than its owner believes. Build the inventory from four sources, in this order: the SSO/IdP application list (the closest thing to ground truth), DNS and internal load-balancer entries, the finance system's software line items, and — last — asking department heads "what do your people use daily?" Expect the four lists to disagree; the disagreements are findings.

Capture one row per app:

FieldNotes
Name, URL, owner team, sponsorIf no owner can be named in two emails, flag it — ownerless apps are retirement candidates by default.
Intended audience & job-to-be-doneOne sentence. "Managers approve expenses" — if the sentence takes a paragraph, note that too.
Annual run costLicenses + infra + the honest maintenance fraction of engineer time. Estimate bands (S/M/L = <$10k / $10–100k / >$100k) beat false precision.
Believed usageThe owner's guess, recorded now — comparing it to measured reality in week 4 is the audit's best slide.
Overlap candidatesOther apps claiming the same job.

Week 2: instrument — the one-afternoon rollout

The classic audit fails here by commissioning a measurement project per app. Don't. A portfolio-grade tool needs one script tag per app in the shared layout — for most estates that's a batch of one-line PRs a single platform engineer can open in an afternoon, and app teams merge in passing. Sequence:

  1. Prioritize the top ~50 apps by believed cost; long-tail apps join as the PRs land.
  2. Skip nothing "obviously fine." The obviously-fine apps produce the biggest surprises.
  3. Turn the feedback widget on everywhere (a 5–10% proactive sampling rate is plenty); ratings are half the scoring rubric.
  4. Verify each install is reporting before counting it covered — silence usually means the snippet missed a template, not that the app is dead. Distinguish those now.
With Morvero this week is literal: paste <script async src="…/widget.js" data-feedback-key="fbk_…"> per app, or point a coding agent at the repos via the MCP connector and let it install and verify_install each one. Anonymous by design, so this rollout does not need a privacy-review cycle per app — one review covers the platform (see the approval pack).

Weeks 3–4: let the data accumulate — then score

Two weeks of data is enough to separate the quartiles, which is all a first audit needs. Score each app 1–5 on three axes:

Portfolio score = U × S, read against C. Keep the two numbers separate rather than blending — a 20/25 on usage-sentiment with an L cost is a different conversation than a 6/25 with an S cost.

QuadrantProfileDefault disposition
FundHigh usage, high sentimentProtect the team; copy its practices.
FixHigh usage, low sentimentCaptive users, real pain — top of the investment list, with the feedback stream as the spec.
NicheLow usage, high sentimentKeep if cheap; a small audience that loves a tool is fine at S-cost and a problem at L-cost.
Retire?Low usage, low sentimentJustify-or-sunset queue, using pre-published kill criteria.

Day 30: the exec readout

Six slides, no more:

  1. The estate: N apps found, total annual run cost, % measured. (The gap between "apps finance pays for" and "apps anyone visited" is usually the room's first gasp.)
  2. Belief vs. reality: week-1 guesses against measured usage, anonymized enough to be kind.
  3. The quadrant: every app plotted usage × sentiment, sized by cost.
  4. Top 5 fixes: the Fix-quadrant apps with the user evidence behind each.
  5. Retirement slate: the Retire? queue with run-rate savings attached — this slide funds the program.
  6. The standing process: propose the quarterly review cadence so the audit becomes an operating rhythm, not an event.

After the audit: make it standing

The one-time audit decays in a quarter. What keeps it alive: a monthly 30-minute portfolio review of movers and bottom-rated apps; anomaly alerts to owners when usage halves or ratings slide; and the feedback-to-backlog loop so the Fix list continuously re-derives itself from real comments (see from stars to sprint).

Run this audit on Morvero: flat-priced per portfolio, so instrumenting all 300 apps costs the same as 3 — one script tag each, anonymous by design, with the Fund/Fix/Niche/Retire quadrant and a printable board report built in. Start free or talk to sales about an estate-wide pilot.