1. A method for making a decision, comprising: (a) receiving a request from an application for a decision; (b) setting a first row of a decision table to a current row, the decision table having a plurality of rows and columns, each column listing required fact values for a corresponding fact of a plurality of facts and each row having a corresponding conclusion; (c) setting a first column of the decision table to a current column; (d) determining a fact value corresponding to the current column; (e) determining whether the determined fact value matches the required fact value in the current column and current row of the decision table; (f) if the determined fact value does not match the required fact value in the current column and current row, setting a next row of the decision table to the current row and returning to (e); (g) if the determined fact value does match the required fact value in the current column and current row, determining whether a next column is present in the decision table; (h) if a next column is not present in the decision table, proceeding to (m); (i) setting the next column of the decision table to the current column; (j) determining whether a fact value is required for the current column; (k) if a fact value is not required for the current column, determining whether a next column is present in the decision table and returning to (h); (l) if a fact value is required for the current column, returning to (d); (m) selecting the conclusion corresponding to the current row; and (n) transmitting the conclusion to the requesting application as the decision.