About DTRules

A production-proven decision table rules engine with two decades of real-world use.

History

DTRules was created by Paul Snow to address the challenge of implementing complex business rules in a way that policy experts could understand and validate. Traditional approaches using if-else statements quickly become unmaintainable as business logic grows in complexity.

The solution was decision tables - a tabular representation of business rules that's been used in software engineering since the 1960s. DTRules brings this proven approach into the modern era with Excel-based authoring, a human-readable domain-specific language, and high-performance execution.

Over the years, DTRules has been used in production systems handling millions of eligibility determinations, including:

  • Texas TIERS - Texas Integrated Eligibility Redesign System
  • Ohio OFAST - Ohio Family Assistance State Tracking
  • Commercial insurance eligibility systems
  • Business logic applications across various industries

In 2024, a high-performance Go implementation was added, providing 130x faster operator lookup and a modern REST API for the new visual UI.

License

DTRules is released under the Apache License, Version 2.0.

This permissive license allows you to:

  • Use DTRules for commercial and non-commercial purposes
  • Modify and distribute the source code
  • Include DTRules in proprietary software
  • Use DTRules without royalty fees

The only requirements are that you include the license notice and disclaimer in any distribution.

Read the full license

Contributing

Contributions to DTRules are welcome. Whether you're fixing bugs, adding features, improving documentation, or reporting issues, your help is appreciated.

How to Contribute

  1. Fork the repository on GitHub
  2. Create a feature branch for your changes
  3. Make your changes with appropriate tests
  4. Ensure all tests pass (mvn test for Java, go test ./... for Go)
  5. Submit a pull request

Reporting Issues

Found a bug or have a feature request? Please open an issue on GitHub with:

  • A clear description of the issue or feature
  • Steps to reproduce (for bugs)
  • Expected vs actual behavior
  • Your environment details (OS, Java/Go version)
Open an issue

Copyright 2004-2026 DTRules.com

DTRules is a trademark of DTRules.com