"but I typically dont measure the first runnings, end runnings or preboil gravity?"
That would be a good place to start to make it more accurate.
For mash efficiency you need estimated preboil to match the actual preboil. Do that by adjusting the estimated brewhouse until the estimate matches what you got. Then your estimated mash efficiency and actual mash efficiency will be very close.
That shouldn't change that much unless you change something you do while mashing.
IMO Brewhouse efficiencies change too much for a homebrewer, boil off changes with the weather, trub amounts change with recipes that are rarely brewed twice, equipment tweaks are always going on, etc.
So at best you can hope for there is a good estimate by the law of averages. You get those averages by adjusting your equipment settings to match your actual readings over time.
Measure your boil off, trub loss, cooling shrinkage on all your batches until you have a good average of what goes on in your "brewhouse". Put that into your equipment settings.
Once you do that BeerSmith should do a good job of estimating your gravities and batch sizes. Until then you're guessing so it's guessing.