I validated the inputs by working backward from actual Lender Term Sheets. I looked at what lenders contractually require to underwrite a deal (like Origination Points or strict LTC caps). If a variable was a "deal-breaker" for funding, I made it a primary input; everything else got tucked into "Advanced" settings to keep the UI clean.
Good luck with InvestBot!
For us the closest analog to "deal-breaker variables" are things like: - max drawdown thresholds - concentration caps - volatility ceilings - event gating (earnings, macro events)
Those are the points where a normal investor violates their own process under stress, so we surface them as primary controls. Things like turnover or sector caps end up in “Advanced” for the same UX reason you mentioned.
Curious - did you iterate on how much to hide in Advanced vs surface by default, or did the term sheet mapping give you a clean partition from the start?