propensity scoring · direct mail intelligence
sendup

A warehouse, a model, and a mail list — built so the people scoring it and the people sending it are looking at the same thing.

data · upload

Drop a file in

data · sources

Sources you can upload to

loading
fetching sources…
data · recent uploads

What's come in

FileSourceSizeStatusByWhen
fetching…
data · vendors

Vendors configured

fetching…

scoring · run

Score a file

Upload a CSV or pick one already in the warehouse, choose a model, and queue scoring. After preview, the smart-mapping panel lets you confirm or adjust how each source column maps to model features.

scoring · the whole pool

Score the unmailed pool

Pull every customer in the warehouse that hasn’t been mailed in the last N days, score against the champion model, and rank them. New scoring run shows up in “Last five” below. Then build a curated list from it as usual — DNM, draw-ledger, and election suppression all still apply.

scoring · champion model

loading…

AUC ROC
calibrated · isotonic
Top decile lift
×
Training records
percentile (cohort-corrected response rate) 1 (best) 100 (worst)
scoring · recent runs

Last five runs

All runs →
RunModelFileRecordsScored atStatus
fetching…
scoring · mail batches

Recent mail batches

All batches →

Batches you’ve built from scoring runs. Click Download to grab the CSV again — the file stays on disk until manually purged. Status reflects whether the batch was marked as mailed (suppresses those customers from future warehouse scores).

ListNameSource runRecordsBuiltStatus
fetching…
modeling · library

Models

All trained models in the registry. Champion is the one currently serving new scoring requests. Click Report to open the per-model training report (AUC curves, decile lift, feature importance).

ModelVersionProductTrained AUC-ROCAUC-PRKS RecordsStatus
models · feature engineering

Feature derivations

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 a DB table), lookup (key-based join against a reference table). Inputs go through the alias dictionary, so an input named customer_id resolves from any vendor column that maps to it.

Feature Type Formula Inputs Status
loading…
send · mailing depth

Where the math says yes

Breakeven rate
response needed to clear cost
Cutoff
deepest profitable decile
Records to mail
union of MAIL deciles
Projected profit
sum across MAIL deciles
pick a run + click Calculate
decile 1 (best) 10 (worst)
DecileRecordsEst. response Revenue / pieceProfit / pieceDecision
no calculation yet
send · mailing pool

What's already been claimed

Locked customers
on any active list
Active lists
draft / pending / approved / exported
Available in selected run
pick a run + Calculate to see
send · curated lists

Mail lists in flight

Draws from your scoring runs become curated mail lists. Build one, optionally route through approval, download the CSV for your mail vendor, then mark it exported.

Name Source Records Cost / Rev Projected profit Status Created
fetching…
send · election calendar

When the windows open

Per-state suppression status across your planning horizon. Red = inside an election suppression window. Sand = 6–10 weeks pre-election (peak power). Teal = 1–3 weeks post-election recovery. Grey = clean. Dots mark elections; vertical bars mark the federal general. Pick a target drop date to overlay it.

clean pre-drop power (6–10wk out) suppression (6wk / 8wk swing) post-election quiet (1–3wk) federal general (vertical) state election (dot — yellow=swing)
suppression · do not mail

Don't mail these people

Uploaded addresses are normalized (USPS-style) and matched against marketing list pulls by (address_norm, zip5). Duplicates are skipped automatically.

entries

Current DNM list ·

Normalized address ZIP Original Source file Uploaded
cohorts · discover

Find who responds

KMeans on standardized features. 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.

admin · users

Who has access

UsernameEmailRoleStatus Last loginCreated
admin · programmatic access

API keys

Tokens for scripts, pipelines, and external tools to push and pull from the platform. Use as Authorization: Bearer sndp_… in your requests. Permissions inherit from the creating user’s role. Plaintext is shown only once at creation — store it somewhere safe.

Name Key Created Last used Status
admin · system status

Plumbing

API
fetching…
Celery worker
fetching…
Disk /
root volume
Disk /data
data volume
admin · recent tasks

Last 20 jobs

IDTypeStatusCreatedUpdated
fetching…
admin · audit log

Last 50 entries

WhenWhoActionOutcomeResourceIP
fetching… (admin role required)

Train new model

features

Checked features are included in training. Leakage and system columns are pre-excluded.

Create API key

Give this key a name so you remember what uses it (e.g. “Monthly scoring cron” or “GitHub Actions — retrain workflow”).

New curated mail list

Build a mail-ready list by taking the top-N records from a scoring run, ordered by calibrated propensity.

Optional filters

Map columns to model features

Model feature Source column Method

New derivation

Election suppression detected

StateRecordsElectionDays outSwing

Per the direct-mail timing strategy: drops within 6 weeks of an election (8 weeks for competitive swing states) compete with peak political mail volume. You can rebuild with these records dropped, or proceed knowing they’ll likely underperform.