AI Decision Matrix & Option Comparison avatar

AI Decision Matrix & Option Comparison

Pricing

$50.00 / 1,000 decision frameds

Go to Apify Store
AI Decision Matrix & Option Comparison

AI Decision Matrix & Option Comparison

Give it a decision, your options, and your criteria and get a ranked comparison, a recommendation with confidence, and the evidence that would change it.

Pricing

$50.00 / 1,000 decision frameds

Rating

0.0

(0)

Developer

jay casey

jay casey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Give it a decision, your options, and your criteria and get a ranked comparison, a recommendation with confidence, and the evidence that would change it.

Best for: decision analysis, compare options, evidence gaps.
Input and output: The output includes comparison criteria, a recommendation, ranking, and evidence gaps.

What can Decision Framer do?

State the choice, known context, candidate options, and priorities. The Actor asks Liminality to frame the decision and only charges when the engine returns a certified result.

What you getFeatures
⚖️ Criteria and ranked candidates📦 Batch input with one result row per decision
🧾 A recommendation, confidence, and facts that could change it🛑 Uncertified results fail closed and are not charged

Who this is for

  • Compare build and buy options
  • Frame a vendor or tool choice
  • Record what evidence could reverse a recommendation

What you get back

FieldTypeWhat you getExample
indexintegerPosition of this item in the input list.1
statusstringWhether this item completed its requested analysis.success
decisionstringDecision that the Actor compared.Should our SaaS company build or buy customer support automation?
criteriaarrayPriorities used to compare options.["Launch speed","Total cost","EU data handling","Maintenance burden"]
rankedCandidatesarrayOptions ordered with their supporting rationale.[{"name":"Build in-house","basis":"In-house build offers full control and EU compliance but is slow and expensive. Requires 6-14 weeks and $30k-$150k, which...
recommendationstringSuggested option and supporting reasoning.Build in-house (score 0.690, ungrounded (no registry match)). Commit now; validate the speculative inputs before the larger bet. Risks: The primary risks of...
whatWouldFlipItarrayEvidence or conditions that could change the recommendation.["Which specific EU-compliant platform is currently under consideration?","Are there any existing contracts or commitments with a specific platform?","Build...
analysisstringFull written comparison of the options.Build in-house. Commit now; validate the speculative inputs before the larger bet. Risks: The primary risks of building in-house include potential delays due...
confidencestringConfidence level for the qualification.candidate
errornullProblem details when this item does not complete.null
processedAtstringTime the Actor processed this item.2026-09-11T04:23:59.590246+00:00
confidenceNotestringReason the confidence level was assigned.Ranked and reasoned, but the engine could not verify every factual claim against evidence. Treat as a structured starting point, not a final verdict.

The run also links to its dataset and any files named in the Actor output.

What you need to provide

FieldTypeRequiredWhat it doesExample
itemsarrayYesProcess one or more items in a single run. Each item produces exactly one dataset row.[{"decision":"Should our SaaS company build or buy customer support automation?","conte...
items[].decisionstringYesThe choice or decision to frame.Should our SaaS company build or buy customer support automation?
items[].contextstringNoKnown facts, constraints, risks, and assumptions for this decision.12-person company; $20k budget; launch in 8 weeks; two engineers; EU customers.
items[].candidatesarrayNoOptional candidate options to compare.["Build in-house","Buy a managed platform"]
items[].prioritiesarrayNoOptional criteria in preferred priority order.["Launch speed","Total cost","EU data handling","Maintenance burden"]

Quick start

  1. Open the Actor in Apify Console.
  2. Click Try for free or Create a task.
  3. Replace the sample values with your own input.
  4. Click Start.
  5. Open the dataset and the named output files when the run ends.

Pricing

  • decision-framed: $0.05 per decision framed.
  • Example: 10 decisions cost at most $0.50 (up to 50 per run); a decision the engine cannot ground returns an explanation row and costs nothing.
  • You pay only for successful results. Failed or skipped items are not charged.
  • Normal Apify compute and proxy costs may also apply.

Limits and honest notes

  • Only certified engine results are returned as successful decision frames.
  • Candidates and priorities are optional, but missing detail may leave the decision unresolved.
  • A rejected result returns an error row and does not charge decision-framed.

Code and API

The examples below use the same values as the Apify Console sample.

Input JSON

{
"items": [
{
"decision": "Should our SaaS company build or buy customer support automation?",
"context": "12-person company; $20k budget; launch in 8 weeks; two engineers; EU customers.",
"candidates": [
"Build in-house",
"Buy a managed platform"
],
"priorities": [
"Launch speed",
"Total cost",
"EU data handling",
"Maintenance burden"
]
}
]
}

Real output sample

This excerpt comes from the real run named in the current marketplace release report.

{
"index": 1,
"status": "error",
"error": "Decision frame rejected by the engine: Liminality could not verify enough evidence for this answer. Add the requested facts or sources, then try again.",
"processedAt": "2026-09-11T04:30:29.622669+00:00"
}

curl

curl -X POST "https://api.apify.com/v2/acts/physealabs~decision-framer/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d @input.json

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("physealabs/decision-framer").call(run_input={'items': [{'decision': 'Should our SaaS company build or buy customer support automation?', 'context': '12-person company; $20k budget; launch in 8 weeks; two engineers; EU customers.', 'candidates': ['Build in-house', 'Buy a managed platform'], 'priorities': ['Launch speed', 'Total cost', 'EU data handling', 'Maintenance burden']}]})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('physealabs/decision-framer').call({"items": [{"decision": "Should our SaaS company build or buy customer support automation?", "context": "12-person company; $20k budget; launch in 8 weeks; two engineers; EU customers.", "candidates": ["Build in-house", "Buy a managed platform"], "priorities": ["Launch speed", "Total cost", "EU data handling", "Maintenance burden"]}]});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

You can call this Actor from an agent or LLM tool that can send HTTP requests to the Apify API. Keep the Apify token in a secret store.

FAQ

Are candidate options required?

No. You can omit them, but named candidates make the comparison more specific.

Can I set the criteria order?

Yes. Put the criteria in order in priorities.

What happens to an uncertified result?

The Actor returns an error row, omits the candidate recommendation, and does not charge the event.