diff --git a/funding campaign demo.ipynb b/funding campaign demo.ipynb index e9eb885..dd50123 100644 --- a/funding campaign demo.ipynb +++ b/funding campaign demo.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -39,13 +39,13 @@ " 'cutoff_date': init_date+timedelta(days=365*6/12),\n", " 'expected_time': timedelta(days=365*12/12)},\n", " 4:{'name': 'Analytics',\n", - " 'multiplier': 1.0,\n", + " 'multiplier': 1.25,\n", " 'min_raise': 780.0, \n", " 'max_raise': 1500.0, \n", " 'cutoff_date': init_date+timedelta(days=365*4/12.0),\n", " 'expected_time': timedelta(days=365*16/12.0)},\n", " 5:{'name': 'Mobile first',\n", - " 'multiplier': 1.0,\n", + " 'multiplier': 1.125,\n", " 'min_raise': 1610.0, \n", " 'max_raise': 2500.0, \n", " 'cutoff_date': init_date+timedelta(days=365*8/12.0),\n", @@ -62,43 +62,123 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "total_min = sum([campaigns[i]['min_raise'] for i in campaigns.keys()])\n", + "total_max = sum([campaigns[i]['max_raise'] for i in campaigns.keys()])\n", + "\n", + "total_first3_at_max = sum([campaigns[i]['max_raise'] for i in campaigns.keys()if i<4] )" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "smallest outcome: 6740.0\n" + ] + } + ], + "source": [ + "print(\"smallest outcome: \"+str(total_min))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "largest outcome: 12000.0\n" + ] + } + ], + "source": [ + "print(\"largest outcome: \"+str(total_max))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "outcome at first 3 full amount: 5000.0\n" + ] + } + ], + "source": [ + "print(\"outcome at first 3 full amount: \"+str(total_first3_at_max))" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "share of total budget covered by capping first 3: 0.7418397626112759\n" + ] + } + ], + "source": [ + "print(\"share of total budget covered by capping first 3: \"+str(total_first3_at_max/total_min))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{1: {'cutoff_date': datetime.datetime(2019, 9, 24, 6, 59, 26, 296512),\n", + "{1: {'cutoff_date': datetime.datetime(2019, 9, 24, 7, 14, 2, 789927),\n", " 'expected_time': datetime.timedelta(243, 28800),\n", " 'max_raise': 1500.0,\n", " 'min_raise': 984.0,\n", " 'multiplier': 2.5,\n", " 'name': 'ABC field test'},\n", - " 2: {'cutoff_date': datetime.datetime(2019, 11, 24, 2, 59, 26, 296512),\n", + " 2: {'cutoff_date': datetime.datetime(2019, 11, 24, 3, 14, 2, 789927),\n", " 'expected_time': datetime.timedelta(182, 43200),\n", " 'max_raise': 1500.0,\n", " 'min_raise': 726.0,\n", " 'multiplier': 2.0,\n", " 'name': 'Giveth field test'},\n", - " 3: {'cutoff_date': datetime.datetime(2020, 1, 23, 22, 59, 26, 296512),\n", + " 3: {'cutoff_date': datetime.datetime(2020, 1, 23, 23, 14, 2, 789927),\n", " 'expected_time': datetime.timedelta(365),\n", " 'max_raise': 2000.0,\n", " 'min_raise': 1140.0,\n", " 'multiplier': 1.5,\n", " 'name': 'CV field test'},\n", - " 4: {'cutoff_date': datetime.datetime(2019, 11, 24, 2, 59, 26, 296512),\n", + " 4: {'cutoff_date': datetime.datetime(2019, 11, 24, 3, 14, 2, 789927),\n", " 'expected_time': datetime.timedelta(486, 57600),\n", " 'max_raise': 1500.0,\n", " 'min_raise': 780.0,\n", - " 'multiplier': 1.0,\n", + " 'multiplier': 1.25,\n", " 'name': 'Analytics'},\n", - " 5: {'cutoff_date': datetime.datetime(2020, 3, 24, 18, 59, 26, 296512),\n", + " 5: {'cutoff_date': datetime.datetime(2020, 3, 24, 19, 14, 2, 789927),\n", " 'expected_time': datetime.timedelta(730),\n", " 'max_raise': 2500.0,\n", " 'min_raise': 1610.0,\n", - " 'multiplier': 1.0,\n", + " 'multiplier': 1.125,\n", " 'name': 'Mobile first'},\n", - " 6: {'cutoff_date': datetime.datetime(2020, 1, 23, 22, 59, 26, 296512),\n", + " 6: {'cutoff_date': datetime.datetime(2020, 1, 23, 23, 14, 2, 789927),\n", " 'expected_time': datetime.timedelta(912, 43200),\n", " 'max_raise': 3000.0,\n", " 'min_raise': 1500.0,\n", @@ -106,7 +186,7 @@ " 'name': 'Easy Deploy'}}" ] }, - "execution_count": 3, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }