Part-Time vs. Full-Time Job: Income & Budget Comparison
- Income Details
- Taxes & Deductions
- Monthly Expenses
- Comparison Summary
Step 1: Enter Job Income Details
Full-Time Job
Gross Weekly: $0.00
Gross Monthly: $0.00
Gross Annual: $0.00
Part-Time Job
Gross Weekly: $0.00
Gross Monthly: $0.00
Gross Annual: $0.00
Step 2: Estimate Taxes & Fixed Deductions
Full-Time Job
Part-Time Job
Step 3: Estimate Common Monthly Expenses
These expenses are assumed to be common unless specified otherwise below.
Job-Specific Monthly Costs
Step 4: Comparison Summary & Report
Please fill in details in the previous tabs to see the comparison.
Avg. Tax Rate: ${getNumVal(ptTaxRateEl).toFixed(1)}%
`; inputsSummaryHtml += `Monthly Deductions: $${getNumVal(ptDeductionsMonthlyEl).toFixed(2)}
`; inputsSummaryHtml += 'Common Monthly Expenses
'; inputsSummaryHtml += `Housing: $${getNumVal(expHousingEl).toFixed(2)}, Utilities: $${getNumVal(expUtilitiesEl).toFixed(2)}, Transport: $${getNumVal(expTransportEl).toFixed(2)}, Food: $${getNumVal(expFoodEl).toFixed(2)}
`; inputsSummaryHtml += `Healthcare: $${getNumVal(expHealthcareEl).toFixed(2)}, Personal: $${getNumVal(expPersonalEl).toFixed(2)}, Debt: $${getNumVal(expDebtEl).toFixed(2)}, Savings Target: $${getNumVal(expSavingsEl).toFixed(2)}
`; inputsSummaryHtml += 'Job-Specific Monthly Costs
'; inputsSummaryHtml += `FT Specific: $${getNumVal(expFtSpecificEl).toFixed(2)}, PT Specific: $${getNumVal(expPtSpecificEl).toFixed(2)}
`; inputsSummaryHtml += ''; const summaryContent = summaryOutputEl.innerHTML; // Get the already formatted table const date = new Date(); const dateString = date.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }); const generatedDate = document.createElement('p'); generatedDate.innerHTML = `Report generated on: ${dateString}
`; printSection.innerHTML = ''; // Clear previous printSection.appendChild(toolTitle); printSection.appendChild(generatedDate); const inputsDiv = document.createElement('div'); inputsDiv.innerHTML = inputsSummaryHtml; printSection.appendChild(inputsDiv); const summaryDiv = document.createElement('div'); summaryDiv.innerHTML = summaryContent; printSection.appendChild(summaryDiv); window.print(); }); // --- Initialization --- updateFtIncomeTypeDisplay(); // Set initial FT income display showTab(0); // Show the first tab calculateAndDisplayAll(); // Initial calculation based on default values });
