add calculate_post function