# User specific column for 'rating out of 10'

**URL:** <https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211>\
**Category:** Ask for Help\
**Created:** [December 1, 2020, 10:01am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211 "2020-12-01T10:01:07Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Simon\_Hill](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/simon_hill/32/94730_2.png) [@Simon\_Hill](https://community.glideapps.com/u/Simon_Hill)\
**Post date:** [December 1, 2020, 10:01am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/1 "2020-12-01T10:01:08Z")

</div>

I have a list of items. The app allows users to rate the items by inputting a user specific score (1 - 10). The values are stored in a data column that is specified to be a number, it is restricted to values 1 - 10 and is user specific. So far so good. For example, an item is an apple and receives 3 user ratings : 8,9 & 10.

How can I have add a new data column that calculates the average rating for the apple, e.g. 9 out of 10? Will it work if I simply add a maths column and use Average() ? Will it see the rating entry has many user values or will it only ‘see the single value entered’ by the current user?!

Thanks for any pointers.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [December 1, 2020, 10:07am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/2 "2020-12-01T10:07:19Z")

</div>

First up, if you want an average, you must catch those ratings in separate rows, in another sheet.

Then you can make a relation that match the item name in the current sheet with the item name in the newly created sheet, set to match multiple, then rollup the average of that relation’s ratings.

We don’t have rollup over user-specific columns now.

---

<div class="post-metadata">

**Author:** ![Simon\_Hill](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/simon_hill/32/94730_2.png) [@Simon\_Hill](https://community.glideapps.com/u/Simon_Hill)\
**Post date:** [December 1, 2020, 10:19am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/3 "2020-12-01T10:19:08Z")

</div>

Thank you.

This is a bit beyond me… do you have an example of the first part ‘you must catch those ratings in separate rows, in another sheet’?

Where do those ratings go? In my Users sheet?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [December 1, 2020, 10:33am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/4 "2020-12-01T10:33:15Z")

</div>

No, you should create a new sheet, let’s call it “Rating submissions”.

The structure should be: Email | Item ID/name | Rating (number)

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [December 1, 2020, 1:39pm UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/5 "2020-12-01T13:39:23Z")

</div>

I have another idea that wouldn’t require additional rows in another sheet, but first I have a question. Once a rating is submitted, can the user ever change it again?

To answer your last question, no you can’t use a math column to average a user specific column value from all users. The calculation happens on the user’s device and the only value on the device is the value that’s specific to the user. There is no access to the user specific value of other users.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [December 1, 2020, 1:55pm UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/6 "2020-12-01T13:55:24Z")

</div>

Increment on 2 columns then a math to divide I guess?

---

<div class="post-metadata">

**Author:** ![Simon\_Hill](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/simon_hill/32/94730_2.png) [@Simon\_Hill](https://community.glideapps.com/u/Simon_Hill)\
**Post date:** [December 1, 2020, 2:28pm UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/7 "2020-12-01T14:28:51Z")

</div>

Hi Jeff. - thanks for responding.

I would be fine if users were only able to submit a rating once. Does that help?

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [December 2, 2020, 9:15am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/8 "2020-12-02T09:15:36Z")

</div>

Sorry for the delay.

If a user won’t be allowed to change the rating, then what I’m thinking is that you can use something like a choice component so a user can choose a rating and it will be saved to the user specific column you already created. Next you would create two non-user specific columns. One to hold a ‘total rating’ amount, and one to hold a ‘total count’. Next you’ll probably need another user specific numeric column to hold the ‘saved rating’ value to indicate if a user ‘rated’ the item or not. Now you can create a button or some other component that will allow you to create a custom action. In the custom action, you can use the increment action to increment the ‘total rating’ column by amount the user chose, create another increment action to increment the ‘total count’ by 1, and finally, the set column action to save the rating value to the ‘saved rating’, so we know if they have already rated the item or not.

Now that we have the columns filled, you can create a math column to calculate the average from the ‘total rating’ and ‘total count’ columns and display the average in the item details. Also, we can set visibility to hide the choice component and button once the ‘saved rating’ column is greater than 0 so the user cannot update the rating again.

If you ever wanted to allow the user to change their rating, then there are a few extra steps. First we will need a math column that takes the ‘saved rating’ value and multiplies by -1. Instead of hiding the choice and button components, they would always be visible. What we then have to do is modify the custom action to first perform an IF to check it the ‘saved rating’ is 0. If it is then it can perform the rest of the actions that we set before. Else, we will need to first increment the ‘total rating’, by the negative amount calculated in the math column. Next we will need to increment the ‘total count’ by -1. Finally, now that we have reversed the previous rating, we will need to set up the rest of the actions like we did before to add the new rating through increments and set set columns.

Hope that helps.

---

<div class="post-metadata">

**Author:** ![Wiz.Wazeer](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/wiz.wazeer/32/72423_2.png) [@Wiz.Wazeer](https://community.glideapps.com/u/Wiz.Wazeer)\
**Post date:** [December 3, 2020, 8:18am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/9 "2020-12-03T08:18:29Z")

</div>

Great !!

---

<div class="post-metadata">

**Author:** ![Manan\_Mehta](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/manan_mehta/32/13957_2.png) [@Manan\_Mehta](https://community.glideapps.com/u/Manan_Mehta)\
**Post date:** [December 3, 2020, 9:45am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/10 "2020-12-03T09:45:40Z")

</div>

> [@new Actions! zapzapzap](https://community.glideapps.com/t/actions/18026/89):
>
> And we can also rollup ratings now!

I achieved something similar here. It uses compound actions. I will create a tutorial soon.

---

<div class="post-metadata">

**Author:** ![Rosewebstudio](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/rosewebstudio/32/12261_2.png) [@Rosewebstudio](https://community.glideapps.com/u/Rosewebstudio)\
**Post date:** [December 3, 2020, 10:07am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/11 "2020-12-03T10:07:17Z")

</div>

@Manan_Mehta that would be helpful, thanks

---

<div class="post-metadata">

**Author:** ![thinker\_creative](https://avatars.discourse-cdn.com/v4/letter/t/c57346/32.png) [@thinker\_creative](https://community.glideapps.com/u/thinker_creative)\
**Post date:** [April 24, 2021, 4:45pm UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/12 "2021-04-24T16:45:55Z")

</div>

So, something similar to this, I have custom ratings for my app (user-specific) and want to build a pseudo recommendation system or at least show users similar elements that other rated similarly. Thoughts?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [April 24, 2021, 11:02pm UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/13 "2021-04-24T23:02:46Z")

</div>

So let’s say you rated item A 4 stars, you want to show all items that belong to the same category as item A, and also rated 4 stars or above?

---

<div class="post-metadata">

**Author:** ![thinker\_creative](https://avatars.discourse-cdn.com/v4/letter/t/c57346/32.png) [@thinker\_creative](https://community.glideapps.com/u/thinker_creative)\
**Post date:** [April 25, 2021, 4:56am UTC](https://community.glideapps.com/t/user-specific-column-for-rating-out-of-10/19211/14 "2021-04-25T04:56:15Z")

</div>

Kind of, I guess I’m not asking the question good. I started a new topic with a better question here: [Recommendation System - Like Netflix](https://community.glideapps.com/t/recommendation-system-like-netflix/25989)
