#!/usr/bin/perl
#############################################################################
#
# convert.cgi -- discusses probability vs. consensus value.
#
# $License:
#
# Copyright (C) Kenneth A. Kittlitz, All Rights Reserved.
#
# Unless explicitly acquired and licensed from Licensor under a
# separate arrangement, the contents of this file are subject to the
# Idea Futures Public License ("IFPL") Version 1.0, or subsequent
# versions as allowed by the IFPL, and You may not copy or use this file
# in either source code or executable form, except in compliance with the
# terms and conditions of the IFPL.
#
# The IFPL V1.0 is identical to the Reciprocal Public License V1.1 as
# published at , with the
# following two changes to term 13.8:
#
# [start of changes]
# Change 1) Replace:
# "This License shall be governed by Colorado law provisions..."
# with:
# "This License shall be governed by Alberta law provisions...".
#
# Change 2) Replace:
# "You further agree that Adams County, Colorado USA is proper venue..."
# with:
# "You further agree that Alberta, Canada is proper venue...".
# [end of changes]
#
# All software distributed under the License is provided strictly on
# an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
# IMPLIED, AND KENNETH A. KITTLITZ HEREBY DISCLAIMS ALL SUCH
# WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT,
# OR NON-INFRINGEMENT. See the License for specific language
# governing rights and limitations under the License.
#
# :License$
#
#############################################################################
use strict;
use CGI;
require "Common.pl";
my (@content,$data);
my $query = new CGI;
print $query->header;
my $title = "Conversion between probability and consensus value";
my $header = "Scaled Payoffs";
$data = <FX can be used to find a consensus on the year for a future event (as in Extropy #15, and Wired's "Reality Check" feature), or even the value of a variable with arbitrary units over a range of possible values, e.g., neutrino mass in eV, or a performance measure at a point in time, such as the number of people in space or computer performance. The idea is to fix the payout as a function of the variable of interest (say, year).
For example, SSTO could happen sometime between tomorrow and 2020 at the outside (after the singularity we will all have one :-). YES pays 1.00 in 1995, 0.00 in 2020. NO is reverse. Assume linear in between, or
YES = (2020 - Year) / (2020 - 1995)
NO = (Year - 1995) / (2020 - 1995)
- If you want to bet on "never", or that it will not happen by 2020, buy NOs at up to 100%.
- If think it has already happened (e.g., you have inside information on a skunkworks project that you will make public after placing your bets), buy YESs at up to 100%.
- To bet that it will happen before 2010 (for the period up to 60% into the range, the redemption value of YES >= 40%), buy YES at 40 or sell NO at 60 (whoever buys your NO will get <= 60 for it). E.g., if judge says it happens in year 2006, YES pays 56% and NO pays 44%.
- You cannot place a bet that it will happen within a range (e.g., after the year 2005 but before 2010), but you can place orders that will create a transaction if it moves out of the range. So to bet on year=[2006,2010], "Sx\@56,Bx\@40" which is equivalent to "BxN\@44,SxN\@60"
Once you have a market price the consensus year can be reported by solving the above equations for year.
This would give an indication as to the mean of the consensus, but not its variability (both in terms of spread and skew): the goal was simplicity (a single claim) over that added detail. A concern is that the claim assumes the shape of the anticipated curve, whether linear (most common), exponential (cosmology claims), cumulative Poisson (random events), whatever. The mechanics of the trading are unchanged, and anyone could create a claim of this type right now. However changes to the user interface (could use a client applet) would help by allowing conversions between variable (year) and price (perhaps enter order as a year and use the simulate option to show the cost prior to processing).
EOT
push(@content,$data);
&showHtml(8,$title,$header,undef,undef,@content);