| Type | Name | Date | Status |
|---|
Model Library
| Model | Version | Product | Trained | AUC-ROC | AUC-PR | KS | Records | Status |
|---|
| File | Model | Scored | Records | Suppressed | Drift | Deciles |
|---|
Calculate optimal mailing depth for any scored file. Enter cost per piece and average revenue per deal to see which deciles are profitable to mail.
Breakeven response rate: --
| Decile | Records | Est. Response Rate | Revenue/Piece | Profit/Piece | Decision |
|---|
Live profit recompute as you change campaign assumptions. Pick a scoring run, drag any slider, and totals update in real time. Built on the same propensity output as Mailing Depth, plus seasonal and suppression overrides.
Cutoff: --
| Decile | Records | Resp% | Profit/pc | Decision | Total profit |
|---|---|---|---|---|---|
| Pick a run above to begin. | |||||
Score a synthetic record against any active model and see exactly which feature values pushed the propensity up or down. Useful for sanity-checking a model and answering "why is this person low scored?"
Base log-odds: -- Prediction log-odds: --
| Feature | Value | Contribution |
|---|
| Feature | Value | Contribution |
|---|
KMeans on standardized features + PCA for layout. Claude names each cluster from its centroid and z-deviations. Works best on a labeled file (with a RESPONDERS column) so cohorts get a real response rate.
Inspect the per-feature distribution recorded at scoring time. Pick one run for inline review (which features got flagged) or two runs to compare campaign-to-campaign shifts. Runs scored with different models are not directly comparable.
Compare prediction agreement between two scoring runs of the same file (or files with overlapping customer_id / control_nb). Tells you whether a new model would actually pick different mail records before you commit budget.
Rows = Champion deciles, columns = Challenger deciles. Diagonal = agreement.
Records where the two models put the customer in maximally different deciles.
| Key | Score A | Decile A | Score B | Decile B | Δ |
|---|
When you commit a campaign by clicking “Record this campaign” on a scoring run, every mailed customer goes here. New scoring runs auto-suppress anyone in the list within the active window. Default: 21 days.
Each row is a campaign that contributed to the active list. Removing a campaign here brings those customers back into the pool immediately.
| Run # | Campaign | Records contributed | Mailed at | |
|---|---|---|---|---|
| No active campaigns. Commit a run by clicking “Record this campaign” in History. | ||||
This is the learned alias map every score-file upload uses. Seed rows are the original 221 hand-curated mappings. LLM rows were auto-resolved by Claude during scoring. Manual rows came from corrections you made in the smart-mapping panel. After enough vendor uploads, the LLM stops getting called because the dictionary covers the space.
| Feature | Alias | Source | Confidence | Confirms | Updated | |
|---|---|---|---|---|---|---|
| Loading... | ||||||
Engineered features the scoring pipeline computes at run time when a vendor file doesn’t supply them directly. Three flavors: expression (pandas formula), aggregate (groupby from another DB table), lookup (key-based join against a reference table). Add inputs go through the alias dictionary, so a derivation’s required input “customer_id” will resolve from any vendor column that maps to it. Validation runs a dry-run against the most recent uploaded file.
| Feature | Type | Inputs | Formula | Status | Output | Actions |
|---|---|---|---|---|---|---|
| Loading... | ||||||
Map Columns is recommended if your file's headers differ from the model's training column names — any features the model expects but aren't in your file will be imputed to 0 (a warning lists them after scoring).
Pick the source column for each feature. Features with no match will be imputed to 0.
After mailing, upload the same file with a responded column
(1 = responded, 0 = did not). The system merges this into the training set
and retrains automatically. Each feedback cycle makes your model smarter.
Tell the system what each column means. loan_date should be date,
responded should be the target. The model automatically
extracts the right features based on these definitions.
Campaigns
| Name | Status | Exclude States | Cost / Piece | Revenue / Response | Created |
|---|
Sources
| Name | Display Name | Records | Schema | Last Upload |
|---|
Upload a CSV, map columns, and import into the universe. Map a column to either SSN or customer_id (used as dedupe key).
Map each source column to a canonical universe field. Unmapped columns are stored in source_data JSONB.
Uncheck "ML" to exclude a column from model features.
Responders are matched against universe.records by SSN first, then by name + address.
Unmatched rows go to the Responder Review queue for manual triage.
Map at minimum SSN, or (first_name + last_name + address). Also map response_date
and revenue if your file has them.
| Uploaded | File | Source Hint | Total | Matched | Review |
|---|
Approve to insert into the universe (default source: unknown_responders) + create a response row.
Discard to drop.
| Uploaded | SSN | Name | Address | ZIP / State | Assign Source |
|---|
Scores a source with a trained model, filters by campaign (exclude states), removes DNM + records already pulled for this campaign, and exports a CSV.
| Pulled | Name | Campaign | Source | Model | Records | Export |
|---|
Uploaded addresses are normalized (USPS-style) and matched against marketing-list pulls
by (address_norm, zip5). Duplicates are skipped.
| Normalized Address | ZIP | Original | Source File | Uploaded |
|---|
Vendor-pipeline upload. Routes raw files to the deterministic
raw/{vendor}/{tenant}/{version}/{stream}/.../{date}/ path with manifest sidecar.
Distinct from "Upload" tab (universe import with column mapping).
| Uploaded | Source | File | Prefix | Path (relative) | SHA | Size |
|---|
Curated Mail Lists
Top-N records from any scoring run, persisted as separate downloadable CSVs. Each list lives independently of the master file.
⚠ Pending your approval
0| Name | Source run | Records | Cost / Rev | Projected profit | Status | Created |
|---|
My Activity
Your last 100 audited actions on the platform. This is your personal compliance trail — every other user sees their own version.
User Management
Add, edit, and deactivate users. Roles control which actions each user can perform.
analyst Train models, score files, delete resources, build curated lists.
operator Build / mark curated lists, run scoring, view all dashboards.
viewer Read-only access to dashboards.
Audit Log
Every authenticated action on the platform, append-only. Used for compliance reviews, security investigations, and quarterly reports.
| Task ID | Type | Status | Started | Completed | Details |
|---|
Ask questions about your data, run SQL queries, profile columns, or get direct mail strategy advice. The assistant has full database access and will show you the queries it runs.