{"record":{"id":"d73e8e5726b6ee66","repo":"HKUDS/Vibe-Trading","slug":"comps-equity-value-from-enterprise-value-enterpri","errorCode":null,"errorMessage":"comps.equity_value_from_enterprise_value: enterprise_value must be a finite number, got {enterprise_value!r}","messagePattern":"comps\\.equity_value_from_enterprise_value: enterprise_value must be a finite number, got (.+?)","errorType":"exception","errorClass":"ValuationError","httpStatus":null,"severity":"error","filePath":"agent/src/quantlib/valuation/comps.py","lineNumber":568,"sourceCode":"        MissingInputError: If `enterprise_value`, `total_debt` or\n            `cash_and_equivalents` is absent.\n        ValuationError: If `enterprise_value` or any supplied bridge line is\n            not a finite number.\n    \"\"\"\n    require_inputs(\n        {\n            \"enterprise_value\": enterprise_value,\n            \"total_debt\": total_debt,\n            \"cash_and_equivalents\": cash_and_equivalents,\n        },\n        (\"enterprise_value\", \"total_debt\", \"cash_and_equivalents\"),\n        \"comps.equity_value_from_enterprise_value\",\n    )\n    delta, omitted = _bridge_delta(\n        total_debt, cash_and_equivalents, minority_interest, preferred_stock, investments_in_associates\n    )\n    if not math.isfinite(enterprise_value):\n        raise ValuationError(\n            f\"comps.equity_value_from_enterprise_value: enterprise_value must be a \"\n            f\"finite number, got {enterprise_value!r}\"\n        )\n    equity = float(enterprise_value) - delta\n    return EVBridgeResult(\n        direction=\"ev_to_equity\",\n        equity_value=equity,\n        enterprise_value=float(enterprise_value),\n        total_debt=float(total_debt),\n        cash_and_equivalents=float(cash_and_equivalents),\n        minority_interest=minority_interest,\n        preferred_stock=preferred_stock,\n        investments_in_associates=investments_in_associates,\n        omitted_components=omitted,\n    )\n\n\ndef _require_name(name: str, model: str) -> str:","sourceCodeStart":550,"sourceCodeEnd":586,"githubUrl":"https://github.com/HKUDS/Vibe-Trading/blob/80ffdda44c5c4db0dd84d70e051cca591cea67df/agent/src/quantlib/valuation/comps.py#L550-L586","documentation":"equity_value_from_enterprise_value (EV -> equity direction) validates that the supplied enterprise_value is finite before subtracting the bridge delta, mirroring the market_cap check in the other direction.","triggerScenarios":"Calling equity_value_from_enterprise_value(enterprise_value=math.nan/inf), e.g. an EV read from a multiples model output that is NaN because a peer was excluded.","commonSituations":"Chaining models where an upstream step returned NaN (excluded peer) and the value is passed through without checking; spreadsheets importing blanks as NaN.","solutions":["Check the EV value for finiteness before the call; if NaN, skip or handle the excluded peer.","Trace upstream multiple/valuation code to see why EV is not finite.","Wrap chained model calls with a finite-value assertion between steps."],"exampleFix":"# before\nequity = equity_value_from_enterprise_value(peer_ev, ...)  # peer_ev is nan\n\n# after\nif peer_ev is None or not math.isfinite(peer_ev):\n    continue  # peer excluded from downstream use\n","handlingStrategy":"validation","validationCode":"if enterprise_value is None or not math.isfinite(enterprise_value):\n    continue  # excluded peer","typeGuard":null,"tryCatchPattern":"except ValuationError as e:\n    if 'enterprise_value must be a' in str(e):\n        continue","preventionTips":["Assert finiteness between chained model steps","Handle upstream exclusions before passing values through"],"tags":["valuation","enterprise-value","nan"],"backgroundTag":"nan-input-validation","analyzedSha":"80ffdda44c5c4db0dd84d70e051cca591cea67df","analyzedAt":"2026-08-28T12:46:38.989Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}