In a large skillet or Dutch oven over medium heat, cook the bacon until crisp. Transfer the bacon to a paper towel-lined plate, drain off most of the bacon drippings, leaving about 1 tablespoon in the pan.
Add the diced onion to the bacon drippings and cook for 10 minutes, stirring occasionally, until softened.
Stir in the ketchup, BBQ sauce, yellow mustard, Worcestershire sauce, apple cider vinegar, brown sugar, molasses, smoked paprika, garlic powder, salt, pepper, and water. Stir until the brown sugar has dissolved and the sauce is smooth.
Gently fold in the drained beans and the crumbled cooked bacon. Stir until everything is evenly coated.
Bring the mixture to a gentle simmer over medium-low heat. Reduce the heat to low and cook for 25-30 minutes, uncovered, stirring every 5 minutes. The sauce should be bubbling gently, not a hard boil.
If the sauce becomes thicker than you'd like, stir in another 2-4 tablespoons of water. If you want it thicker, simmer a few minutes longer.
Remove from the heat and let the beans rest for 10 minutes before serving.