DMN FEEL 1.6b1 expression tester - online evaluator / simulator / debugger
loading wasm module…
This FEEL interpreter runs entirely in your browser via WebAssembly, no data is transmitted to any server.
Open the full function reference with syntax, parameters and examples for every built-in, browse the FEEL language constructs (if, for, some/every, filters, ranges, unary tests), or the FEEL examples cheat sheet.
What is FEEL?
FEEL (Friendly Enough Expression Language) is the expression language defined by the OMG Decision Model and Notation (DMN) standard. It powers the conditions and outputs of DMN decision tables and literal expressions, and is executed by DMN decision engines and business rule platforms. FEEL is designed to be readable by business analysts while remaining precise enough for automated execution: it has first-class dates, times and durations, lists, contexts (structured records), ranges, and a rich built-in function library.
What is DMN?
Decision Model and Notation (DMN) is the OMG standard for modeling and automating business decisions:
credit scoring, pricing, eligibility checks, routing rules. Decisions are modeled as decision tables and
decision requirement diagrams; FEEL is the language used inside them. Decision table cells contain
unary tests, conditions like < 10, [1..10] or value lists that are matched
against the inputs. Because FEEL is a vendor-neutral OMG standard, expressions you test here run
unchanged on any conformant DMN decision engine or business rules platform. This tester evaluates the current
DMN 1.6 Beta 1 version of FEEL.
What is B-FEEL?
B-FEEL is the business-friendly dialect of FEEL introduced with DMN 1.6 (defined in chapter 11
of the specification). Standard FEEL propagates null through type errors, which can
make a whole decision collapse to null; B-FEEL instead substitutes type defaults and coerces
mixed-type arithmetic, so decisions keep producing usable values:
1 + null yields 1, "total: " + 5 yields
"total: 5", and 1/0 yields 0.
This tester evaluates both dialects; use the FEEL / B-FEEL toggle next to the expression input, or
browse every difference between FEEL and B-FEEL.
What is S-FEEL?
S-FEEL (Simple FEEL) is the restricted subset of FEEL the DMN standard defines for decision table
cells: literals, comparisons, ranges and simple arithmetic, without functions or contexts. Every valid
S-FEEL expression is also valid FEEL, so you can test S-FEEL conditions like [18..65) or
< 1000 here unchanged before putting them into a decision table.
How this evaluator works
Type any FEEL 1.6b1 expression and hit evaluate; the page works as a free FEEL playground / simulator. Vary the input context to simulate how an expression behaves before it goes into a decision table and experiment as much as you like: nothing is stored and nothing leaves your browser. The context editor below the expression supplies variables as a
FEEL context literal; the expression sees its entries as variables, so
customer.age * 2 works against {customer: {age: 34}}.
The interpreter is a Java-based FEEL interpreter compiled to WebAssembly with GraalVM, and the syntax
highlighting uses the interpreter's own lexer: what you see highlighted is exactly what gets parsed.
FAQ
What is a FEEL expression in DMN? (with example)
A FEEL expression is a formula written in DMN's expression language that computes a value from input data — used in decision table cells, literal expressions and boxed expressions. For example, if customer.age >= 18 and order.total > 100 then "discount" else "standard" returns "discount" for an adult customer with an order over 100. Decision table cells use the simpler S-FEEL subset: conditions like < 10, [18..65) or "gold","silver" matched against an input value. Paste any of these into the evaluator above to try them, or browse the FEEL examples cheat sheet.
What does FEEL stand for?
FEEL stands for Friendly Enough Expression Language. It is the expression language defined by the OMG Decision Model and Notation (DMN) standard, designed to be readable by business users while remaining precise enough for automated execution by decision engines.
Is my data sent to a server?
No. The FEEL evaluator runs entirely in your browser as a WebAssembly module. Expressions and context data never leave your machine.
Which FEEL version is supported?
FEEL as defined by OMG DMN 1.6 Beta 1, including the full built-in function library and temporal types. The interpreter also implements the business-friendly B-FEEL dialect (DMN chapter 11); the function library below shows where the two dialects differ.
Is this FEEL tester free?
Yes, free to use, no signup, no account, no limits.
What interpreter evaluates the expressions?
The Impulse FEEL interpreter developed by Nvaria GmbH, a Java Truffle based FEEL interpreter compiled to WebAssembly with Truffle/GraalVM. The syntax highlighting uses the same lexer as the evaluator, so it always matches the executed grammar.
Can I use these expressions in my DMN engine?
Yes. FEEL is a vendor-neutral OMG standard, so any conformant DMN decision engine or business rules platform executes the same expressions. Test and debug an expression here, then paste it into your decision table or literal expression. This evaluator supports FEEL 1.6 Beta 1; some newer language features may not yet be available in other FEEL interpreters.
What can I test with it?
Any FEEL expression: arithmetic, strings, lists, contexts, ranges, dates, times and durations, filters, if/for/some/every expressions, and all FEEL built-in functions. A context editor supplies variables to the expression. This evaluator supports FEEL 1.6 Beta 1; some newer language features may not yet be available in other FEEL interpreters.