The fact is that it's just a best guess that you'll never know how accurate you were until you sell the property in the future. You could own a building several years without making any capital improvements, or you could need to on day 1. Also using a percentage of revenue is inherently flawed, I assure you that whoever you have doing your maintenance or improvements will not base their pricing on what you receive in rent.
That said I understand that some we need to have some convenient way of budgeting for these expenses. I typically use a certain $ per unit per month for capex, remember this is to cover the cost of major improvements, so you can estimate the costs to replace major systems and divide that by expected life span as a methodical approach to come up with something. Think furnace, water heaters, kitchen cabinets, roof, siding, driveways, etc. etc... For budgeting, the current age of the systems does not technically matter since they'll eventually need replacement even though that may be years down the road. But say a $10k heating system that should last 25 years (300 months), that alone is $33.33 per month ($10,000/300), even if it was just replaced yesterday since it will need to be replaced again in 300 months. Improvements tend to come in waves, though as you add units you'll find that those waves somewhat smooth out.
For maintenance I start with 8.3% of rent (I know, flawed) and then make some adjustments based on the size of the units (which, conveniently, somewhat correlates to rent assuming all else being similar) and overall condition of the units. For what it's worth, over the years this has tended to be on the conservative side, and I hire out my maintenance via my PM. Hopefully I didn't just jinx myself
Vacancy really depends on your market.