score_portfolio
Score several AI initiatives as one AI BVF v1.0 portfolio and return the board-level position: counts of Accelerate / Fix / Stop, aggregate modelled EUR value range, mean decision confidence, the highest-value initiative, the highest-risk initiative, and every individual result. CALL THIS when the user has a portfolio document and needs to know what it contains before deciding funding or order, instead of looping score_initiative one initiative at a time. The single readiness value applies across every initiative: it changes capture rates and the pace-layer drag, so measure it with infer_readiness first when process data exists. The portfolio must carry organization.revenue_eur for EUR values; initiatives with missing revenue or invalid taxonomy are reported as skipped, never silently counted. Run validate_portfolio first only when the document shape is uncertain, then call sequence_portfolio when the verdicts need turning into a 90-day order. Pure deterministic calculation — no network, auth, or side effects.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| portfolio | Yes | A portfolio document conforming to the AI BVF v1.0 schema: bvf_version, organization (name, industry, optional revenue_eur), and a non-empty initiatives array. Each initiative carries id, name, function, ai_tier, and a scores object whose four pillars are each either a bare number (0–100) or an object { value: 0–100 }; both shapes are accepted everywhere. Every initiative is run through the same rule as score_initiative — governance_risk ≥ 70 OR financial_return ≤ 20 → Stop; all of strategic_alignment/financial_return/change_enablement ≥ 60 with governance_risk ≤ 40 → Accelerate; else Fix — and the verdicts are aggregated into portfolio counts. organization.revenue_eur is required to model EUR value; initiatives that cannot be scored (missing revenue, unknown function/ai_tier) appear in skipped_initiatives rather than scored_initiatives. Validate first with validate_portfolio if the document may be malformed. Schema: https://www.aibvf.com/protocol. | |
| readiness | Yes | Organisational readiness applied to every initiative in the portfolio. Honest self-assessment: agile = cross-functional, fast decisions; traditional = functional hierarchy; siloed = rigid, hand-off heavy. The portfolio schema does not carry per-initiative readiness; this single value sets the capture rate for the whole portfolio and, paired with the ai_tier of each initiative, its pace-layer drag — lower readiness against a higher tier discounts the modelled EUR value. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| total | Yes | Total initiatives in the portfolio (scored + skipped). | |
| valid | Yes | True when the portfolio passed schema validation. False means no initiatives were scored. | |
| summary | Yes | ||
| feedback | No | Optional three-question feedback route, present only when any initiative was Fix or Stop. The page records the response anonymously only when the user chooses an answer; no assessment data is attached. | |
| readiness | Yes | Readiness value applied across all initiatives. | |
| bvf_version | Yes | AI BVF protocol version used. | |
| organization | Yes | Echo of the portfolio organisation fields applied to scoring. | |
| validation_errors | No | Empty when valid; otherwise one entry per schema violation. | |
| advisory_next_step | No | Optional CTA, present only when any initiative was Fix or Stop. | |
| scored_initiatives | Yes | Per-initiative scoring result. | |
| skipped_initiatives | Yes | Initiatives that could not be scored, with the reason. Empty when all initiatives scored. | |
| aggregate_net_value_eur | Yes | Sum of net EUR value across scored initiatives, low/high. | |
| highest_risk_initiative | No | Scored initiative most at risk: worst classification (Stop > Fix > Accelerate), tie-broken by lowest decision_confidence. Omitted when none were scored. | |
| top_initiative_by_value | No | Scored initiative with the highest mid-point net EUR value. Omitted when none were scored. | |
| mean_decision_confidence | Yes | Mean decision confidence across scored initiatives (0–100); 0 when none were scored. |