alternative calculation