Decision Intelligence
Align's Decision Intelligence Engine turns your raw decision data into actionable organizational insights. It combines graph analysis, ML classification, temporal patterns, and health scoring to surface what matters - from individual contributors up to the CTO.
Decision Tiers
Every decision is automatically classified into one of three tiers based on its characteristics:
| Tier | Signals | Example | Audience |
|---|---|---|---|
| Strategic | Cross-team, high link count, leadership author, broad language | "Migrate to microservices" | VPs, architects, all affected teams |
| Tactical | Team-scoped, moderate links, medium lifespan | "Use Redis for session cache" | Team + adjacent teams |
| Operational | Individual/pair, few links, short-lived | "Name this endpoint /v2/users" | The people involved |
How Classification Works
Tier classification uses a gradient boosting model trained on structural features - no additional LLM calls required:
| Feature | What It Measures |
|---|---|
| Link count | Number of relationships to other decisions |
| Cross-platform count | How many different tools reference this decision |
| Participant count | People involved in the discussion |
| Discussion length | Depth of the conversation |
| Language scope score | NLP analysis of scope language ("we as an org" vs "I'll use") |
| Leadership author | Whether the author has a leadership role |
Classification happens in the background and updates as new relationships are discovered. A decision that starts as operational may be reclassified as tactical once it accumulates cross-team links.
Tier in the UI
Decisions display tier badges throughout the interface. You can filter by tier to focus on the level that matters to your role:
- Executives: Filter to strategic to track organizational direction
- Team leads: Filter to tactical to manage team-level choices
- Everyone: Operational decisions stay accessible but don't clutter the feed
Health Scores
Align computes a health score (0-100) for every decision based on four components:
| Component | Max points | What It Measures |
|---|---|---|
| Freshness | 25 | Share of active decisions reviewed in the last 90 days |
| Evidence | 25 | Share with linked source material (an external reference or a linked PR) |
| Conflicts | 25 | Falls as unresolved conflicts_with / contradicts links accumulate |
| Connectivity | 25 | Share linked to at least one other decision (not orphaned) |
Grades
| Score | Grade |
|---|---|
| 90-100 | A |
| 75-89 | B |
| 60-74 | C |
| 40-59 | D |
| below 40 | F |
Recommendations are generated per component, and only for a component scoring below 15 of its 25.
With zero decisions there is nothing stale, nothing unlinked and nothing in conflict, so all four components sit at full marks. That is a property of the formula, not a statement about your org. The score becomes meaningful once the graph has content - do not read a day-one A as a baseline you are defending.
Space Health
When scoped to a Decision Space, the same score is computed over the
decisions in that space (GET /spaces/:spaceId/health), which lets you compare one team's
decision hygiene against another's.
Health Dashboard
The Health Dashboard shows:
- Current health score with component breakdown
- Weekly trend (is health improving or degrading?)
- Top issues to address (stale decisions, orphans, unresolved conflicts)
Graph Analysis
The decision graph is Align's core data structure. Graph analysis extracts structure and meaning from the web of relationships:
Clusters
Align identifies clusters of tightly connected decisions using community detection algorithms. Clusters often correspond to:
- A feature area (all decisions about authentication)
- A project phase (all decisions made during a migration)
- A team's work (decisions that share participants and spaces)
Centrality
Central decisions are the most connected and influential nodes in the graph. These are the decisions that, if changed, would have the greatest ripple effect. Centrality analysis uses PageRank to identify them.
Orphan Detection
Orphaned decisions have zero relationships - they exist in isolation. This often indicates:
- The decision was captured but never linked to related work
- A gap in the discovery process (related decisions exist but weren't connected)
- A truly standalone choice (less common than you'd think)
Cross-Space Edges
The most valuable edges in the graph are those that cross space boundaries. These reveal:
- Hidden dependencies between teams
- Conflicting decisions made independently
- Convergent choices (teams aligning without coordination)
See Decision Spaces - Cross-Space Edges for details.
Relevance Feed
The personalized relevance feed answers: "What decisions should I care about right now?"
Scoring Algorithm
Each decision is scored against four weighted signals:
| Signal | Weight | How It's Computed |
|---|---|---|
| Space membership | 40% | 1.0 if the decision is in one of your spaces, 0.0 otherwise |
| Graph proximity | 30% | 1.0 if 1-hop linked to your space's decisions, 0.5 if 2-hop |
| Recency | 20% | Exponential decay with 30-day half-life |
| Tier weight | 10% | Strategic=1.0, Tactical=0.5, Operational=0.2 |
The feed over-fetches candidates, scores them, and returns the top results ranked by relevance.
API
GET /decisions/feed?limit=50
Returns decisions sorted by relevance score, personalized to the authenticated user's space memberships and graph neighborhood.
Cascade View
The Cascade View tracks how strategic decisions flow down through the organization:
Strategic: "Consolidate on PostgreSQL"
|
|-- Tactical: "Migrate user service to Postgres" (refines)
| |-- Operational: "Update ORM config for Postgres" (supports)
| |-- Operational: "Write data migration script" (supports)
|
|-- Tactical: "Deprecate MongoDB driver" (supports)
|
|-- CONFLICT: "Team C provisioned new MongoDB cluster" (conflicts_with)
How It Works
Starting from a strategic decision, Align follows refines, supports, and clarifies relationships recursively to build a tree of implementation decisions. It also identifies:
- Aligned decisions - Tactical/operational decisions that support the strategy
- Conflicts - Decisions that contradict the strategy (organizational drift)
- Gaps - Teams with no linked decisions (unknown alignment)
Alignment Score
Each strategic decision gets an alignment score: the percentage of expected tactical implementations that exist. A strategic decision with 8 aligned teams and 2 with no linked decisions has an alignment score of 80%.
This is organizational drift detection - not "is this decision stale?" but "is the org actually executing on this strategic choice?"
API
GET /decisions/:id/cascade
Returns the cascade tree rooted at the specified decision, including alignment score and conflict indicators.
Temporal Analysis
Temporal analysis tracks how decision-making patterns change over time:
Decision Velocity
How fast is your team (or org) making decisions? Velocity is measured as decisions per week, with trend analysis to detect:
- Acceleration - More decisions being made (new initiative kicking off?)
- Deceleration - Fewer decisions (team blocked? Decision fatigue?)
- Anomalies - Sudden spikes or drops that deviate from the baseline (z-score detection)
Space-Scoped Trends
When scoped to a space, temporal analysis reveals team-specific patterns:
- Which teams are most/least active in decision-making
- How decision velocity correlates with project milestones
- Seasonal patterns (quarter boundaries, release cycles)
Space Benchmarking
Compare spaces side-by-side to understand relative performance. The figures below are an illustrative example of the comparison view, not measured benchmarks or industry norms:
| Metric | Space A (example) | Space B (example) |
|---|---|---|
| Health score | 82 | 64 |
| Decision velocity | 12/week | 4/week |
| Tier distribution | 10% strategic, 40% tactical, 50% operational | 5% strategic, 20% tactical, 75% operational |
| Conflict rate | 2% | 8% |
| Orphan ratio | 5% | 22% |
Benchmarking helps executives identify:
- Teams that may need support (low health, high conflicts)
- Best practices to share (high health, good connectivity)
- Structural issues (too many operational decisions, too few strategic ones)
API
GET /spaces/benchmarks?parentId=<parent-space-id>
Returns comparative metrics for spaces under the given parent. Omit parentId to compare all top-level spaces.
Impact Simulation
Before changing or reverting a decision, understand the blast radius:
GET /decisions/:id/impact
Impact simulation uses recursive graph traversal to find all decisions that depend on the target. It returns:
- Direct dependents - Decisions with a direct relationship (1-hop)
- Transitive dependents - Decisions reachable through chains of relationships
- Affected spaces - Which teams/spaces would be impacted
- Risk assessment - How many strategic vs. operational decisions are in the blast radius
Drift Detection
Drift detection scores a piece of content you supply against one decision, and returns a
severity of none, minor, moderate, major or critical with an explanation.
POST /decisions/:id/drift-check
The source_type you pass tells Align what it is reading: github_file, github_pr,
github_commit, config_file, api_spec, database_schema or manual_input.
This is a check you (or an agent, or a CI job) invoke with content in hand. There is no background crawler reading your codebase or your config to find drift on its own. The one thing that does run on a schedule is a re-check of decisions already registered for drift monitoring - it does not go looking for new material.
The CLI exposes the same check as align drift, and agents get it as
check_drift.
Results are readable at GET /decisions/:id/drift-checks and GET /drift-summary, and a check
can be resolved with PATCH /drift-checks/:checkId/resolve.