I wanted the numbers to explain themselves
A chart can show that two columns move together, but that is not the end of the analysis. I built this page to import a file, check whether the rows are usable, describe the distribution, find the strongest relationships, explain what those patterns may mean, and show what I would investigate before making a decision.
Currently open
Casino Offer Export
I use this model to check assignment logic, required fields, delivery eligibility, validation status, player value, and post-offer response.
Offer File Review
Check the file before it reaches production
I built this around the kind of monthly file review I actually did: pull the rows, confirm the required fields, inspect assignments, find exceptions, and understand what the response data is saying before anything moves forward.
Required Import Columns
Casino offer import
Histogram
Net ADT distribution
Player value after adjustments.
Avg
$296
Min
$88
Median
$218
Max
$690
Total
$1,775
3
$88–$188
1
$188–$289
0
$289–$389
1
$389–$489
0
$489–$590
1
$590–$690
Rows
6
Passed
3
Review
2
Failed
1
Total FSP
$525
Total Food
$195
Redeemed Value
$670
App Eligible
4
Rows Behind the Result
The records and fields behind the summary
| PlayerIDRequired | TierRankRequired | ActiveInactiveRequired | TripsMonthRequired | DaysSinceLastTripRequired | NetADTRequired | SegmentNameRequired | OfferFSPRequired | OfferTGRequired | OfferHotelRequired | HotelNights | HotelRoomType | OfferFoodRequired | OfferGiftRequired | MailableFlagRequired | AppEligibleFlagRequired | ValidationStatusRequired | ValidationNotes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P100284 | Platinum | Active | 9 | 3 | 412 | Core Active | 125 | 70 | 2DLX | 2 | Deluxe | 45 | Premium Tumbler | Y | Y | Pass | Eligible and complete. |
| P100918 | Gold | Active | 5 | 9 | 248 | Mid Active | 75 | 35 | 1DLX | 1 | Deluxe | 30 | Kitchen Set | Y | Y | Pass | Eligible and complete. |
| P101337 | Diamond | Active | 12 | 1 | 690 | VIP Active | 250 | 175 | 2MS | 2 | Master Suite | 75 | VIP Gift | Y | Y | Pass | Hosted VIP. Offer package complete. |
| P102014 | Silver | Inactive | 0 | 112 | 88 | Reactivation | 25 | 35 | NONE | 0 | No hotel offer | 15 | Comeback Gift | Y | Y | Review | Email suppressed. Mail/app only. |
| P102880 | Gold | Active | 4 | 6 | 188 | Mid Active | 50 | 35 | NONE | 0 | No hotel offer | 30 | Mystery Gift | Y | N | Review | Missing UniversalID. Review before app import. |
| P103552 | Gold | Active | 3 | 13 | 149 | Suppressed | 0 | 0 | NONE | 0 | No hotel offer | 0 | - | N | N | Fail | Excluded due to suppression and bad address. |
Identity
Player Value
Eligibility
Offers
Valid Dates
Redemption
Audit
Offer quality, player value, and response signals
I am reviewing 6 player rows. 3 rows pass validation, 2 need review, and 1 fail, which puts the current pass rate at 50.0%. 4 rows are app eligible (66.7%). For Net ADT, the average is $296, the median is $218, and the range runs from $88 to $690. Net ADT is pulled upward by larger values because the average is above the median. I would read the validation counts first, then use the relationships below to decide which assignment rules, segments, delivery flags, or response measures deserve a row-level review.
Rows Reviewed
6
This section recalculates when a CSV is imported.
Strongest Positive Relationship
Redeemed Value ↔ Post-Offer Theo
Very strong positive relationship: higher values generally appear alongside higher values in the currently loaded rows.
What this may mean
Players with more redeemed value also show higher Post-Offer Theo. That is a useful response signal and may indicate that the campaign is reaching players who return and generate activity.
What I would check next
Compare redeemers with non-redeemers who had similar NetADT, MonthlyTheo, trips, tier, and recency before the offer. Also compare the result against a pre-offer period.
Strongest Negative Relationship
Trips This Month ↔ Days Since Last Trip
Strong negative relationship: higher values generally appear alongside lower values in the currently loaded rows.
What this may mean
As days since the last trip increase, Trips This Month tends to decrease. That is the expected pattern when recent visitors remain more active than lapsed players.
What I would check next
Create recency bands such as 0–30, 31–60, 61–90, and 90+ days, then compare offer response and post-offer value inside each band.
How I would use the strongest signal
Redeemed Value and Post-Offer Theo are the first place I would investigate
Working hypothesis
Players with more redeemed value also show higher Post-Offer Theo. That is a useful response signal and may indicate that the campaign is reaching players who return and generate activity.
Next comparison
Compare redeemers with non-redeemers who had similar NetADT, MonthlyTheo, trips, tier, and recency before the offer. Also compare the result against a pre-offer period.
Possible action
Prioritize the segments where redemption is followed by meaningful trips or theo, then test whether the same pattern holds in another month or campaign.
Before acting on it
More active or valuable players may be more likely both to redeem and to return, so this is not proof that redemption caused the response.
Other relationships worth reviewing
Redeemed Value ↔ Post-Offer Theo
+1.00Very strong positive association
Players with more redeemed value also show higher Post-Offer Theo. That is a useful response signal and may indicate that the campaign is reaching players who return and generate activity.
Practical next step
Prioritize the segments where redemption is followed by meaningful trips or theo, then test whether the same pattern holds in another month or campaign.
Net ADT ↔ Monthly Theo
+0.99Very strong positive association
Net ADT and Monthly Theo show a very strong positive relationship in the loaded rows. That means they tend to move in the same direction, but the pattern does not explain why.
Practical next step
Use this relationship to form a testable hypothesis. Make a small operational or campaign test, define the success metric in advance, and compare the result with a similar group or period.
Monthly Theo ↔ Post-Offer Trips
+0.99Very strong positive association
Higher baseline Monthly Theo is appearing with higher Post-Offer Trips. The strongest players in the file are also producing stronger post-offer activity.
Practical next step
Use baseline value to forecast response, but measure incremental lift separately so high-value players are not over-credited to the campaign.
Monthly Theo ↔ Redeemed Value
+0.99Very strong positive association
Monthly Theo and Redeemed Value show a very strong positive relationship in the loaded rows. That means they tend to move in the same direction, but the pattern does not explain why.
Practical next step
Use this relationship to form a testable hypothesis. Make a small operational or campaign test, define the success metric in advance, and compare the result with a similar group or period.
Redeemed Value ↔ Post-Offer Trips
+0.99Very strong positive association
Players with more redeemed value also show higher Post-Offer Trips. That is a useful response signal and may indicate that the campaign is reaching players who return and generate activity.
Practical next step
Prioritize the segments where redemption is followed by meaningful trips or theo, then test whether the same pattern holds in another month or campaign.
Net ADT ↔ Offer FSP
+0.98Very strong positive association
In these rows, higher Net ADT generally appears with higher Offer FSP. That is consistent with a tiered offer strategy where stronger player value receives a larger incentive.
Practical next step
Keep the tiered structure if the higher offers also produce acceptable post-offer trips or theo. Add caps or review rules where offer value rises faster than player response.
File-level findings
Validation Ready
50.0%
3 of 6 rows currently pass validation.
App Eligible
66.7%
4 rows can currently be used for app delivery.
Offer Utilization
100.0%
$670 redeemed against $670 of recorded offer cost.
Rows Needing Attention
4
2 review, 1 fail, 1 missing identity signals, and 1 inactive rows.
What correlation can and cannot tell us
A correlation tells me which columns move together strongly enough to investigate. It does not tell me that one column caused the other. I would use the result to form a working hypothesis, split the data into fair comparison groups, inspect outliers, confirm the time window, and test the decision on a later campaign or period before turning it into a production rule.
Why I built this page
I wanted to show the part of analysis that happens after the export finishes
In my database work, pulling the rows was only the beginning. I still had to check IDs, assignment rules, eligibility, dates, suppression flags, duplicates, totals, delivery channels, and whether the output made sense against the business request. I also had to explain what the results meant to people who were not looking at the SQL or the raw file.
That is what this page is trying to show. It does not stop at an average, histogram, or correlation coefficient. It turns the result into a working hypothesis, explains what I would compare next, suggests a possible action, and keeps the limitations next to the recommendation instead of hiding them.
First: trust the file
Confirm required columns, data types, flags, IDs, dates, duplicates, and validation status before interpreting the results.
Then: explain the pattern
Describe the size and direction of the relationship in plain language and connect it to the actual campaign or operating question.
Finally: test the decision
Compare fair groups, inspect outliers, define the success metric, and validate the result on a later period before making it a production rule.
Demo data and privacy
The records on this page are synthetic examples. They are shaped like the kinds of files and checks I worked with, but they do not contain private player information, internal campaign data, or proprietary business rules.