ICE Framework Formula: How to Calculate Priority Scores in Product Management

The ICE framework formula multiplies three factors—Impact, Confidence, and Ease—to generate a numeric priority score calculated as ICE = Impact × Confidence × Ease.

The ICE framework is a lightweight prioritization method used by product teams to rank initiatives quickly without complex spreadsheets. According to the phuryn/pm-skills repository, this scoring system provides a single numeric value that enables rapid comparison of feature ideas, assumptions, and project initiatives. The framework appears in multiple skill files across the repository, demonstrating its versatility in product discovery and execution workflows.

Understanding the ICE Framework Formula

The Three Components

The ICE framework evaluates every initiative through three distinct lenses:

  • Impact – The value an initiative creates, often calculated as Opportunity Score × Number of Customers. This represents the potential benefit to your user base or business.
  • Confidence – A rating (typically 1–10) indicating how certain you are that the projected impact will be realized based on available data and evidence.
  • Ease – A rating (typically 1–10) representing how simple the initiative is to implement, considering engineering effort, design requirements, and operational complexity.

The Mathematical Formula

As documented in pm-product-discovery/skills/prioritize-features/SKILL.md at line 22, the complete ICE framework formula is expressed as:


ICE = Impact (Opportunity Score × # Customers) × Confidence × Ease

This multiplication ensures that initiatives with low confidence or high implementation difficulty receive lower scores, while high-impact, high-certainty, easy-to-build features rise to the top of the priority list.

ICE Framework Formula Implementation in Code

The phuryn/pm-skills repository provides practical Python implementations demonstrating how to compute ICE scores programmatically.

Basic ICE Calculation

This example shows the fundamental arithmetic behind the ICE framework formula:


# Example 1 – Basic ICE calculation

impact = 8      # Impact (e.g., Opportunity Score × #Customers)

confidence = 7  # Confidence (1‑10)

ease = 9        # Ease (1‑10)

ice_score = impact * confidence * ease
print(f"ICE score: {ice_score}")   # → ICE score: 504

Batch Processing Multiple Ideas

For prioritizing roadmaps with multiple features, use a DataFrame to calculate and sort ICE scores:


# Example 2 – Using a DataFrame for many ideas

import pandas as pd

data = {
    "idea": ["Feature A", "Feature B", "Feature C"],
    "impact": [12, 8, 5],
    "confidence": [9, 6, 8],
    "ease": [7, 8, 9],
}
df = pd.DataFrame(data)
df["ice"] = df["impact"] * df["confidence"] * df["ease"]
print(df.sort_values("ice", ascending=False))

Normalized Impact Calculation

When Impact requires derivation from Opportunity Scores using Dan Olsen's formula:


# Example 3 – Normalising impact with Opportunity Score & #Customers

def opportunity_score(importance, satisfaction):
    # Dan Olsen’s formula: Importance × (1‑Satisfaction), normalised 0‑1

    return (importance * (1 - satisfaction)) / 100

importance = 80      # 0‑100

satisfaction = 30    # 0‑100

customers = 1500

impact = opportunity_score(importance, satisfaction) * customers
confidence, ease = 8, 9
ice = impact * confidence * ease
print(f"Normalised ICE: {ice:.2f}")

ICE vs. RICE: Key Differences

While the ICE framework formula focuses on three multipliers, the related RICE framework adds a fourth variable: Reach.

  • ICE = Impact × Confidence × Ease
  • RICE = (Reach × Impact × Confidence) / Effort

The ICE framework eliminates the Reach denominator and uses Ease (inverse of Effort) as a positive multiplier rather than a divisor. This simplification makes ICE faster to calculate when you lack precise reach metrics or need rapid prioritization during early discovery phases.

Source Files and Implementation Details

The ICE framework formula is implemented consistently across three key files in the phuryn/pm-skills repository:

File Role
pm-product-discovery/skills/prioritize-features/SKILL.md Defines the ICE formula as "Impact (Opportunity Score × # Customers) × Confidence × Ease" and demonstrates application when scoring feature ideas.

| pm-execution/skills/prioritization-frameworks/SKILL.md | Reference guide covering ICE, RICE, and other prioritisation frameworks for execution planning. | | pm-product-discovery/skills/prioritize-assumptions/SKILL.md | Applies the identical ICE formula to assumption prioritisation during discovery, reinforcing the framework's flexibility. |

These resources confirm that the ICE framework formula remains consistent whether prioritizing features, assumptions, or other product initiatives.

Summary

  • The ICE framework formula calculates priority scores by multiplying Impact × Confidence × Ease.
  • Impact typically combines Opportunity Score with customer count, while Confidence and Ease use standardized 1–10 ratings.
  • The formula appears in pm-product-discovery/skills/prioritize-features/SKILL.md within the phuryn/pm-skills repository.
  • Unlike RICE, ICE omits the Reach variable, making it faster for rapid prioritization exercises.
  • Python implementations enable automated scoring of feature backlogs and assumption tests.

Frequently Asked Questions

What is the difference between the ICE and RICE framework formulas?

The ICE framework formula multiplies Impact × Confidence × Ease, while the RICE formula divides (Reach × Impact × Confidence) by Effort. ICE eliminates the Reach variable and treats implementation simplicity as a positive multiplier (Ease) rather than a cost divisor (Effort), making it faster to calculate when reach data is unavailable.

How do you calculate the Impact score in the ICE framework?

Impact is typically calculated as the Opportunity Score multiplied by the Number of Customers affected. The Opportunity Score itself often derives from Dan Olsen's formula: Importance × (1 – Satisfaction), normalized to a 0–1 scale. This approach quantifies the gap between what users need and how well current solutions satisfy those needs.

What scale should be used for Confidence and Ease ratings?

Both Confidence and Ease utilize a 1–10 rating scale as implemented in the phuryn/pm-skills repository. Confidence represents certainty that projected impact will materialize, while Ease indicates implementation simplicity. Using consistent scales ensures that the multiplicative ICE formula generates comparable scores across different initiatives.

Can the ICE framework formula be used for prioritizing assumptions?

Yes, the identical ICE framework formula applies to assumption prioritization. The file pm-product-discovery/skills/prioritize-assumptions/SKILL.md demonstrates using Impact × Confidence × Ease to rank which assumptions to test first, helping product teams focus validation efforts on high-stakes, uncertain, and testable hypotheses.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →