local p = -- Define a variable to hold externally accessible functions
-- Function to calculate CAGRfunction p.calculate_cagr(frame) local start_date = frame.args[1] -- Start date in YYYY-MM-DD format local end_date = frame.args[2] -- End date in YYYY-MM-DD format local initial_value = tonumber(frame.args[3]) -- Initial value local final_value = tonumber(frame.args[4]) -- Final value
-- Convert dates to timestamps local start_timestamp = os.time local end_timestamp = os.time -- Calculate duration in years local duration_years = (end_timestamp - start_timestamp) / (60 * 60 * 24 * 365) -- If duration is less than one year, return error message if duration_years < 1 then return "Error: Duration less than one year" end -- Calculate CAGR local cagr = (final_value / initial_value)^(1 / duration_years) - 1 return string.format("CAGR: %.2f%%", cagr * 100)end
return p -- Return the variable containing the functions