How to calculate the user's average rating on all his/her nodes with Fivestar?
I know that something like this can be done with computed field. It will require some PHP code though. See some discussion here

Here's what you need to do:


Install Computed Field and Fivestar
Go to admin/config/people/accounts/fields and create a computed field on the user entity type. In my case I named it "field_computed_rating". On the settings form for the field make sure the checkbox "Store value in the database" is unchecked.
Click on "Manage Display" for the content type you created the field on. Then make sure the format for that field is set to "Unsanitized".
(if you already have a custom module you can skip this step) In your code base within sites/all/modules, create a new folder titled fivestar_user_aggregate. Within that folder you will need to create  fivestar_user_aggregate.info with the following contents. 

name = Fivestar User Aggregate
description = Assign users an aggregate rating based on all their nodes
core = 7.x
package = Custom

Add this custom php function to your module file or create fivestar_user_aggregate.module within fivestar_user_aggregate with the following contents. If you named your field differently then you will need to modify the function name accordingly.

&lt;?php

function computed_field_field_computed_rating_display($field, $entity_field_item, $entity_lang, $langcode, $entity) {
    $result = db_query("SELECT n.uid, n.nid, vote1.value AS count, vote2.value AS average FROM {node} n
INNER JOIN {votingapi_cache} vote1 ON n.nid = vote1.entity_id
AND vote1.function =  'COUNT'
INNER JOIN {votingapi_cache} vote2 ON n.nid = vote2.entity_id
AND vote2.function =  'average'
WHERE n.uid = :uid", array(':uid' =&gt; $entity-&gt;uid));

    $rating_count = 0;
    $rating_total = 0;

    $nodes = $result-&gt;fetchAll();
    foreach ($nodes as $node) {
        $rating_count += $node-&gt;count;
        $rating_total += $node-&gt;average * $node-&gt;count;
    }

    if ($rating_total == 0) {
        $weighted = 0;
    } else {
        $weighted = $rating_total / $rating_count;
    }

    $variables = array(
        "rating" =&gt; $weighted,
        "average_rating" =&gt; $weighted,
        "votes"  =&gt; $rating_count,
        "stars" =&gt; 5
    );
    $variables["widget"]["name"] = "basic";
    $variables["widget"]["css"] = "sites/all/modules/fivestar/widgets/basic/basic.css";  
    drupal_add_css(drupal_get_path('module', 'fivestar') .'/css/fivestar.css');
    return theme('fivestar_static', $variables) . theme('fivestar_summary', $variables);
}

Enjoy! You should now see a weighted average of all a user's node's ratings on their page.