In a medium saucepan, bring 4 cups water to a boil; generously season with salt. Fill a large bowl with ice water.
Cook broccoli until fork-tender, 1 to 2 minutes. Using a slotted spoon, transfer to bowl of ice water. Let cool, then drain.
Transfer broccoli to a large bowl. Add carrots, onion, bacon, cranberries, and almonds.
In a medium bowl, whisk mayonnaise and vinegar; season with salt and pepper. Pour dressing over broccoli salad and stir to combine.
