{"uid":"cap_5hYA_RUV5IKjrClP2ExAz","slug":"dataset-join-loss-preview-458ab2f6","name":"Dataset Join Loss Preview","description":"Measure join multiplication and unmatched records without returning joined cells. Declared keys only.","url":"https://www.mahastrategies.com/api/v1/compute/datasets/join-loss?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"left":{"type":"array","maxItems":500},"right":{"type":"array","maxItems":500},"dataClass":{"enum":["synthetic","public"],"type":"string"},"keyFields":{"type":"array","maxItems":8,"minItems":1,"uniqueItems":true}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.035019","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.035019/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.035019","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.035019","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_8rjpvDJq-ZlyH-bRj8IZn","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.035019","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Measures join multiplication factor and unmatched record counts when joining two datasets on declared key fields, without returning the joined data itself.","exampleAgentPrompt":"Before I merge these two datasets on 'user_id' and 'region', can you preview the join loss — how many records won't match and whether there's any row multiplication — using synthetic data class? Left dataset has up to 200 records and right has up to 150.","exampleUseCases":[{"title":"ETL pipeline join safety check","prompt":"I'm about to join our orders table with our customers table on 'customer_id' before loading to the warehouse — can you preview how many orders won't match any customer, and whether any customer keys will multiply rows? Both are synthetic data, under 500 records each."},{"title":"Data quality audit before analytics","prompt":"We have two public datasets we want to join on 'product_sku' and 'store_id' — can you check the join loss preview so I know what percentage of records will be dropped or duplicated before I run the full join?"},{"title":"Key field selection validation","prompt":"I'm deciding between using 'email' alone versus 'email' plus 'signup_date' as join keys between these two synthetic datasets — can you run a join loss preview on both options so I can see which key combination gives fewer unmatched records?"}],"resultDescription":"Returns join quality metrics including the multiplication factor (how many times rows fan out), count of unmatched records from the left dataset, count of unmatched records from the right dataset, and key match statistics — without returning any of the actual joined cell data.","failureModes":["Dataset arrays exceed 500-item limit — request rejected with validation error","keyFields array empty or exceeds 8 fields — rejected with schema validation error","dataClass value not 'synthetic' or 'public' — enum validation error","Key fields referenced in keyFields not present in dataset records — mismatch error or empty match result","Malformed record objects in left or right arrays — parsing error"],"whenToPreferThis":"Use this endpoint when you need to assess join quality and data loss risk before committing to a full join operation, especially when datasets are large or downstream pipelines are costly. Prefer this over a full join endpoint when you only need diagnostics (match rate, fan-out factor, unmatched counts) rather than the actual joined rows. Ideal for ETL pre-flight checks, data quality audits, and key-field selection decisions. Restricted to declared key fields only — not suitable for fuzzy or probabilistic matching.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-19T06:44:48.778Z","isFirstParty":false,"canonicalSlug":"dataset-join-loss-preview-458ab2f6"}