{"uid":"cap_1MKJ-Gisp15Q4WVEpk96c","slug":"halowerk-modell-drift-check-2aabdf36","name":"Halowerk Modell Drift Check","description":"Compares two submitted sample sets feature by feature and returns deterministic drift metrics. Continuous features are binned on the combined value range and receive PSI, Jensen-Shannon divergence and a Kolmogorov-Smirnov statistic; categorical features receive PSI and Jensen-Shannon divergence over exact category labels. The response names every feature, its sample counts, the metric values, the threshold used, and the reason a feature was flagged.","url":"https://modell.halowerk.com/v1/drift-check","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"bins":{"type":"integer","default":10,"maximum":50,"minimum":2,"description":"Number of equal-width bins for continuous features."},"threshold":{"type":"number","default":0.2,"maximum":1,"minimum":0.01,"description":"Drift threshold applied to PSI for the final feature flag."},"feature_types":{"type":"object","description":"Optional explicit feature types keyed by feature name.","maxProperties":50,"additionalProperties":{"enum":["continuous","categorical"],"type":"string"}},"current_samples":{"type":"object","description":"Current samples keyed by the same feature names as reference_samples.","maxProperties":50,"minProperties":1,"additionalProperties":{"type":"array","items":{"type":["number","string","boolean"]},"maxItems":10000,"minItems":2}},"reference_samples":{"type":"object","description":"Baseline samples keyed by feature name. Each value is an array of finite numbers for continuous features or scalar category labels for categorical features.","maxProperties":50,"minProperties":1,"additionalProperties":{"type":"array","items":{"type":["number","string","boolean"]},"maxItems":10000,"minItems":2}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.003","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.003/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_DYoFhGPDh8CUaz4ILLFnT","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.003","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Compares reference and current sample sets feature-by-feature, returning PSI, Jensen-Shannon divergence, and KS statistics to detect data drift in ML pipelines.","exampleAgentPrompt":"Run a drift check comparing last month's training samples to this week's production samples for the features 'age', 'income', and 'region' — use 20 bins and flag anything with PSI above 0.25.","exampleUseCases":[{"title":"ML model retraining trigger detection","prompt":"Compare my baseline training data to today's production inputs for features 'click_rate', 'session_duration', and 'page_views' — use 10 bins and flag any feature where PSI exceeds 0.2 so I know if I need to retrain."},{"title":"Categorical feature distribution shift audit","prompt":"Check whether the distribution of 'product_category' and 'user_country' in last quarter's data has drifted compared to this quarter — treat both as categorical and flag anything above a 0.15 PSI threshold."},{"title":"A/B test data quality validation","prompt":"I want to make sure my control and treatment groups have similar feature distributions before analyzing results — compare the 'age', 'gender', and 'account_tenure' samples from group A vs group B using 15 bins and a 0.1 drift threshold."}],"resultDescription":"A JSON response listing every feature with its sample counts, computed PSI, Jensen-Shannon divergence, KS statistic (for continuous features), the threshold applied, whether the feature was flagged for drift, and the reason for the flag. Categorical features receive PSI and JS divergence over exact label distributions; continuous features are binned over the combined value range.","failureModes":["Mismatched feature keys between reference_samples and current_samples cause validation errors","Fewer than 2 samples in any feature array triggers a minimum-size rejection","Providing more than 50 features or more than 10,000 samples per feature exceeds schema limits","Non-finite or mixed-type values in continuous feature arrays may cause binning failures","Invalid bins value outside 2–50 range or threshold outside 0.01–1 returns a 400 error","Payment failure or insufficient USDC balance blocks the call via x402 protocol"],"whenToPreferThis":"Choose this endpoint when you need deterministic, reproducible drift metrics across multiple features in a single call, especially when you require both PSI and JS divergence alongside a KS statistic for continuous features. It is ideal for MLOps pipelines that need per-feature flagging with explicit thresholds and human-readable reasons, and when you want to handle both continuous and categorical features in one request without building your own statistical pipeline.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T18:32:37.305Z","isFirstParty":false}