A computer implemented method for determining reservoir properties and fracture properties in oil and/or gas wells for use by a user to evaluate and predict future production of the oil and/or gas wells, the method comprising: selecting a first flow rate model from a plurality of flow rate models for a well, the first flow rate model having at least one input parameter, wherein the input parameter represents reservoir data and comprises a value representing at least one of formation matrix permeability, hydraulic fracture permeability, and fracture length; providing reservoir data associated with a reservoir to the first flow rate model; providing production history data associated with the reservoir to the first flow rate model, wherein the production history data is data measured at the well while the well is in operation; computing a solution to the first flow rate model using an initial value for the input parameter; comparing the solution to the production history data; adjusting the input parameter and computing the solution to the first flow rate model using the adjusted input parameter, including iteratively adjusting the input parameter and computing the solution to the first flow rate model until the solution is within an error criteria; selecting a second flow rate model from the plurality of flow rate models for a well, wherein the second flow rate model is different from the first flow rate model, the second flow rate model having at least one input parameter, wherein the input parameter represents reservoir data and comprises a value representing at least one of formation matrix permeability, hydraulic fracture permeability, and fracture length; providing the reservoir data to the second flow rate model; providing the production history data to the second flow rate model; computing a solution to the second flow rate model using the input parameter; comparing the solution to the production history data; adjusting the input parameter and computing the solution to the second flow rate model using the adjusted input parameter, including iteratively adjusting the input parameter and computing the solution to the second flow rate model until the solution is within an error criteria; comparing the solution from the first model with the solution from the second model to determine which model most accurately tracks the production history data, wherein the comparing comprises statistically comparing the solution from the first model with the solution from the second model; and using the determined model to determine properties of the reservoir and to be used by a user to evaluate and predict the future production of the well. selecting a first flow rate model from a plurality of flow rate models for a well, the first flow rate model having at least one input parameter, wherein the input parameter represents reservoir data and comprises a value representing at least one of formation matrix permeability, hydraulic fracture permeability, and fracture length; providing reservoir data associated with a reservoir to the first flow rate model; providing production history data associated with the reservoir to the first flow rate model, wherein the production history data is data measured at the well while the well is in operation; computing a solution to the first flow rate model using an initial value for the input parameter; comparing the solution to the production history data; adjusting the input parameter and computing the solution to the first flow rate model using the adjusted input parameter, including iteratively adjusting the input parameter and computing the solution to the first flow rate model until the solution is within an error criteria; selecting a second flow rate model from the plurality of flow rate models for a well, wherein the second flow rate model is different from the first flow rate model, the second flow rate model having at least one input parameter, wherein the input parameter represents reservoir data and comprises a value representing at least one of formation matrix permeability, hydraulic fracture permeability, and fracture length; providing the reservoir data to the second flow rate model; providing the production history data to the second flow rate model; computing a solution to the second flow rate model using the input parameter; comparing the solution to the production history data; adjusting the input parameter and computing the solution to the second flow rate model using the adjusted input parameter, including iteratively adjusting the input parameter and computing the solution to the second flow rate model until the solution is within an error criteria; comparing the solution from the first model with the solution from the second model to determine which model most accurately tracks the production history data, wherein the comparing comprises statistically comparing the solution from the first model with the solution from the second model; and using the determined model to determine properties of the reservoir and to be used by a user to evaluate and predict the future production of the well.