public void GetIndependentEfcProfile_ThreeMonthsEnrollment_Calculated()
        {
            var args = new IndependentEfcCalculatorArguments
            {
                Student = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 60000
                },
                Spouse = null,
                AdjustedGrossIncome      = 60000,
                AreTaxFilers             = true,
                IncomeTaxPaid            = 6000,
                UntaxedIncomeAndBenefits = 1000,
                AdditionalFinancialInfo  = 200,
                CashSavingsCheckings     = 80000,
                InvestmentNetWorth       = 5000,
                BusinessFarmNetWorth     = 0,
                HasDependents            = false,
                MaritalStatus            = MaritalStatus.SingleSeparatedDivorced,
                StateOfResidency         = UnitedStatesStateOrTerritory.Alabama,
                NumberInHousehold        = 1,
                NumberInCollege          = 1,
                Age = 25,
                MonthsOfEnrollment = 3
            };

            EfcProfile profile = _efcCalculator.GetIndependentEfcProfile(args);

            Assert.AreEqual(12060, profile.ExpectedFamilyContribution);
        }
        public void GetIndependentEfcProfile_DifferentSpouseIncome_Calculated()
        {
            var args = new IndependentEfcCalculatorArguments
            {
                Student = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 600000
                },
                Spouse = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 900000
                },
                AdjustedGrossIncome      = 1200000,
                AreTaxFilers             = true,
                IncomeTaxPaid            = 6000,
                UntaxedIncomeAndBenefits = 10000,
                AdditionalFinancialInfo  = 2000,
                CashSavingsCheckings     = 100000,
                InvestmentNetWorth       = 8000,
                BusinessFarmNetWorth     = 350000,
                HasDependents            = true,
                MaritalStatus            = MaritalStatus.MarriedRemarried,
                StateOfResidency         = UnitedStatesStateOrTerritory.Alaska,
                NumberInHousehold        = 20,
                NumberInCollege          = 10,
                Age = 30,
                MonthsOfEnrollment = 9
            };

            EfcProfile profile = _efcCalculator.GetIndependentEfcProfile(args);

            Assert.AreEqual(48706, profile.ExpectedFamilyContribution);
        }
        public void GetIndependentEfcProfile_HasDependentsLowValues_Calculated()
        {
            var args = new IndependentEfcCalculatorArguments
            {
                Student = new HouseholdMember
                {
                    IsWorking  = false,
                    WorkIncome = 0
                },
                Spouse = new HouseholdMember
                {
                    IsWorking  = false,
                    WorkIncome = 0
                },
                AdjustedGrossIncome      = 0,
                AreTaxFilers             = false,
                IncomeTaxPaid            = 0,
                UntaxedIncomeAndBenefits = 10000,
                AdditionalFinancialInfo  = 0,
                CashSavingsCheckings     = 0,
                InvestmentNetWorth       = 0,
                BusinessFarmNetWorth     = 0,
                HasDependents            = true,
                MaritalStatus            = MaritalStatus.MarriedRemarried,
                StateOfResidency         = UnitedStatesStateOrTerritory.AmericanSamoa,
                NumberInHousehold        = 3,
                NumberInCollege          = 1,
                Age = 25,
                MonthsOfEnrollment = 9
            };

            EfcProfile profile = _efcCalculator.GetIndependentEfcProfile(args);

            Assert.AreEqual(0, profile.ExpectedFamilyContribution);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                // Collect user input
                RawIndependentEfcCalculatorArguments rawArgs = new RawIndependentEfcCalculatorArguments();

                rawArgs.StudentAge       = inputStudentAge.Text;
                rawArgs.MaritalStatus    = inputMaritalStatus.SelectedValue;
                rawArgs.StateOfResidency = inputStateOfResidency.SelectedValue;

                rawArgs.IsStudentWorking  = inputStudentWorking.SelectedValue;
                rawArgs.StudentWorkIncome = inputStudentWorkIncome.Text;
                rawArgs.IsSpouseWorking   = inputSpouseWorking.SelectedValue;
                rawArgs.SpouseWorkIncome  = inputSpouseWorkIncome.Text;

                rawArgs.StudentAgi        = inputStudentAgi.Text;
                rawArgs.IsStudentTaxFiler = inputStudentTaxFiler.SelectedValue;
                rawArgs.StudentIncomeTax  = inputStudentIncomeTax.Text;
                rawArgs.StudentUntaxedIncomeAndBenefits = inputStudentUntaxedIncomeAndBenefits.Text;
                rawArgs.StudentAdditionalFinancialInfo  = inputStudentAdditionalFinancialInfo.Text;

                rawArgs.StudentCashSavingsChecking  = inputStudentCashSavingsChecking.Text;
                rawArgs.StudentInvestmentNetWorth   = inputStudentInvestmentNetWorth.Text;
                rawArgs.StudentBusinessFarmNetWorth = inputStudentBusinessFarmNetWorth.Text;

                rawArgs.HasDependents     = inputHasDependents.SelectedValue;
                rawArgs.NumberInHousehold = inputNumberInHousehold.Text;
                rawArgs.NumberInCollege   = inputNumberInCollege.Text;

                rawArgs.MonthsOfEnrollment       = "9";
                rawArgs.IsQualifiedForSimplified = "false";

                // Validate user input
                AidEstimationValidator            validator = new AidEstimationValidator();
                IndependentEfcCalculatorArguments args      = validator.ValidateIndependentEfcCalculatorArguments(rawArgs);

                // If validation fails, display errors
                if (validator.Errors.Count > 0)
                {
                    errorList.DataSource = validator.Errors;
                    errorList.DataBind();
                    return;
                }

                // Calculate
                EfcCalculator calculator = EfcCalculatorConfigurationManager.GetEfcCalculator("2122");
                EfcProfile    profile    = calculator.GetIndependentEfcProfile(args);

                // Display Results
                formPlaceholder.Visible               = false;
                resultsPlaceholder.Visible            = true;
                studentContributionOutput.Text        = profile.StudentContribution.ToString();
                expectedFamilyContributionOutput.Text = profile.ExpectedFamilyContribution.ToString();
            }
        }
        public void GetDependentEfcProfile_ZeroNumberInCollege_ZeroEfc()
        {
            DependentEfcCalculatorArguments args = new DependentEfcCalculatorArguments
            {
                NumberInCollege = 0,
                Student         = new HouseholdMember()
            };

            EfcProfile result = _efcCalculator.GetDependentEfcProfile(args);

            Assert.AreEqual(0, result.ExpectedFamilyContribution);
        }
        public void GetIndependentEfcProfile_NoStudent_ZeroEfc()
        {
            IndependentEfcCalculatorArguments args = new IndependentEfcCalculatorArguments
            {
                NumberInCollege = 3,
                Student         = null
            };

            EfcProfile result = _efcCalculator.GetIndependentEfcProfile(args);

            Assert.AreEqual(0, result.ExpectedFamilyContribution);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                // Collect user input
                RawSimpleDependentEfcCalculatorArguments rawArgs = new RawSimpleDependentEfcCalculatorArguments();

                rawArgs.MaritalStatus    = inputMaritalStatus.SelectedValue;
                rawArgs.StateOfResidency = inputStateOfResidency.SelectedValue;

                rawArgs.ParentIncome         = inputParentIncome.Text;
                rawArgs.ParentOtherIncome    = inputParentOtherIncome.Text;
                rawArgs.ParentIncomeEarnedBy = inputParentIncomeEarnedBy.SelectedValue;
                rawArgs.ParentIncomeTax      = inputParentIncomeTax.Text;
                rawArgs.ParentAssets         = inputParentAssets.Text;

                rawArgs.StudentIncome      = inputStudentIncome.Text;
                rawArgs.StudentOtherIncome = inputStudentOtherIncome.Text;
                rawArgs.StudentIncomeTax   = inputStudentIncomeTax.Text;
                rawArgs.StudentAssets      = inputStudentAssets.Text;

                rawArgs.NumberInCollege   = inputNumberInCollege.Text;
                rawArgs.NumberInHousehold = inputNumberInHousehold.Text;

                // Validate user input
                AidEstimationValidator          validator = new AidEstimationValidator();
                DependentEfcCalculatorArguments args      = validator.ValidateSimpleDependentEfcCalculatorArguments(rawArgs);

                // If validation fails, display errors
                if (validator.Errors.Any())
                {
                    errorList.DataSource = validator.Errors;
                    errorList.DataBind();
                    return;
                }

                // Calculate
                EfcCalculator calculator = EfcCalculatorConfigurationManager.GetEfcCalculator("2021");
                EfcProfile    profile    = calculator.GetDependentEfcProfile(args);

                // Display Results
                formPlaceholder.Visible               = false;
                resultsPlaceholder.Visible            = true;
                studentContributionOutput.Text        = profile.StudentContribution.ToString();
                parentContributionOutput.Text         = profile.ParentContribution.ToString();
                expectedFamilyContributionOutput.Text = profile.ExpectedFamilyContribution.ToString();
            }
        }
        public void GetDependentEfcProfile_AutoZero_Calculated()
        {
            DependentEfcCalculatorArguments args = new DependentEfcCalculatorArguments
            {
                FirstParent = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 11500
                },
                SecondParent = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 11500
                },
                Student = new HouseholdMember
                {
                    IsWorking  = false,
                    WorkIncome = 0
                },
                ParentAdjustedGrossIncome      = 32000,
                AreParentsTaxFilers            = false,
                ParentIncomeTaxPaid            = 0,
                ParentUntaxedIncomeAndBenefits = 0,
                ParentAdditionalFinancialInfo  = 0,
                StudentAdjustedGrossIncome     = 0,
                IsStudentTaxFiler               = false,
                StudentIncomeTaxPaid            = 0,
                StudentUntaxedIncomeAndBenefits = 0,
                StudentAdditionalFinancialInfo  = 0,
                ParentCashSavingsChecking       = 123456789,
                ParentInvestmentNetWorth        = 123456789,
                ParentBusinessFarmNetWorth      = 123456789,
                StudentCashSavingsChecking      = 123456789,
                StudentInvestmentNetWorth       = 123456789,
                MaritalStatus            = MaritalStatus.MarriedRemarried,
                StateOfResidency         = UnitedStatesStateOrTerritory.California,
                NumberInHousehold        = 3,
                NumberInCollege          = 1,
                OldestParentAge          = 30,
                IsQualifiedForSimplified = true,
                MonthsOfEnrollment       = 9
            };

            EfcProfile profile = _efcCalculator.GetDependentEfcProfile(args);

            Assert.AreEqual(0, profile.ExpectedFamilyContribution);
        }
        public void GetDependentEfcProfile_HighValues_Calculated()
        {
            DependentEfcCalculatorArguments args = new DependentEfcCalculatorArguments
            {
                FirstParent = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 600000
                },
                SecondParent = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 600000
                },
                Student = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 20000
                },
                ParentAdjustedGrossIncome      = 1200000,
                AreParentsTaxFilers            = true,
                ParentIncomeTaxPaid            = 120000,
                ParentUntaxedIncomeAndBenefits = 10000,
                ParentAdditionalFinancialInfo  = 2000,
                StudentAdjustedGrossIncome     = 20000,
                IsStudentTaxFiler               = true,
                StudentIncomeTaxPaid            = 2000,
                StudentUntaxedIncomeAndBenefits = 0,
                StudentAdditionalFinancialInfo  = 0,
                ParentCashSavingsChecking       = 100000,
                ParentInvestmentNetWorth        = 8000,
                ParentBusinessFarmNetWorth      = 9000,
                StudentCashSavingsChecking      = 6000,
                StudentInvestmentNetWorth       = 1000,
                MaritalStatus      = MaritalStatus.MarriedRemarried,
                StateOfResidency   = UnitedStatesStateOrTerritory.California,
                NumberInHousehold  = 20,
                NumberInCollege    = 10,
                OldestParentAge    = 45,
                MonthsOfEnrollment = 9
            };

            EfcProfile profile = _efcCalculator.GetDependentEfcProfile(args);

            Assert.AreEqual(46943, profile.ExpectedFamilyContribution);
        }
        public void GetDependentEfcProfile_TwelveMonthsEnrollment_Calculated()
        {
            DependentEfcCalculatorArguments args = new DependentEfcCalculatorArguments
            {
                FirstParent  = null,
                SecondParent = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 60000
                },
                Student = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 10000
                },
                ParentAdjustedGrossIncome      = 60000,
                AreParentsTaxFilers            = true,
                ParentIncomeTaxPaid            = 6000,
                ParentUntaxedIncomeAndBenefits = 1000,
                ParentAdditionalFinancialInfo  = 200,
                StudentAdjustedGrossIncome     = 10000,
                IsStudentTaxFiler               = true,
                StudentIncomeTaxPaid            = 1000,
                StudentUntaxedIncomeAndBenefits = 0,
                StudentAdditionalFinancialInfo  = 0,
                ParentCashSavingsChecking       = 80000,
                ParentInvestmentNetWorth        = 5000,
                ParentBusinessFarmNetWorth      = 0,
                StudentCashSavingsChecking      = 3000,
                StudentInvestmentNetWorth       = 0,
                MaritalStatus      = MaritalStatus.SingleSeparatedDivorced,
                StateOfResidency   = UnitedStatesStateOrTerritory.California,
                NumberInHousehold  = 3,
                NumberInCollege    = 1,
                OldestParentAge    = 45,
                MonthsOfEnrollment = 12
            };

            EfcProfile profile = _efcCalculator.GetDependentEfcProfile(args);

            Assert.AreEqual(7423, profile.ParentContribution);
            Assert.AreEqual(998, profile.StudentContribution);
        }
        public void GetIndependentEfcProfile_SimplifiedHighAssets_Calculated()
        {
            var args = new IndependentEfcCalculatorArguments
            {
                Student = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 25000
                },
                Spouse = new HouseholdMember
                {
                    IsWorking  = true,
                    WorkIncome = 24999
                },
                AdjustedGrossIncome      = 49999,
                AreTaxFilers             = false,
                IncomeTaxPaid            = 6000,
                UntaxedIncomeAndBenefits = 0,
                AdditionalFinancialInfo  = 0,
                CashSavingsCheckings     = 123456789,
                InvestmentNetWorth       = 123456789,
                BusinessFarmNetWorth     = 350000,
                HasDependents            = true,
                MaritalStatus            = MaritalStatus.MarriedRemarried,
                StateOfResidency         = UnitedStatesStateOrTerritory.Alaska,
                NumberInHousehold        = 3,
                NumberInCollege          = 1,
                Age = 30,
                IsQualifiedForSimplified = true,
                MonthsOfEnrollment       = 9
            };

            EfcProfile profile = _efcCalculator.GetIndependentEfcProfile(args);

            Assert.AreEqual(467, profile.ExpectedFamilyContribution);
        }
        public IActionResult Estimate(int NumberInHousehold, int NumberInCollege, string StateOfResidency, string Housing, int StudentAge, string MaritalStatus,
                                      bool StudentWorking, decimal StudentWorkIncome, bool StudentTaxFiler, decimal StudentAgi, bool StudentDependents,
                                      decimal StudentIncomeTax, decimal StudentUntaxedIncomeAndBenefits, decimal StudentAdditionalFinancialInfo, decimal StudentCashSavingsChecking,
                                      decimal StudentInvestmentNetWorth, decimal StudentBusinessFarmNetWorth, bool SpouseWorking, decimal SpouseWorkIncome)
        {
            ViewData["Title"] = "Independent Estimate ";
            ViewData["EstimateHeaderText"] = "PLACEHOLDER Estimate Header Text";

            // Collect user input
            RawIndependentEfcCalculatorArguments rawArgs = new RawIndependentEfcCalculatorArguments();

            rawArgs.StudentAge        = StudentAge.ToString();
            rawArgs.MaritalStatus     = MaritalStatus;
            rawArgs.StateOfResidency  = StateOfResidency;
            rawArgs.IsStudentWorking  = StudentWorking.ToString();
            rawArgs.StudentWorkIncome = StudentWorkIncome.ToString();
            rawArgs.StudentAgi        = StudentAgi.ToString();
            rawArgs.IsStudentTaxFiler = StudentTaxFiler.ToString();
            rawArgs.StudentIncomeTax  = StudentIncomeTax.ToString();
            rawArgs.StudentUntaxedIncomeAndBenefits = StudentUntaxedIncomeAndBenefits.ToString();
            rawArgs.StudentAdditionalFinancialInfo  = StudentAdditionalFinancialInfo.ToString();
            rawArgs.StudentCashSavingsChecking      = StudentCashSavingsChecking.ToString();
            rawArgs.StudentInvestmentNetWorth       = StudentInvestmentNetWorth.ToString();
            rawArgs.StudentBusinessFarmNetWorth     = StudentBusinessFarmNetWorth.ToString();
            rawArgs.NumberInHousehold = NumberInHousehold.ToString();
            rawArgs.NumberInCollege   = NumberInCollege.ToString();
            rawArgs.IsSpouseWorking   = SpouseWorking.ToString();
            rawArgs.SpouseWorkIncome  = SpouseWorkIncome.ToString();
            rawArgs.HasDependents     = StudentDependents.ToString();

            rawArgs.MonthsOfEnrollment       = "9";
            rawArgs.IsQualifiedForSimplified = "false";

            // Validate user input
            AidEstimationValidator            validator = new AidEstimationValidator();
            IndependentEfcCalculatorArguments args      = validator.ValidateIndependentEfcCalculatorArguments(rawArgs);

            // If validation fails, display errors
            if (validator.Errors.Any())
            {
                string errors = "Errors found: <ul>";

                foreach (ValidationError err in validator.Errors)
                {
                    errors += "<li>" + err.Message + "</li>";
                }
                errors                += "</ul>";
                ViewData["Errors"]     = errors;
                ViewData["HeaderText"] = "PLACEHOLDER Header Text";

                Dictionary <string, string> FormValues = GetModelDictionary(NumberInHousehold, NumberInCollege, StateOfResidency, Housing, StudentAge, MaritalStatus,
                                                                            StudentWorking, StudentWorkIncome, StudentTaxFiler, StudentAgi, StudentDependents, StudentIncomeTax, StudentUntaxedIncomeAndBenefits, StudentAdditionalFinancialInfo,
                                                                            StudentCashSavingsChecking, StudentInvestmentNetWorth, StudentBusinessFarmNetWorth, SpouseWorking, SpouseWorkIncome);
                return(View("Index", FormValues));
            }
            else
            {
                ViewData["Errors"] = "";
                EfcCalculator             calculator   = EfcCalculatorConfigurationManager.GetEfcCalculator("1920", AppSettings.EfcCalculationConstants);
                EfcProfile                profile      = calculator.GetIndependentEfcProfile(args);
                CostOfAttendanceEstimator coaEstimator = CostOfAttendanceEstimatorConfigurationManager.GetCostOfAttendanceEstimator("1920", AppSettings.AidEstimationConstants);
                HousingOption             ho           = (HousingOption)Enum.Parse(typeof(HousingOption), Housing.ToString());
                CostOfAttendance          coa          = coaEstimator.GetCostOfAttendance(EducationLevel.Undergraduate, ho);

                double grantAward = 0;
                double selfHelp   = Math.Max(0, AppSettings.SelfHelpConstant - profile.ExpectedFamilyContribution);
                double maxCosts   = profile.ExpectedFamilyContribution + selfHelp + AppSettings.MaxLoanAmount;
                double subCosts   = Math.Min(maxCosts, coa.Total);
                string AY         = AppSettings.AidYear;

                if (StateOfResidency == "California")
                {
                    grantAward = coa.Total - subCosts;
                    ViewData["ShowOutOfState"] = false;
                }
                else
                {
                    grantAward = GetGrantAmount(AY, profile.ExpectedFamilyContribution, coa.Total + coa.OutOfStateFees);
                    ViewData["ShowOutOfState"] = true;
                }

                double parentLoan = Math.Max(0, coa.Total - grantAward - selfHelp);
                double netCosts   = coa.Total - grantAward;
                double totalCOA   = coa.Total;

                if (StateOfResidency != "California")
                {
                    parentLoan += coa.OutOfStateFees;
                    netCosts   += coa.OutOfStateFees;
                    totalCOA   += coa.OutOfStateFees;
                }

                Dictionary <string, string> EstimatedAwards = new Dictionary <string, string>();
                EstimatedAwards.Add("GrantAwards", grantAward.ToString("C0"));
                EstimatedAwards.Add("SelfHelp", selfHelp.ToString("C0"));
                EstimatedAwards.Add("ParentLoans", parentLoan.ToString("C0"));
                EstimatedAwards.Add("GrantAwardsPct", AppSettings.PercentageGrantIndependant);
                EstimatedAwards.Add("NetCost", Math.Max(0, netCosts).ToString("C0"));
                EstimatedAwards.Add("OutOfStateFee", coa.OutOfStateFees.ToString("C0"));
                EstimatedAwards.Add("TotalCOA", totalCOA.ToString("C0"));

                ViewData["EstimatedAwards"] = EstimatedAwards;

                var tuple = (EfcProfile : profile, CostOfAttendance : coa);
                return(View(tuple));
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                // Collect user input
                RawIndependentEfcCalculatorArguments rawArgs = new RawIndependentEfcCalculatorArguments();

                rawArgs.StudentAge       = inputStudentAge.Text;
                rawArgs.MaritalStatus    = inputMaritalStatus.SelectedValue;
                rawArgs.StateOfResidency = inputStateOfResidency.SelectedValue;

                rawArgs.IsStudentWorking  = inputStudentWorking.SelectedValue;
                rawArgs.StudentWorkIncome = inputStudentWorkIncome.Text;
                rawArgs.IsSpouseWorking   = inputSpouseWorking.SelectedValue;
                rawArgs.SpouseWorkIncome  = inputSpouseWorkIncome.Text;

                rawArgs.StudentAgi        = inputStudentAgi.Text;
                rawArgs.IsStudentTaxFiler = inputStudentTaxFiler.SelectedValue;
                rawArgs.StudentIncomeTax  = inputStudentIncomeTax.Text;
                rawArgs.StudentUntaxedIncomeAndBenefits = inputStudentUntaxedIncomeAndBenefits.Text;
                rawArgs.StudentAdditionalFinancialInfo  = inputStudentAdditionalFinancialInfo.Text;

                rawArgs.StudentCashSavingsChecking  = inputStudentCashSavingsChecking.Text;
                rawArgs.StudentInvestmentNetWorth   = inputStudentInvestmentNetWorth.Text;
                rawArgs.StudentBusinessFarmNetWorth = inputStudentBusinessFarmNetWorth.Text;

                rawArgs.HasDependents     = inputHasDependents.SelectedValue;
                rawArgs.NumberInHousehold = inputNumberInHousehold.Text;
                rawArgs.NumberInCollege   = inputNumberInCollege.Text;

                rawArgs.MonthsOfEnrollment       = "9";
                rawArgs.IsQualifiedForSimplified = "false";

                // Validate user input
                AidEstimationValidator            validator = new AidEstimationValidator();
                IndependentEfcCalculatorArguments args      = validator.ValidateIndependentEfcCalculatorArguments(rawArgs);

                // If validation fails, display errors
                if (validator.Errors.Any())
                {
                    errorList.DataSource = validator.Errors;
                    errorList.DataBind();
                    return;
                }

                // Calculate
                EfcCalculator calculator = EfcCalculatorConfigurationManager.GetEfcCalculator("2021");
                EfcProfile    profile    = calculator.GetIndependentEfcProfile(args);

                // Display Results
                formPlaceholder.Visible               = false;
                resultsPlaceholder.Visible            = true;
                studentContributionOutput.Text        = profile.StudentContribution.ToString("C0");
                expectedFamilyContributionOutput.Text = profile.ExpectedFamilyContribution.ToString("C0");

                CostOfAttendanceEstimator coaEstimator = CostOfAttendanceEstimatorConfigurationManager.GetCostOfAttendanceEstimator("2021");
                CostOfAttendance          coa          = coaEstimator.GetCostOfAttendance(EducationLevel.Undergraduate, (HousingOption)Enum.Parse(typeof(HousingOption), inputHousing.SelectedValue));

                tuitionFeesOutput.Text     = coa.Items[0].Value.ToString("C0");
                roomBoardOutput.Text       = coa.Items[1].Value.ToString("C0");
                booksSuppliesOutput.Text   = coa.Items[2].Value.ToString("C0");
                otherExpensesOutput.Text   = coa.Items[3].Value.ToString("C0");
                healthInsuranceOutput.Text = coa.Items[4].Value.ToString("C0");
                totalCostOutput.Text       = coa.Total.ToString("C0");

                grantAwardOutput.Text       = "$99,999"; // placeholder
                selfHelpAwardOutput.Text    = "$99,999"; // placeholder
                familyHelpAwardOutput.Text  = "$99,999"; // placeholder
                estimatedGrantOutput.Text   = "$99,999"; // placeholder
                estimatedNetCostOutput.Text = "$99,999"; // placeholder

                percentageGrantOutput.Text = ConfigurationManager.AppSettings["PercentageGrant.Independent.1920"];
            }
            else
            {
                //Enable client-side validators where no default value is defined
                inputStudentAge.Attributes.Add("onblur",
                                               "ValidatorValidate(document.getElementById('" + inputStudentAge.ClientID + "').Validators[0]);");
                inputSpouseWorkIncome.Attributes.Add("onblur",
                                                     "ValidatorValidate(document.getElementById('" + inputSpouseWorkIncome.ClientID + "').Validators[0]);");
                inputStudentWorkIncome.Attributes.Add("onblur",
                                                      "ValidatorValidate(document.getElementById('" + inputStudentWorkIncome.ClientID + "').Validators[0]);");

                // enable or disable validators linked to radio button lists
                inputStudentWorking.Items[0].Attributes.Add("onclick", "ValidatorEnable(document.getElementById('" + inputStudentWorkIncome.ClientID + "').Validators[0], true); ");
                inputStudentWorking.Items[1].Attributes.Add("onclick", "ValidatorEnable(document.getElementById('" + inputStudentWorkIncome.ClientID + "').Validators[0], false); ");
                inputSpouseWorking.Items[0].Attributes.Add("onclick", "ValidatorEnable(document.getElementById('" + inputSpouseWorkIncome.ClientID + "').Validators[0], true); ");
                inputSpouseWorking.Items[1].Attributes.Add("onclick", "ValidatorEnable(document.getElementById('" + inputSpouseWorkIncome.ClientID + "').Validators[0], false); ");
                inputStudentTaxFiler.Items[0].Attributes.Add("onclick", "ValidatorEnable(document.getElementById('" + inputStudentAgi.ClientID + "').Validators[0], true); ValidatorEnable(document.getElementById('" + inputStudentIncomeTax.ClientID + "').Validators[0], true);");
                inputStudentTaxFiler.Items[1].Attributes.Add("onclick", "ValidatorEnable(document.getElementById('" + inputStudentAgi.ClientID + "').Validators[0], false); ValidatorEnable(document.getElementById('" + inputStudentIncomeTax.ClientID + "').Validators[0], false);");
            }
        }