Expected Utility Calculation
curl --request POST \
--url https://api.fincept.in/quantlib/economics/utility/expected-utility \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"utility_type": "crra",
"param": 2,
"outcomes": [
8000,
10000,
12000
],
"probabilities": [
0.25,
0.5,
0.25
]
}
'import requests
url = "https://api.fincept.in/quantlib/economics/utility/expected-utility"
payload = {
"utility_type": "crra",
"param": 2,
"outcomes": [8000, 10000, 12000],
"probabilities": [0.25, 0.5, 0.25]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
utility_type: 'crra',
param: 2,
outcomes: [8000, 10000, 12000],
probabilities: [0.25, 0.5, 0.25]
})
};
fetch('https://api.fincept.in/quantlib/economics/utility/expected-utility', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fincept.in/quantlib/economics/utility/expected-utility",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'utility_type' => 'crra',
'param' => 2,
'outcomes' => [
8000,
10000,
12000
],
'probabilities' => [
0.25,
0.5,
0.25
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/economics/utility/expected-utility"
payload := strings.NewReader("{\n \"utility_type\": \"crra\",\n \"param\": 2,\n \"outcomes\": [\n 8000,\n 10000,\n 12000\n ],\n \"probabilities\": [\n 0.25,\n 0.5,\n 0.25\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/economics/utility/expected-utility")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"utility_type\": \"crra\",\n \"param\": 2,\n \"outcomes\": [\n 8000,\n 10000,\n 12000\n ],\n \"probabilities\": [\n 0.25,\n 0.5,\n 0.25\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/economics/utility/expected-utility")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"utility_type\": \"crra\",\n \"param\": 2,\n \"outcomes\": [\n 8000,\n 10000,\n 12000\n ],\n \"probabilities\": [\n 0.25,\n 0.5,\n 0.25\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"expected_utility": -0.0001021
}
}{
"detail": "Invalid API key"
}{
"detail": "Endpoint requires Basic tier or higher"
}{
"detail": [
{
"loc": [
"body",
"outcomes"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}quantlib-economics
Expected Utility Calculation
Calculate expected utility of a risky prospect (lottery) under Von Neumann-Morgenstern expected utility theory: EU = Σ p_i * U(x_i). Supports CARA, CRRA, and log utility functions. If probabilities not provided, assumes uniform distribution. Returns single expected utility value. Use for portfolio choice, insurance decisions, and risky choice analysis under rational expectations. [Tier: STANDARD, Credits: 2]
POST
/
quantlib
/
economics
/
utility
/
expected-utility
Expected Utility Calculation
curl --request POST \
--url https://api.fincept.in/quantlib/economics/utility/expected-utility \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"utility_type": "crra",
"param": 2,
"outcomes": [
8000,
10000,
12000
],
"probabilities": [
0.25,
0.5,
0.25
]
}
'import requests
url = "https://api.fincept.in/quantlib/economics/utility/expected-utility"
payload = {
"utility_type": "crra",
"param": 2,
"outcomes": [8000, 10000, 12000],
"probabilities": [0.25, 0.5, 0.25]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
utility_type: 'crra',
param: 2,
outcomes: [8000, 10000, 12000],
probabilities: [0.25, 0.5, 0.25]
})
};
fetch('https://api.fincept.in/quantlib/economics/utility/expected-utility', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fincept.in/quantlib/economics/utility/expected-utility",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'utility_type' => 'crra',
'param' => 2,
'outcomes' => [
8000,
10000,
12000
],
'probabilities' => [
0.25,
0.5,
0.25
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/economics/utility/expected-utility"
payload := strings.NewReader("{\n \"utility_type\": \"crra\",\n \"param\": 2,\n \"outcomes\": [\n 8000,\n 10000,\n 12000\n ],\n \"probabilities\": [\n 0.25,\n 0.5,\n 0.25\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/economics/utility/expected-utility")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"utility_type\": \"crra\",\n \"param\": 2,\n \"outcomes\": [\n 8000,\n 10000,\n 12000\n ],\n \"probabilities\": [\n 0.25,\n 0.5,\n 0.25\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/economics/utility/expected-utility")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"utility_type\": \"crra\",\n \"param\": 2,\n \"outcomes\": [\n 8000,\n 10000,\n 12000\n ],\n \"probabilities\": [\n 0.25,\n 0.5,\n 0.25\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"expected_utility": -0.0001021
}
}{
"detail": "Invalid API key"
}{
"detail": "Endpoint requires Basic tier or higher"
}{
"detail": [
{
"loc": [
"body",
"outcomes"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}Authorizations
API key for authentication. Get your key at https://api.fincept.in/auth/register
Body
application/json
Type of utility function to use
Available options:
cara, crra, log Example:
"crra"
Possible wealth outcomes
Minimum array length:
1Example:
[8000, 10000, 12000]
Utility function parameter (risk_aversion for CARA, gamma for CRRA, unused for log)
Example:
2
Probabilities for each outcome (must sum to 1, if null uses uniform)
Required range:
0 <= x <= 1Example:
[0.25, 0.5, 0.25]
⌘I
