DynamicGlidepathResult: {
    finalBalance: number;
    totalContributions: number;
    totalInterestEarned: number;
    totalMonths: number;
    startAge: number;
    endAge: number;
    glidepathMode: GlidepathMode;
    monthlyTimeline: MonthlyTimelineEntry[];
    effectiveAnnualReturn: number;
    averageMonthlyReturn: number;
}

Comprehensive result object returned by the dynamic glidepath method. Contains final calculations, metadata, timeline data, and summary statistics.

Type declaration

  • finalBalance: number

    Total account balance at the end of the simulation period. Rounded to the nearest cent for precision.

  • totalContributions: number

    Sum of all monthly contributions made during the simulation period.

  • totalInterestEarned: number

    Total interest earned through compound growth during the simulation period.

  • totalMonths: number

    Total number of months simulated. Calculated as Math.ceil((endAge - startAge) * 12)

  • startAge: number

    Starting age from the input parameters.

  • endAge: number

    Ending age from the input parameters.

  • glidepathMode: GlidepathMode

    The glidepath mode that was used for this calculation.

  • monthlyTimeline: MonthlyTimelineEntry[]

    Detailed month-by-month timeline data. Each entry represents the state at the end of that month. Useful for creating charts and detailed analysis.

  • effectiveAnnualReturn: number

    Effective compound annual growth rate over the entire simulation period. Calculated as (finalBalance / initialBalance)^(1/years) - 1

  • averageMonthlyReturn: number

    Average monthly return rate across all months in the simulation. Simple arithmetic mean of all monthly return rates used.

Example

const result: DynamicGlidepathResult = calculator.getCompoundInterestWithDynamicGlidepath(
25000, 1000, 30, 65, config
);

console.log(`Final balance: $${result.finalBalance.toLocaleString()}`);
console.log(`Total months: ${result.totalMonths}`);
console.log(`Effective annual return: ${(result.effectiveAnnualReturn * 100).toFixed(2)}%`);

Generated using TypeDoc