DTRules

A powerful Decision Table Rules Engine that lets business analysts and policy experts define complex logic in readable, maintainable spreadsheets.

Production-ready
Java & Go implementations
130x faster operator lookup (Go)

Why DTRules?

Define complex business logic in spreadsheets that both policy experts and developers can understand.

Decision Tables

Create condition-action matrices in Excel. Each column represents a rule that's easy to read and validate.

Entity Data Dictionary

Define your data model in Excel with entities, attributes, and relationships. Auto-maps to Java objects.

Domain Specific Language

Write conditions and actions in EL (Expression Language) - readable syntax that policy experts can validate.

High Performance

Go implementation with 130x faster operator lookup and zero-allocation hot paths for production workloads.

Visual Tree View

Visualize decision table dependencies and execution flow as interactive tree diagrams.

Production Proven

Used in state welfare systems (Texas TIERS, Ohio OFAST) and insurance eligibility determination.

Built for Complex Logic

When business rules are too complex for if-else statements and too dynamic for hardcoded logic.

Eligibility Determination

  • Health insurance eligibility (CHIP)
  • Welfare/assistance programs
  • Benefits calculation
  • Policy compliance checking

Business Logic

  • Pricing and discount rules
  • Approval workflows
  • Risk assessment
  • Regulatory compliance

Two Implementations

Choose the right implementation for your stack. Both share the same XML format.

Java
Original Implementation

Production-Ready Core

  • Excel-to-XML compilers
  • Full IDE and debugging support
  • Comprehensive test harness
  • Java 8+ compatible
Get Started with Java
Go
High-Performance Runtime

Optimized Execution

  • 130x faster operator lookup
  • 24x faster arithmetic operations
  • Zero-allocation hot paths
  • REST API for the visual UI
Get Started with Go

Ready to get started?

Try the interactive demo, read the documentation, or dive into the code on GitHub.