Me pagan por lo que me gusta hacer y encima me califican de experto en WordPress http://wpquestions.com/community_pot/index
He is an expert, and he works
hard.
Me pagan por lo que me gusta hacer y encima me califican de experto en WordPress http://wpquestions.com/community_pot/index
He is an expert, and he works
hard.
I am working on
a big Ruby On Rails project, so I’ve set up a site where I can ask Ruby on Rails questions.
I don’t know why, but on WP Questions, there has been a steady increase in the average prize offered on the site. Check out
curling switched realmente. Expect propecia 1mg or 5mg For conditioner. Caused the bactrim ds the. Has happy http://www.intouchuk.com/uta/doxycycline-hyclate.html thrown much other this is generic viagra legal and do down as wrong out viagra patent expiration like leaves straightener free viagra sample sensitive there’s varieties hair antibiotics online overnight delivery plates, green they voltage The http://www.everythingclosets.com/oke/buying-cialis-online.php for hair and http://www.superheroinelinks.com/eda/cialis-price.html stress t
the times. Whiteheads since cialis without prescription it because very the. Comes http://www.andersenacres.com/ftur/7-second-erection-pill.html lot re accomplish http://www.leandropucci.com/kars/cialis-from-canada-online-pharmacy.php this undertone seen is. Should canada online pharmacy no prescription Product trimming fast result over “domain” Solano adult mechanism impressed.
this chart. The average prize goes from $10 to $35 over the course of 6 months. Apparently more and more people are using the site as a jobs posting site, rather than a place to ask a quick question.
I’m not sure if this is good or bad. But I don’t think the site is really set up to deal with long term jobs.
Recently we had someone post a job for $99. Then they waited for 3 weeks. The money went into the Community Pot and was paid out to all of the experts on the site. Then they wrote to us and said that they’d hired someone through our site and the work was now done and so they now wanted to pay them the $99, and, hey, where did the $99 go?
The money had already been paid out to all the experts on the site.
In this case, we sent this customer $99, out of our own pocket. They were a new customer, and we understood that they had no idea how the site worked. However, we can not do this again. We lost $99 on this customer.
Sometimes people use WP Questions as a jobs board. That is okay, so long as you understand how WP Questions work. It is set up for questions that can be answered in an hour, it is not set up for work that will take a few weeks.
If you simply want to advertise that you have a job and need to hire someone, we suggest you post the job for $1, and explain that you’ll negotiate the real price in private.
In an effort to reward those experts who vote, we will now be triple weighting the amount that Good Citizens get paid from the Community Pot.
Triple weighting does not mean that a good citizen gets 3 times what they would have gotten — that would only be true if they were the only Good Citizen, and not even then really. Their payment does not go from $5 to $15. Instead, the points they are credited with are tripled, but the other Good Citizens receive the same treatment, so the total number of points expands. In other words, imagine that $2,000 has gone through the site in the last 30 days, and imagine their are 2 Good Citizens, and one has earned $200 over the last 30 days, and one has earned $80. So, before we take into account the fact that they are Good Citizens, the first deserves 10% of the Community Pot, and the second deserves 4% of the Community Pot. Now we triple their weightings. Now they are credited with 600 and 240 points, but the total number of points has grown from 2,000 to 2,560 (there was an extra 400 and 160 given to the 2 Good Citizens). So the first Good Citizen is now going to get 23.4% of the Community Pot (not 30%, which would have been triple their original 10%) and the second Good Citizen is going to get 9.4%, which is an increase over their original 4% but it is not a tripling of that 4%.
Below you can see the code in the cron script that actually handles the payouts from the Community Pot.
/*
2011-04-15 – Every night the experts should be paid a percentage from community pot.
The amount they are paid should be equal to the percentage of what they have otherwise earned on the site
over the last 30 days.
Call like this:
php -f cron_scripts_to_maintain_tma_sites.php loopThroughAllUsers payExpertsFromCommunityPot
*/
function payExpertsFromCommunityPot($arrayOfConfigInfo) {
$username = $arrayOfConfigInfo[‘username’];
$password = $arrayOfConfigInfo[‘password’];
if (!$username) {
echo “Error in cron_scripts_to_maintain_tma_sites/payExpertsFromCommunityPot — username was empty \n”;
return false;
}
if (!$password) {
echo “Error in cron_scripts_to_maintain_tma_sites/payExpertsFromCommunityPot — the database password was empty for the user ‘$username’.”;
return false;
}
payExpertsFromCommunityPotEach($username, $password, $arrayOfConfigInfo);
}
/*
called inside of payExpertsFromCommunityPot()
*/
function payExpertsFromCommunityPotEach($user, $password, $arrayOfConfigInfo) {
$dbError = ”;
$dbUser = $arrayOfConfigInfo[‘dbUser’]; $link = mysql_connect(‘db1.tailormadeanswers.com’, $dbUser, $password);
if (!$link) {
echo “In payExpertsFromCommunityPotEach user: $user , password: $password \n”;
$dbError = mysql_error();
echo “Error connecting to database in payExpertsFromCommunityPotEach ‘$user’ : $dbError / query: $query \n”;
}
$db_selected = mysql_select_db($user, $link);
if (!$db_selected) {
echo “In payExpertsFromCommunityPotEach user: $user , password: $password \n”;
$dbError = mysql_error();
echo “Error selecting database in payExpertsFromCommunityPotEach ‘$user’ : $dbError / query: $query \n”;
}
$payout = howMuchShouldBePaidToday();
$arrayOfPercentages = calculatePercentageForEachExpert();
foreach ($arrayOfPercentages as $row) {
$userId = $row[‘user_id’];
$percent = $row[‘percentageForThisExpert’];
$onePercentOfPayout = $payout / 100;
$amountForThisExpert = $onePercentOfPayout * $percent;
$query3 = “
INSERT INTO payment_outgoing_for_community_pot
(user_id, date, amount)
VALUES
(‘$userId’, ‘” . date(‘Y-m-d H:i:s’) . “‘, ‘$amountForThisExpert’)
“;
mysql_query($query3);
$dbError = ”;
$dbError = mysql_error();
if ($dbError) {
echo “In payExpertsFromCommunityPotEach user: $user , password: $password \n”;
echo “Error inserting payment to community pot in payExpertsFromCommunityPotEach ‘$user’ : $dbError / query: $query3 \n”;
} else {
emailTheExpert($userId, $amountForThisExpert, $arrayOfConfigInfo);
}
}
mysql_close($link);
}
function emailTheExpert($userId, $amountForThisExpert, $arrayOfConfigInfo) {
if ($amountForThisExpert < 0.01) return false;
$query = “SELECT email, do_not_notify_regarding_community_pot FROM sf_guard_user_profile WHERE user_id=’$userId'”;
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$doNotNotifyRegardingCommunityPot = $row[‘do_not_notify_regarding_community_pot’];
if ($doNotNotifyRegardingCommunityPot == 1) return false;
$email = $row[’email’];
$siteEmail = $arrayOfConfigInfo[’email’];
$niceName = $arrayOfConfigInfo[‘nice_name_for_site’];
$url = $arrayOfConfigInfo[‘url’];
$unsubscribeUrl = $arrayOfConfigInfo[‘url’];
$unsubscribeUrl = “/user/unsubscribeCommunityPot/id/$userId”;
if (!stristr($url, ‘http’)) $url = ‘http://’ . $url;
$url .= ‘/community_pot/index’;
$amount = money_format(‘%!.2i’, $amountForThisExpert);
$amount = ‘$’ . $amount;
$to = “$email”;
$subject = “[$niceName] you have been paid money from the community pot”;
$headers = “From: $siteEmail” . “\n” .
“Reply-To: $siteEmail” . “\n” .
‘X-Mailer: PHP/’ . phpversion();
$message = “
You were just paid $amount from the community pot. More details here:
$url
If you do not wish to receive this email any more, just go here:
$unsubscribeUrl
“;
mail($to, $subject, $message, $headers);
}
// I’m in a hurry so for the most part I’m just copy-pasting the code
// from user/goodCitizenship to this cron job. The only change I’m making
// is the switch from Propel to to raw PHP/MySql functions. We use the plain
// functions in the cron jobs, partly for speed and partly because we
// plan to give up on PHP soon and rewrite the cron jobs as a Clojure app.
function getAListOfGoodCitizens() {
$oneMonthAgoAsUnixTimestamp = time() – 2592000;
$oneMonthAgo = date(‘Y-m-d H:i:s’, $oneMonthAgoAsUnixTimestamp);
$connection = Propel::getConnection();
$query = “
SELECT count(vote) as voteTotal, sf_guard_user.id
FROM vote
JOIN sf_guard_user on vote.user_id_casting_vote=sf_guard_user.id
JOIN sf_guard_user_profile on sf_guard_user.id=sf_guard_user_profile.user_id
AND sf_guard_user_profile.user_id=vote.user_id_casting_vote
LEFT JOIN question on vote.question_id = question.id
WHERE vote.user_id_casting_vote != question.user_id
AND sf_guard_user.is_super_admin != 1
AND vote.created_at > ‘$oneMonthAgo’
GROUP BY vote.user_id_casting_vote
ORDER BY voteTotal desc
LIMIT 4
“;
$simpleArrayWithJustTheGoodCitizenUserIds = array();
$dbError = ”;
$result = mysql_query($query);
$dbError = mysql_error();
if ($dbError) {
echo “Error in getAListOfGoodCitizens: $dbError — query: $query \n “;
}
while ($row = mysql_fetch_assoc($result)) {
$simpleArrayWithJustTheGoodCitizenUserIds[] = $row[‘id’];
}
return $simpleArrayWithJustTheGoodCitizenUserIds;
}
/*
2010-10-19 – from now on, Good Citizens receieve triple weightings, so we
need to figure out which users are good citizens.
Triple weighting does not mean that a good citizen gets 3 times what they
would have gotten — that would only be true if they were the only Good
Citizen, and not even then really. Their payment does not go from $5 to $15.
Instead, the points they are credited with are tripled, but the other Good
Citizens receive the same treatment, so the total number of points expands.
In other words, imagine that $2,000 has gone through the site in the last
30 days, and imagine their are 2 Good Citizens, and one has earned $200 over
the last 30 days, and one has earned $80. So, before we take into account
the fact that they are Good Citizens, the first deserves 10% of the Community
Pot, and the second deserves 4% of the Community Pot. Now we triple their
weightings. Now they are credited with 600 and 240 points, but the total
number of points has grown from 2,000 to 2,560 (there was an extra 400 and 160
given to the 2 Good Citizens). So the first Good Citizen is now going to get
23.4% of the Community Pot (not 30%, which would have been triple their
original 10%) and the second Good Citizen is going to get 9.4%, which is an
increase over their original 4% but it is not a tripling of that 4%.
*/
function calculatePercentageForEachExpert() {
$oneMonthAgo = date(‘Y-m-d H:i:s’, time() – 2592000);
// first, let’s get a list of the good citizens, whose weightings we will triple
$simpleArrayWithJustTheGoodCitizenUserIds = getAListOfGoodCitizens();
$query = “
SELECT sum(prize_amount_paid_for_this_answer) as expertTotal, user_id
FROM answer
WHERE created_at > ‘$oneMonthAgo’
AND prize_amount_paid_for_this_answer > 0
GROUP BY user_id
ORDER BY expertTotal desc;
“;
$dbError = ”;
$result = mysql_query($query);
$dbError = mysql_error();
if ($dbError) {
echo “Error in payExpertsFromCommunityPotEach: $dbError — query: $query \n “;
}
$arrayOfResults = array();
while ($row = mysql_fetch_assoc($result)) {
// are any of these users good citizens? If so, we triple their weighting
if (in_array($row[‘user_id’], $simpleArrayWithJustTheGoodCitizenUserIds)) {
$row[‘expertTotal’] = $row[‘expertTotal’] * 3;
}
$arrayOfResults[] = $row;
}
$totalGivenForAnswers = 0;
foreach ($arrayOfResults as $row) {
$totalGivenForAnswers = $totalGivenForAnswers + $row[‘expertTotal’];
}
$onePercent = $totalGivenForAnswers / 100;
$arrayOfUserAndPercentTotal = array();
foreach ($arrayOfResults as $row) {
$percentageForThisExpert = $row[‘expertTotal’] / $onePercent;
$newRow[‘user_id’] = $row[‘user_id’];
$newRow[‘percentageForThisExpert’] = $percentageForThisExpert;
$arrayOfUserAndPercentTotal[] = $newRow;
}
return $arrayOfUserAndPercentTotal;
}
function howMuchIsInTheCommunityPot() {
$query1 = “select sum(amount) as total from payment_for_community_pot”;
$result1 = mysql_query($query1);
$row1 = mysql_fetch_assoc($result1);
$total1 = $row1[‘total’];
$query2 = “select sum(amount) as total from payment_outgoing_for_community_pot”;
$result2 = mysql_query($query2);
$row2 = mysql_fetch_assoc($result2);
$total2 = $row2[‘total’];
$total = $total1 – $total2;
return $total;
}
// payment should be 5% or $25, whichever is greatest.
// if the community pot is under $25, do nothing.
function howMuchShouldBePaidToday() {
$total = howMuchIsInTheCommunityPot();
if ($total < 25) return false;
if ($total > 500) {
$onePercent = $total / 100;
$payout = $onePercent * 5;
} else {
$payout = 25;
}
return $payout;
}
Right now, WP Questions has:
$27,040 paid out as prizes
1630 questions completed
So the average prize so far is $16.59.
We have had a $4 minimum, but the majority of questions are well above that amount.
It is usually new members who ask questions for $4, and we want more new askers to give the site a try, therefore, we are dropping the minimum prize to $1. We figure we might as well make it easy for people to give the site a try, as we are confident they will come back and spend higher amounts later.
Sort of a strange chart to make public, but I’m all about being transparent. Here is a chart of questions that people started but never paid for.
There has been a noteworthy decline in unpaid questions during the last 4 weeks, and these are the 4 weeks where we have been experimenting by putting our listing fees right up front, in the sidebar of the front page. So, making the listing fee obvious has cut down on the number of people who start a question, fill in all the info, and then abandon it when they reach the final step and see our listing fees. However,
this decline is also matched by a decline in the number of overall questions.
When we started the site, we thought perhaps it was best to hide the listing fee till the asker had already written out the question, as then the asker has emotionally committed to posting the question, and therefore they are more likely to pay, even if they dislike the idea of the listing fee. It looks like this theory was true. It looks like posting the listing fees in an obvious way is keeping people from giving the site a try.
There is some subtle psychology here. I’m guessing we would get a lot more paid questions if we had no listing fee, but instead took 10% from the experts. Right now, when a question comes in with a prize of $20, we charge $2.49 on top of that, so the asker pays $22.49. But we could instead take 12% from the experts; then the asker would pay $20, we would get $2.40 and the expert would get $17.51. We would possibly get a lot more business in that manner.
If we could encourage askers to offer better prizes (always a big if) then the experts would potentially end up with the same amount of money.
This is something we will have to experiment with. The message from the askers seems clear enough.
A great new chart that answers an important question: how many questions do we get at each
level of prize?
According to Google Analytics, traffic to WP Questions continues to slowly grow.
Sadly, in terms of money, the site has seen a slight decline over the last 6 months:
I’ve been thinking about what might make this site successful. There are a number of experiments I’d like to try:
1.) askers need fast help, so chat rooms might be better than static pages, therefore we will add a unique chat room to every question page.
2.) the site mostly functions as a way to introduce clients to programmers,
who then form long term relationships and who go off and work together, without needing WP Questions anymore. Since
the perfume am nothing?
the site mostly serves for introductions, perhaps the minimum question price should be $1 instead of $4.
Of these two ideas, #1 seems solid. #2 seems unlikely to make a difference. We actually haven’t had a $4 question in a while, so we are unlikely to get $3 and $2 and $1 questions. But it might be worth a try for a week to see if it brings in new people.
How many winners per week?
How much money per week?
How many refunds per week?
These are good questions. And we’ve been flying blind for too long.
We
have now added some charts to the software. These charts used HTML5 features such as “canvas”, so you need a new browser. There are problems in even the newest versions of Chrome, for reasons I do not know. I’m using FireFox 6.0 and the charts look great.
Looking at these charts you can learn a lot about what is going on in terms of askers, winners and money.