{"slug":"www-u2a-com-au-api-mcp-portfolio-attribution-f86509","title":"Deterministic portfolio performance attribution vs BTC, ETH, stETH or any benchm","host":"www.u2a.com.au","method":"POST","resource":"https://www.u2a.com.au/api/mcp/portfolio-attribution","category":"other","description":"Deterministic portfolio performance attribution vs BTC, ETH, stETH or any benchmark. Returns Modified Dietz and money-weighted (XIRR) returns, per-position contribution and alpha, per-input source status and per-position data status with the reason, and a hashed (optionally EIP-191 signed) record of","price_listed":0.01,"price_asked":0.01,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":251,"reported_calls_30d":5,"reported_payers_30d":3,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"benchmarks":[{"end_price":112000,"id":"BTC","start_price":94000},{"end_price":3900,"id":"stETH","income_return":{"status":"estimated","value":0.022},"start_price":3300}],"currency":"USD","period":{"end":"2026-09-30","start":"2026-01-01"},"positions":[{"end_value":{"source":"coingecko close 2026-09-30","status":"verified","value":12600},"flows":[{"amount":2000,"date":"2026-04-01","source":"tx 0xdef…","status":"verified"}],"id":"ETH","start_value":{"source":"wallet 0xabc…, block 21500000","status":"verified","value":10000}},{"end_value":4200,"flows":[{"amount":-1000,"date":"2026-06-15","source":"article","status":"estimated"}],"id":"SOL","start_value":5000}]},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"properties":{"benchmarks":{"description":"Benchmarks to compare against (1-5), e.g. BTC, ETH, or stETH with staking yield.","items":{"properties":{"end_price":{"description":"Benchmark price at period end. Number, or object shaped like start_value.","type":["number","object"]},"id":{"description":"Benchmark name, e.g. BTC, ETH, stETH.","type":"string"},"income_return":{"description":"Extra period return from yield, e.g. 0.022. Default 0. Number, or object shaped like start_value.","type":["number","object"]},"start_price":{"description":"Benchmark price at period start. Number, or object shaped like start_value.","type":["number","object"]}},"required":["id","start_price","end_price"],"type":"object"},"maxItems":5,"minItems":1,"type":"array"},"currency":{"default":"USD","description":"Currency label for all values; no conversion is done.","type":"string"},"period":{"description":"The measurement period.","properties":{"end":{"description":"Last day of the measurement period (YYYY-MM-DD).","format":"date","type":"string"},"start":{"description":"First day of the measurement period (YYYY-MM-DD).","format":"date","type":"string"}},"required":["start","end"],"type":"object"},"positions":{"description":"Holdings to analyse (max 500), each with start/end value and any money moved in or out.","items":{"properties":{"end_value":{"description":"Market value at period end. Number, or object shaped like start_value.","type":["number","object"]},"flows":{"description":"Capital moved into (+) or out of (−) the position during the period. At most 1000 flows in total across all positions.","items":{"properties":{"amount":{"description":"Positive = bought / added capital; negative = sold / withdrew.","type":"number"},"date":{"description":"Date the money moved (inside the period).","format":"date","type":"string"},"source":{"description":"Where the flow came from, e.g. a tx hash or statement.","type":"string"},"status":{"description":"How reliable this flow is. Default \"provided\".","enum":["verified","derived","provided","estimated","assumed"],"type":"string"}},"required":["date","amount"],"type":"object"},"maxItems":1000,"type":"array"},"id":{"description":"Ticker, token symbol, contract address, or internal id.","type":"string"},"income":{"description":"Cash income taken out (staking, dividends). Default 0. Number, or object shaped like start_value.","type":["number","object"]},"start_value":{"description":"Market value at period start. A number, or {value, status, source, observed_at}.","oneOf":[{"minimum":0,"type":"number"},{"properties":{"observed_at":{"description":"When observed (ISO).","format":"date-time","type":"string"},"source":{"description":"URL, tx hash, block, file or API.","maxLength":500,"type":"string"},"status":{"description":"How it was obtained. Default \"provided\".","enum":["verified","derived","provided","estimated","assumed"],"type":"string"},"value":{"description":"The number.","minimum":0,"type":"number"}},"required":["value"],"type":"object"}]}},"required":["id","start_value","end_value"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"}},"required":["period","positions","benchmarks"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-10-10","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.01,"price_match":true,"latency_ms":251,"error":null}],"description_full":"Deterministic portfolio performance attribution vs BTC, ETH, stETH or any benchmark. Returns Modified Dietz and money-weighted (XIRR) returns, per-position contribution and alpha, per-input source status and per-position data status with the reason, and a hashed (optionally EIP-191 signed) record of the calculation. No LLM.","last_updated":"2026-10-10T08:41:33.019Z","schemes":["exact"]}