Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
el-WIN
Contributor
Contributor

Is this possible to visualize in Qlik?

Hi all,

I am a total newbie to Qlik exploring what it can do and what it can't. I have a requirement that hopefully Qlik can meet. 

Requirement: show me what percent of partners have registration numbers above 60 percent.

Data:

Partners table

idnamecreatedlastmodified
1BL Team2017-09-28 14:58:33+002017-09-28 18:58:33+00
2BL Contractor2017-09-28 14:58:33+002017-09-28 18:58:33+00
3BL test2017-09-28 14:58:33+002017-09-28 18:58:33+00

 

Cohorts table:

idnamepartner_id
1BL Cohort11
2

BL Cohort2

2
3

BL Cohort3

3

 

Participants table:  (registration_step = 8 means registration completed.)

iduser_idcohort_idregistration_step
1102831918
284919413
3102898418
4102898528
5102898628
6102898728
7102898834
8102898934
9102899038

 

As you can see participants table is connected to cohorts table, and cohorts table is connected to partners table. 

Now I want to see what percent of partners have all their participants complete registration (registration_step = 8).  I can see that there are 3 participants in cohort_id=1, hence in partner_id =1.  Two of them have completed registration and 1 hasn't. So the registration rate for partner 1 is 66 percent. 

Registration rate for partner 2 is 100.

Registration rate for partner 3 is 33.

So 2 out of 3 (or 66 percent) partners have registration rate > 60.

How could I calculate and visualize this in Qlik? I understand it may require creating custom fields, but don't know what those could be.

Labels (1)
5 Replies
marcus_sommer

You could use just a table with the partner- respectively cohort-name and an expression like:

count({< registration_step = {8}>} user_id) / count(user_id)

to get the wanted percent and then may wrap it within a condition if it's bigger/lesser as your threshold.

To make this work you need also to rename your fields properly because all identical fieldnames will be associated. This means the id from the partner table must become the partner_id and the id from the cohort must become the cohort_id. Further you need to name the fields "name" differently.

- Marcus

el-WIN
Contributor
Contributor
Author

Hi Marcus,

Thanks for your response. If I count the way you describe then I am counting what percent of users have completed registration. That doesn't brake them down by partners though. The reports that my stakeholder wants to see is the partner level reports.  He wants to be able to log in and see how the partnerships are doing? What percent of partnerships have their users registration completion above 85 percent. From there they want to be able to drill down and see which partners are beyond, and further who the users are that haven't completed registration yet.

 

The filed properties are not identical in real DB. I just made mistake when naming them in my example table. 

marcus_sommer

Have you tried my suggestion? What didn't work or is different to your expectation?

- Marcus

el-WIN
Contributor
Contributor
Author

Perhaps I don't understand your solution, but I think registration rate of users and partners are different. In the original example I set the threshold to 60%. Let's change it to be 85% so that the new requirement is to show what percent of partners have registration numbers > 85 percent.

If I use count({< registration_step = {8}>} user_id) / count(user_id) I get 66 percent (6/9=0.66) 

There are 3 participants in partner_id =1. Two of them have completed registration and 1 hasn't. So the registration rate for partner_1 is 66 percent.

There are 3 participants in partner_id =2. All of them have completed registration. So the registration rate for partner_1 is 100 percent.

There are 3 participants in partner_id =3. One of them have completed registration and 2 haven't. So the registration rate for partner_1 is 33 percent.

Now, the total number of partners with registration rate >85 is one. This means that 1/3 or 33% of partners meet my criterion.  This is different than 66 that I get if I run count({< registration_step = {8}>} user_id) / count(user_id)

marcus_sommer

You may just change your threshold-value maybe through a variable and further aggregating the result of the condition, for example with something like:

sum(aggr(-(count({< registration_step = {8}>} user_id) / count(user_id) > $(var)), cohort_id))

- Marcus