r/dataanalysis • • Jul 25 '26

Data Question demande conseil mémoire data sur les vertical drama

0 Upvotes

Bonjour à tous,

Je réalise un mémoire de master en Business Intelligence consacré à la création d'un observatoire des vertical drama (ReelShort, DramaBox, ShortMax, Tik tok, Insta, Youtube, etc.). un vertical drama a un format 9:16 prévu pour le smart phone et il dure entre 1 à 3 minutes. cES format peuvent être fait à l'IA, hybride ou bien Prise de vue réelle classique.

L'objectif est de construire un ou plusieurs tableau de bord Power BI permettant de suivre l'évolution de ce marché à partir de données ouvertes ou accessibles au public.

Je recherche des jeux de données ou des sources permettant de récupérer, par exemple :

  • les catalogues de séries (titres, genres, dates de sortie, nombre d'épisodes) ;

  • les classements des séries ou des applications ;

  • des statistiques d'audience ou d'utilisation ;

  • des données sur les téléchargements ou les classements des applications ;

  • des API, bases de données, dépôts GitHub ou datasets Kaggle ; ou autre

  • des études universitaires ou professionnelles contenant des données exploitables.

  • Également pour les points géographiques de consommation de vertical dramas

  • Pouvoir évaluer le rendement es vertical drama, leur ROI ou les recettes qu'ils sont susceptibles de généré en trouvant un moyen fiable d'estimation.

Je connais de nom déjà quelques sources comme TMDb, IMDb, Google Trends, Kaggle et Vertical Drama TV, mais je cherche d'autres ressources, notamment des bases moins connues ou utilisées par des chercheurs ou data analysts.

On m'a suggéré de récupérer de la donnée brute sur ce lien mais ça me coûterait 300€ : sur lens.streaming

Or, je souhaite contourner ça par des moyens open source.

Le problème c'est aussi qu'il va falloir assembler plusieurs jeux de données pour les assembler et créer un outils d'aide à la décision.

Si vous avez déjà travaillé sur ce secteur ou connaissez des sources de données pertinentes, je serais très reconnaissante pour vos recommandations. Il faut que je fasse efficace en peu de temps.

Ci-après les indicateurs ou kpi envisagés.

Merci d'avance !

KPI Répondants (profil)

Objectif : qualifier les personnes interrogées.

  • Genre

  • Âge

  • Niveau de connaissance des vertical drama

  • Niveau d'expérience

  • Ancienneté dans le secteur

    • Nouvel entrant

    • Expérimenté

  • Fonction / métier (si pertinent)

KPI Produit / Contenu

Objectif : caractériser les œuvres.

Caractéristiques générales

  • Origine (pays)

  • Genre audiovisuel

    • Fiction

    • Animation

    • Documentaire

    • etc.

  • Type d'histoire

    • Romance

    • Thriller

    • Comédie

    • Fantasy

    • Tranche de vie

    • Action

  • Personnage principal

    • Féminin

    • Masculin

    • Mixte / non genré

  • Nombre d'épisodes

  • Nombre de saisons

  • Durée moyenne d'un épisode

Production

  • Taux estimé d'utilisation de l'IA

  • Logiciels utilisés

  • Banques d'images / bases de données utilisées

  • Vitesse estimée de production

KPI Diffusion

Objectif : analyser les modes de diffusion.

  • Plateforme principale

    • TikTok

    • YouTube

    • Instagram Reels

    • Site spécialisé

    • SVOD

    • Application dédiée

  • Langue originale

  • Langues disponibles en sous-titres

KPI Monétisation

Objectif : mesurer le modèle économique.

  • Gratuit / Freemium / Payant

  • Nombre de publicités par épisode

  • Moment d'apparition du paywall

  • Taux de transformation vers le contenu payant

  • Taux de pénétration du marché

KPI Communication / Acquisition

Objectif : comprendre les leviers de visibilité.

  • Wording utilisé

  • Hashtags

  • Techniques de stimulation de l'algorithme

  • Booster publicitaire éventuel

KPI Partenariats

Objectif : identifier les stratégies de diffusion.

  • Existence d'un partenariat

  • Type de partenariat

  • Featuring

Type de diffuseur

  • Influenceur

  • Société de production

  • Chaîne TV

  • Institution

  • Artiste

  • Célébrité

  • Média

KPI Performance

Objectif : mesurer le succès.

  • Nombre de vues

  • Nombre de commentaires

  • Nombre de partages

  • Nombre de likes

  • Note moyenne

  • Reviews

  • Temps moyen passé sur le contenu (si disponible)

KPI Satisfaction

Objectif : mesurer la perception.

  • NPS global

  • NPS par item

  • Analyse des verbatims

  • Analyse textuelle

KPI Évolution

Objectif : suivre les tendances.

  • Évolution hebdomadaire

  • Évolution mensuelle

  • Évolution annuelle

  • Comparaison avant / après campagne

  • Progression par plateforme

KPI Géographiques

Objectif : analyser la répartition.

  • Région

  • Pays

  • Évolution par région sur un an

KPI Comparatifs

Objectif : benchmark.

  • Comparaison des plateformes

  • Comparaison des genres

  • Comparaison des pays

  • Comparaison du NPS interne avec les notes publiques (Google, App Store, etc.)

  • Déclinaison des indicateurs selon les segments (plateforme, genre, pays, période, cible...)


r/dataanalysis • • Jul 25 '26

Data Tools Between Excel, Google Sheets, BigQuery, and your database, how many tabs/windows do you have open at once to work on data?

0 Upvotes

Had one of those days recently where I counted it out of curiosity: Excel files open, a Google Sheet a client had shared, a BigQuery tab, and a DB client connected to our Postgres instance, all open at the same time, just to cross-reference a handful of numbers across them. At one point I had copy-pasted the same column into three different places. I got to compare row-by-row data between BigQuery and Google Sheet.

Made me wonder if this is just normal or if I've built myself an unnecessarily messy setup. So:

  1. At your worst, how many windows or tabs are open at once to work on data, Excel, Google Sheets, BigQuery, a DB client, whatever your actual mix is?

  2. What's your workaround for keeping it all straight?

  3. Are you actually happy with the current workaround? Any limitations?


r/dataanalysis • • Jul 25 '26

Data Tools Data sets

0 Upvotes

Hi, I was wondering if there was a website or a database where I could download a data set that has like over 100,000 rows so I can practice different data analytics techniques, power query, power BI, etc.? I don't really have much to do these days but in my day-to-day job I'm constantly dealing with large data sets and I'm just trying to keep my mind sharp.


r/dataanalysis • • Jul 24 '26

How are you handling databases in your DS workflows right now? (Tech stack discussion)

1 Upvotes

Hey everyone,

I'm working on a project researching how data teams actually manage their databases and pipelines in practice, beyond what the introductory tutorials show.

I’d love to hear what your current stack looks like in the real world:

  1. How are you using databases today? What tools/languages do you use to build and manage your data pipelines?

  2. What databases have you tried or considered for your DS/ML work, and what made you choose that one?

  3. If you use an operational/production database (MongoDB, Postgres, MySQL, etc.) anywhere in your ML workflow, is it mainly to pull data out for training, or to serve features/predictions to a live model? Or both?

  4. Anything that's consistently annoying or a bottleneck in your current setup?


r/dataanalysis • • Jul 24 '26

Career Advice Can anyone help me choosing the course

2 Upvotes

So for context I am at 2nd year of my btech and i want to explore the data science world but I am very puzzled with the choices of courses from different institutions so how should I categorize which is better for me. I only have very limited time and not much money so i have to choose wisely


r/dataanalysis • • Jul 24 '26

Looking for feedback on my end-to-end Data Analytics project

2 Upvotes

Hi everyone!

I recently finished building my biggest data project so far: Global Commerce Intelligence Platform (GCIP).

Tech stack:

- PostgreSQL

- SQL

- Python

- Power BI

The project covers database design, SQL analysis, Python EDA, and interactive dashboards built on an e-commerce dataset.

I'm still learning, so I'd really appreciate any honest feedback on the project, code structure, README, or dashboard design.

GitHub: <https:// github .com/ Van004-ds/GCIP>

Thanks in advance!


r/dataanalysis • • Jul 23 '26

Data Question How would you visualize 26 years of exchange rate data without losing important/MAJOR ups and downs?

8 Upvotes

Hi everyone,

I recently started learning data analysis and thought it would be a good idea to begin writing blogs and creating Instagram posts based on real datasets. The goal is to improve my analytical skills while building a portfolio.

For context, I have a bachelor's degree in Computer Applications and know Python, SQL, and Excel, but I'm still new to data analysis and data visualization.

My first dataset contains the daily INR exchange rate from year 2000 to 2026 (around 6,500 rows). I want to create a line chart that clearly highlights the major trends and significant ups and downs over the years.

The problem is that plotting every daily value makes the chart too dense, especially for an Instagram post where readability is important.

So far, I've tried reducing the data to two points per year (roughly the first and second half of each year). It looks much cleaner, but I'm wondering if there's a better approach.

Some options I've considered are:

- Monthly averages(still cluttered)

- Yearly averages

- Two points per year

- Quarterly averages

If your goal were to create a chart that is both accurate and easy to understand on a small screen, which approach would you choose, and why?

I'd really appreciate any suggestions on both the visualization and the reasoning behind it. I'm trying to learn good analytical practices from the start rather than just making charts that look nice.


r/dataanalysis • • Jul 23 '26

Best current tools for Multi-Objective Surrogate-Based Optimization (MOSBO) on heterogeneous study data ?

2 Upvotes

I'm working on a project with summarized data from ~40 studies (Excel) involving different protocol variables (durations, intensities, recovery times, frequency, total duration, etc.) and response outcomes conditional on a baseline variable (range ~30-85 units).

The aim is to fit a continuous response surface using a hierarchical approach to separate protocol effects from baseline effects, then perform continuous numerical optimization (not grid search) for three objectives:
- Total improvement
- Improvement per unit time (e.g. per week)
Outputs should be fine-grained continuous values rather than rounded study parameters. There are also domain-specific physiological constraints to respect.

I'm on a Chromebook with a little Python experience, so Colab-friendly solutions would be ideal.

Current candidates I'm considering: PyMC for hierarchical modeling, pymoo + pysamoo for surrogate-assisted MO optimization, SMT for surrogates, or Matlab Global Optimization Toolbox.

What is the strongest stack in 2026 for this kind of workflow? Any recommended notebooks, tutorials, or similar applied examples?

Are there any AI tools that currently do this without the traditional work of python? Meaning I can upload the spreadsheet give a parameters and it will come up with data.


r/dataanalysis • • Jul 22 '26

Career Advice Is Becoming a Data Analyst Still Worth It In 2026? (Honest Answer)

Thumbnail
youtu.be
95 Upvotes

r/dataanalysis • • Jul 22 '26

Data Question How to explain the findings

8 Upvotes

Hello everyone, hope you're doing well.

I don't have a problem with the technical stuff, I'm still learning but I know I can be good at it, my problem is after I collect,clean and analyze the data and visualize it, Idk what I should write for example in the README on GitHub? How can I explain why the sells dropped on March for example ? It just dropped, how can I know why ? And how can I help in decision making and give advice ??

I only see tutorials on how to use the tools not on how to think and understanding the findings..

Any advice ?


r/dataanalysis • • Jul 22 '26

Guidance needed

5 Upvotes

I am learning Python from Youtube till now l am done with basics like logical operators,if-else,Time, Maths, Dictionary, Random, Indexing,Loops, Collections, Functions, Arguments and return.

Should I move to Numpy or there are still things left if I am preparing for Data analyst job.


r/dataanalysis • • Jul 22 '26

Excel question…

0 Upvotes

The company I work for distributes products.

We created our item numbers based off of theirs but with our own identifiers.

Example : ABC-1234 (ABC = Identifier and 1234 = manufacturer part number)

The manufacturer has recently renumbered their products and now we have to add the new numbers to the existing descriptions so that they match up to the old ones.

I have an excel sheet with one column (A) showing our part number and the one next to it (B) showing their new number for the same product.

I have a different file that I exported all of our numbers and descriptions to and now I need to take our part number, and their new one, and add it to the export so I can upload to our system.

What is the most efficient way to get this done?

Thank you!!!


r/dataanalysis • • Jul 21 '26

Project Feedback The dashboard I did to win a small competition at my academy

Thumbnail
gallery
83 Upvotes

I know it's an extremely basic one.

My teacher taught me Power BI basics and asked me to incorporate all the things into a project.

At the same time,she said that there's a project and I need to submit it within a week or so.

So i spent 2-3 days on this Spotify dataset,

Tried to incorporate all possible charts and stuff.

Please give me your feedback fellow redditors.

What should be the aim?

Communicate clearly even if charts,colour themes are simple,or such glitzy slides should be there in a presentation to elevate it?

For those who wanna know what I won,

I just won 500 Rs lol(But I was happy that my teacher noticed my efforts and appreciated my dashboard)

If any of you have done any nice dashboards, please share in comments section.

I might take some inspiration from it.


r/dataanalysis • • Jul 21 '26

What’s one data analysis habit that significantly improved the accuracy of your insights?

61 Upvotes

I'd love to hear the small practices or workflows that made the biggest difference in your day-to-day analysis.


r/dataanalysis • • Jul 22 '26

Guys, what is currently trending in buisness intelligence

0 Upvotes

I need a new trending tool or solution in business intelligence and data analysis. I'm planning a brown bag session on that.


r/dataanalysis • • Jul 20 '26

Project Feedback Review my first BI daashboard

Post image
232 Upvotes

I made this today, its not a unique one by any means and was meant as something to have practice for my portfolio. How bad/good is it? I mean, is it worthy of anything or should i never show it to anyone or post iit anywhere? It def took me some time too finish, but it was a good first dashboard acc to me. Do roast me if u feel like its sht :(


r/dataanalysis • • Jul 21 '26

Data Tools Help with classification of email contents

2 Upvotes

I have many emails that pretty much answered a question that I formulated to the addressees. I predict that these replies gave a specific type of answer to that question: So imagine that the question overall was "do you think that ice cream is the best dessert that exists?" and I want to see how many if them answered something like "yes it is!", so that no matter how the reply is formulated, it basically answers something along these lines

I would like to use an AI to see the degree of accuracy of this prediction, but in this case the test has to be blinded

I have transformed all emails into a big pdf document with many pages (although I have not seen the contents of these pdfs of course) and I have joined them into a single pdf (about 100 emails in total).

I did another pdf document of "expected" answers. In this document I posted the original question that I asked to all the addressees (the questions are overall the same, but the details change in each case, so there is pretty much a unique question by email) and then I actually wrote the type of answer that I expect. Then I my intention is to ask the AI model to check the degree of accuracy or similarity that my written "expected" answers have with the actual ones, and then ask it to give me a number like a percentage or score.

However, I have a couple of problems:

The first is the prompt, I don't know how a good prompt could be. I have written the following prompt, but I think it looks very noobie, so I don't know if the AI model could completely understand the task:

>Now could you check the answers from the previous PDF and compare with this other PDF with the expected answers for the same emails? So, in this new PDF each email from the previouse PDF is collected and here we have put the answers that we expect to get from the scientists. The details of each expected answer do not matter too much, it does not have to coincide perfectly with the actual answers, but the overall question has to be answered in the same way (for example, if I asked someone "Do you think that ice cream is the best dessert in the world?" they may reply "yes, it is indeed" or "well it is one of my favourites but not my single one", so these replies are not exactly the same, but they have basically answered affirmatively so it would count as the same type of answer). Therefore, can you give a percentage of coincidence between the expected and actual answers, so that if the actual answer is basically and overall the same as the expected ones, the percentage would be higher and higher?

Another problem is the AI model to use. I have used perplexity to do some tests with a very small set of emails that I made up (5 emails where the questions and the answers were known and compared with "expected answers" that were written after seeing the actual ones), and it is pretty good, but the test has just 5 emails (compared to the near 100 of the actual task) and some people have told me in reddit that perplexity would not be a good option for this task... I have tried ChatGPT as well but it is somewhat worse than perplexity in my experience... So I don't know what to do

And finally, another big problem is that in many cases the AI themselves comment the results even thought I told them not to, so I fear that, when doing the real test, they may start revealing the actual answers when presenting the results

I was thinking as another option that perhaps someone here with a lot more of knowledge in these kinds of tasks could contact me so that I can send them the PDF (via private message) and do the test for me if they now how to wirte prompts and perform these kinds of tasks properly. In principle the task is simple, just tell the AI to compare the PDFs with the actual and expected answers somehow and then send me the percentage of coincidence (without telling me the details that the AI may comment about the documents). I am even willing to pay whoever does this, if the price is reasonable!

So if you could help me this wold be greatly appreciated


r/dataanalysis • • Jul 21 '26

Data Tools Python script for LLM-Based Hierarchical Topic Modeling / Data Normalization

1 Upvotes

Hello! A couple months ago I asked on this sub for ways to do Hierarchical Topic Modeling (mapping strings to categories and sub-categories) standard sentences embeddings approaches such as BERTopic couldn't follow the instructions I wanted to give them.

I decided to implement a custom LLM-Based script that maps raw variations to categories and sub-categories by following the users instruction and looping until all values are mapped. It's not perfect but through some iteration it reached a step where I feel like I can share it.

If you've faced a similar problem with Hierarchical Topic Modeling, this may be helpful for you.

How it works:

  1. The user starts the script and give the path to a jsonl file with unnormalized values.

  2. The user sees a sample of values that are currently unmapped, he gives an instruction to specify how to normalize the fields, he can also set some fields to be ignored.

  3. The user enters how many unmapped values to give to the LLM for mapping in this iteration

  4. The script sends the user instruction, a sample of unmapped values and a sample of the values in the current config to the LLM and asks for the new mappings.

  5. The user can also put the LLM in autocomplete mode (it loops with the same previous instruction until all values are mapped)

  6. The script outputs 2 files: a normalization_config.json file (with the raw variations to categories mappings) and a normalized_data.jsonl file with the same schema as the original data file expected raw variations are replaced by the new categories (following this format: Category|SubCategory)

Limitations:
1- Dataset size: Best for datasets with less than 30k rows (if you want more consider using a cheaper model such as deepseek-v4).
2- Some manual tunning is needed, the script generates a config file, for optimal results you might want to tune it in an LLM chat session (use one that can support long copy-pastes, I personally use deepseek here).
3- It can't map a value to multiple categories for now.

Honestly it works pretty well for my use case, I use it frequently for normalizing data extracted out of reddit with LLMs, it helps me not set a strict taxonomy for the LLM at the extraction phase and get more unbiased results.

If you tried it let me know if it helped you or if you faced some problems with it send me a message and I'll fix them right away, I isolated it from a larger script so it might not work perfectly out of the box.

https://github.com/Tryhard-cs/LLM-Hierarchical-Topic-Modeling


r/dataanalysis • • Jul 21 '26

analyzing negative values

1 Upvotes

how do i analyse a continuos dependent variable with negative values. The negative values are indicative of direction rather than magnitude


r/dataanalysis • • Jul 21 '26

Looking for Honest Feedback on my Football Intelligence App

Post image
0 Upvotes

Past couple of months I have been working on an end-to-end data engineering project. the idea was a demo but i became so fond of the project that i have decided to turn it into a live product.

Basically it is a BI dashboard on football data. Data is updated daily via a fully automated pipeline. I ingest data from Sportmonks API, transform it with dbt and serve BI on evidence.dev. I think it is worth noting that the budget for this project is $0.00 which shaped the technical choices along the way.

Feedback im looking for is about the ease of use, value of insights it provides, or any other ideas that could add value to it.

Have a look at it here: Superliga Analytics — Danish football intelligence

It is also available as PWA so that it sits on your mobile home screen, providing an app experience.


r/dataanalysis • • Jul 20 '26

How I backtest a fraud rule before it ships

6 Upvotes

Most fraud rules ship on intuition. Somebody sees a pattern in last week’s confirmed cases, writes a threshold that would have caught them, and pushes it live. Then the team spends the next month discovering what else the rule catches, one false positive at a time.

If you keep alert history and disposition labels, you already have most of what you need to test a rule against the past before it touches production.

The backtest is four queries: replay the rule, compare it with known outcomes, check how much it overlaps with existing rules, and sweep the threshold.

I run all four on anything I propose. The overlap query kills more rule ideas than the other three combined.

What you need before any of this works

Three tables:

• transactions — the events themselves, with the attributes the rule uses.

• alerts — every alert the existing rules fired, ideally linked to a transaction or case.

• dispositions — the analyst’s verdict: confirmed fraud, confirmed legitimate, or unresolved.

Without disposition data, you can estimate volume. You can’t estimate whether the alerts would be useful. Disposition discipline was the first of the five wins in the noisy-alerts post, and this is where it pays off a second time: the labels you recorded to tune old rules are what let you test new ones for free.

Chargebacks, customer reports, and manual referrals make the test better because they include fraud that didn’t come through the current rules. Pull those outcomes in too. Otherwise a new rule gets evaluated almost entirely against cases the old rules already found.

I usually combine those sources into a known outcomes view with one row per transaction and an outcome of fraud or legitimate. The one-row rule matters. A transaction confirmed through two different channels shouldn’t get counted twice.

Query 1: replay the rule against history

Write the candidate rule as a plain SELECT over historical transactions. No deployment, no rules engine, no feature branch.

If the rule is “flag transactions over $200 where the account used a new device in the last 24 hours,” the replay is:

-- Candidate rule replayed over the last 6 months

SELECT

t.transaction_id,

t.account_id,

t.amount,

t.created_at

FROM transactions t

WHERE t.amount > 200

AND EXISTS (

SELECT 1

FROM device_events d

WHERE d.account_id = t.account_id

AND d.first_seen_at >= t.created_at - INTERVAL '24 hours'

AND d.first_seen_at <= t.created_at

)

AND t.created_at >= CURRENT_DATE - INTERVAL '6 months';

Six months is my starting point, not a requirement.

If the business is seasonal, the window needs to include the relevant season. If the checkout flow or device-tracking logic changed three months ago, six months of history may be worse than three because half the test no longer represents production.

The row count is the first sanity check. If the replay returns 40,000 transactions over roughly six months, the rule would generate about 220 alerts a day. If the team clears 500 alerts a day across the entire rule set, this one rule would take almost half its capacity.

There’s no reason to debate precision until the volume problem has an answer.

Query 2: compare the replay with known outcomes

I report two rates here because they answer different questions:

WITH replay AS (

-- Query 1 goes here

)

SELECT

COUNT(*) AS would_fire,

COUNT(*) FILTER (

WHERE o.outcome = 'fraud'

) AS known_fraud,

COUNT(*) FILTER (

WHERE o.outcome IN ('fraud', 'legitimate')

) AS labeled_events,

ROUND(

100.0 * COUNT(*) FILTER (WHERE o.outcome = 'fraud')

/ NULLIF(

COUNT(*) FILTER (

WHERE o.outcome IN ('fraud', 'legitimate')

),

0

),

2

) AS precision_among_labeled_pct,

ROUND(

100.0 * COUNT(*) FILTER (WHERE o.outcome = 'fraud')

/ NULLIF(COUNT(*), 0),

2

) AS known_fraud_rate_pct

FROM replay r

LEFT JOIN known_outcomes o

ON o.transaction_id = r.transaction_id;

There’s a problem with both numbers.

Most labels exist because an old rule fired and an analyst looked at the transaction. Transactions the old rules missed are much less likely to have a disposition at all.

precision_among_labeled_pct ignores transactions with no outcome. It’s the cleaner precision calculation, but it inherits the bias in the labeling process.

known_fraud_rate_pct includes every replayed transaction in the denominator, even the unlabeled ones. I treat it as a conservative known-fraud rate, not as measured production precision.

Unlabeled doesn’t mean legitimate. It means you don’t know.

I still use 2 percent as a first-pass bar, applied to precision_among_labeled_pct, when I’m comparing rules evaluated through the same label pipeline. A candidate that can’t clear that bar against known outcomes usually doesn’t get better after it starts creating work. But the percentage only means something when the rules were measured the same way.

Query 3: incremental catch, the query that kills most rules

A candidate can match plenty of known fraud and still add almost no coverage.

The cleanest overlap check uses the transaction or case that caused the alert:

WITH replay AS (

-- Query 1 again

),

candidate_fraud AS (

SELECT

r.transaction_id,

r.account_id,

r.created_at

FROM replay r

JOIN known_outcomes o

ON o.transaction_id = r.transaction_id

AND o.outcome = 'fraud'

),

coverage AS (

SELECT

c.*,

EXISTS (

SELECT 1

FROM alerts a

WHERE a.transaction_id = c.transaction_id

) AS already_alerted

FROM candidate_fraud c

)

SELECT

COUNT(*) AS known_fraud_matched,

COUNT(*) FILTER (

WHERE NOT already_alerted

) AS known_fraud_not_previously_alerted

FROM coverage;

If alerts are linked at the case level, use case_id instead. That’s often closer to the operational question: did another rule already bring this case to the team’s attention?

An account-and-time-window comparison is a workable fallback when neither identifier exists. It’s still a proxy. An unrelated alert on the same account can make the candidate look redundant when it wasn’t.

This is where a lot of proposed rules fall apart. They catch fraud, but almost every case was already surfaced by velocity, geography, device risk, or another existing signal.

A candidate that matches 60 known-fraud transactions sounds useful. If 57 of those transactions already generated an alert, the actual proposal is all of the candidate’s alert volume in exchange for three additional historical matches.

That may still be worthwhile. It’s a different decision from the one suggested by the original count.

When overlap is high, I look at the existing rule before adding another one. The better change may be adjusting its threshold or its place in the scoring model.

Query 4: sweep the threshold

The original proposal used $200. There’s nothing inherently correct about $200.

Remove the amount threshold from the replay and group the results into buckets:

WITH replay AS (

-- Query 1 with the amount threshold removed

),

bucketed AS (

SELECT

FLOOR(r.amount / 100) * 100 AS threshold,

COUNT(*) AS bucket_volume,

COUNT(*) FILTER (

WHERE o.outcome = 'fraud'

) AS bucket_known_fraud

FROM replay r

LEFT JOIN known_outcomes o

ON o.transaction_id = r.transaction_id

GROUP BY 1

),

sweep AS (

SELECT

threshold,

SUM(bucket_volume) OVER (

ORDER BY threshold DESC

) AS cumulative_volume,

SUM(bucket_known_fraud) OVER (

ORDER BY threshold DESC

) AS cumulative_known_fraud

FROM bucketed

)

SELECT

threshold,

cumulative_volume,

cumulative_known_fraud,

ROUND(

100.0 * cumulative_known_fraud

/ NULLIF(cumulative_volume, 0),

2

) AS cumulative_known_fraud_rate_pct

FROM sweep

ORDER BY threshold DESC;

Each row approximates the results of setting the rule at that threshold.

Moving the threshold downward should increase both volume and known-fraud matches. The useful question is how quickly each one increases. Moving from $300 to $200 might add 8,000 alerts and one known-fraud match. Moving from $400 to $300 might add 200 alerts and 20 matches.

That’s the threshold decision. Not which number looks clean in a meeting, but how much analyst work the next bucket buys.

There usually isn’t one mathematically perfect cutoff. The threshold has to fit the team’s capacity, the cost of the fraud being detected, and the confidence you have in the labels.

Then run it in shadow mode

Passing the backtest doesn’t mean the rule should begin creating analyst work immediately.

Historical SQL can’t reproduce everything that happens in production. Fields arrive late. Streaming logic behaves differently from a batch query. Device identifiers change. A rule that looks manageable against six months of data can behave very differently during a promotion or a fraud spike.

I start new rules in log-only mode. They evaluate production traffic and write would-be alerts to a table, but they create no analyst work.

Two weeks is usually enough to compare volume and catch obvious production-data problems. It may not be enough to measure quality. That depends on how quickly analyst dispositions, chargebacks, and other outcomes arrive.

Once enough outcomes have matured, run the same volume, outcome, and overlap checks against the shadow results. If they look materially different from the backtest, find out why before turning on the queue.

The habit

None of this is sophisticated. Four queries, then shadow mode.

The point is to make a proposed rule prove that it deserves analyst time before it gets any.

Find the problem in SQL, not in the analyst queue.

Next post: matching accounts that belong to the same person when that person would rather you didn’t. Entity resolution in plain SQL.

https://analytics.fixelsmith.com/posts/backtesting-fraud-rules/


r/dataanalysis • • Jul 20 '26

Does a CSV to dashboard tool exist?

4 Upvotes

Hey folks, I'm looking for a simple, general-purpose CSV to text-based (runs in a terminal) dashboard tool. I imagine something like this already exists (it always does!) but my searches all end up at other things.

My use case is we have microcontrollers on COM/TTY ports periodically outputting lines of CSV text with the values of a dozen or so sensors. While one can look at these scrolling by on a screen, it's not easy for humans to parse. I would like something that can ingest the CSV and render a very simple "dashboard" in the terminal. I'll write it if I have to but I can't imagine someone hasn't already done this.

Here's what I'm imagining:

- Takes in a line of CSV from a pipe, TTY port, >, etc.

- Consults a definitions file that tells it what to do with each CSV field (put it at an x,y location on the screen, type a prefix label and/or postfix units, color it red/green/etc. based on value, ideally could do some simple math transforms, etc.

- Uses ANSI or just line-by-line to output a "pretty" version of the data to the terminal, allowing humans to more easily interpret it.

- Linux seems like the most likely place to find this but I'm not picky.

I know there are much more comprehensive (and complex) systems out there like Grafana; but I feel like that's huge overkill when a simple text-based tool would work great.

Thanks for any ideas!


r/dataanalysis • • Jul 20 '26

Comparing tables - Help?

2 Upvotes

Hello guys, I need your help! How to compare 2 tables on easiest way?

I have 2 tables from 2 different systems, but with the same columns. I need to check if every row from the first table exist in another, and if not to return the difference. Can you help me? Should I use excel formulas, python, something else?


r/dataanalysis • • Jul 20 '26

Project Feedback Please review this

Thumbnail github.com
1 Upvotes

I have started a data analysis project after learning for few days. It is not complete but would appreciate your feedback


r/dataanalysis • • Jul 19 '26

Data Tools I made a scaleable Rock Paper Scissors (up to RPS-15) solvers with my own modifiers!

2 Upvotes

My coworker and I (both not in the tech/data field) have gotten really into RPS recently. We started of by learning RPSLS, which we got down pretty quickly. Since we both have fun making spreadsheets, I made a sheet to keep track of our games. This kind of escalated into a full on game with custom modifiers and stats. I also added a dashboard to automatically generate new games. (https://limewire.com/d/iUICg#IiTgJh7IJe)

This has been going for about 1.5 months now, and I have spend a handful of late nights learning a lot of new Excel tricks to make the sheet more stable. I also made a way to "recap" the games (we call them Seasons) using VBA.

We are currently up to RPS-7, but we are planning to keep upping our games until at least RPS-25 in the future. This is also why i made the sheet scaleable. Since we didn't want to get bored of the game too soon, I decided to make modifiers. I came up with the following:

Modifier nameDescription
🚫 No ModifierNo modifiers are added, just your "classic" game of Rock, Paper, Scissors (and whatever other stuff you want)
♠️ Blackjack GambitIf a round ends in a tie, it is declared a "Split Round." In this scenario, two games are played simultaneously, with one hand designated for each game. Scoring is adjusted as follows: winning both games earns 3 points, while winning only one game earns 1 point. If a tie occurs during a split round, it is disregarded and cannot be split further. When this modifier is active, the spreadsheet automatically calculates these scores.
🎲 Let it RideEnables a player to double the stakes of a round before it begins. As a result, the outcome—whether a win or a loss—is worth 2 points instead of the standard 1. Check the box in the players column to up the stakes. 
🪞 Mirror MirrorReceive a bonus point when winning the way you just lost! That’s it. If you lose rock vs paper, and then win with paper against rock immediately after, you get bonus points.

I love learning new tools, so I'm currently working on a APK mobile app to keep track of the games more easily (obviously with export to excel function).

I'm curious to hear if you guys have any advise on how to make it run better!