Розрахунок окупності інвестицій в програмне забезпечення і системи

  1. обчислення майбутнього
  2. сукупна ROI
  3. висновок
  4. Подяки
  5. Додаток 1. Випадкові змінні
  6. Малюнок 1. Трикутна розподіл для випадкової змінної
  7. Appendix 2. Додаток 2. Обчислення з випадковими змінними: метод Монте Карло
  8. Малюнок 2. Графік трикутного розподілу
  9. Малюнок 4. Змодельована розподіл суми (з 100000 відліків)
  10. Додаток 3. Формули ROI
  11. Ресурси для скачування

Ми часто говоримо про окупність інвестицій в програмне забезпечення, систему або ІТ-проект, щоб обґрунтувати рішення про роботу над ними. Іноді це звучить абстрактно, оскільки ми говоримо, що окупність інвестицій в певний ПО буде вище, не називаючи чисельних показників цієї ефективності. Тому потрібні точні визначення окупності інвестицій. Їх існує кілька, і кожна з них можна використовувати для прийняття різних рішень. У даній статті описуються ідеї, закладені в розрахунки. Докладні формули наведені в додатку 3 .

обчислення майбутнього

Хтось одного разу сказав: "Неможливо передбачити майбутнє, але це наша робота". Тому, хто відповідальний за обгрунтування величини майбутніх інвестицій, доводиться працювати з неповною інформацією. Наприклад, неможливо знати напевно, яким буде дохід від нового продукту. Проте ця цифра необхідна нам для розрахунку очікуваної окупності виведення даного продукту на ринок. На щастя існує шлях, по якому можна йти.

У наступному розділі представлено кілька підходів до оцінки окупності інвестицій з відповідними розрахунками. При роботі з наведеними нижче рівняннями замість фіксованих значень можна використовувати випадкові змінні (див. Додатки 1 і 2). У сучасному бізнес-аналізі часто використовуються випадкові змінні з трикутними розподілами, описані в додатку 1 .

Примітки:

  • Якщо ви вже знайомі з концепціями випадкових змінних, продовжуйте читання статті. Якщо немає, корисно спочатку прочитати додатки.
  • Корисно також прочитати введення в визначення вартості продовження розробки, наведене в моїй попередній статті "Розрахунок і підвищення окупності інвестицій в програмне забезпечення і системи", опублікованій в щомісячному журналі Communications of the Association for Computing Machinery (цифрова версія) у вересні 2011 року. У даній статті наведена точна формула, яка реалізує ідею вищевказаної попередньої статті з журналу.

Для початку скажемо, що всі види ROI засновані на одній базової концепції: окупність інвестицій, взагалі кажучи, являє собою відношення зміни вартості до вартості інвестицій. У цій формулі V0 - це якась початкова вартість, V1 - пізніша вартість, а I - сума грошей, витрачених за цей час:

Ця формула застосовується по-різному в залежності від виду активів.

Найпростіший приклад ROI - обґрунтування певних капітальних вкладень, наприклад акцій, що купуються за однією ціною і продаються за іншою. У розрахунку відомі дві величини, які встановлюються законами ринку: вартість покупки (purchase price - pp) і вартість продажу (sales price - sp). Тут ROI - це відношення зміни вартості до вартості покупки акції. В даному випадку:

В даному випадку:

Але навіть тут можливі варіанти. Припустимо, що професійний інвестор має два ключових питання:

To-date

Чи хороша раніше зроблена інвестиція (який буде ROI, якщо продати сьогодні)?
To-go Чи потрібно інвестувати в даний актив зараз (який буде ROI, якщо купити кілька цих активів сьогодні)?

Перше питання є ретроспективним, так як показує, наскільки добре інвестор приймає рішення. Відповідь може змінити стратегію інвестування. Друге питання є частиною реалізації стратегії інвестування. Природно, відповідь на ці питання вимагає різних розрахунків ROI:

To-date

Тут V1 - це сьогоднішня вартість (сумарний дохід від продажу всіх акцій за поточною ціною) плюс весь прибуток, отриманий інвестором до цієї дати (наприклад, дивіденди), а V0 і I - це сума всіх інвестицій в ці активи.
To-go Тут V1 - це оціночний дохід від продажу активів в майбутньому, V0 - це початкова вартість активів, а I - сума очікуваних витрат на інвестиції, початкової вартості і майбутніх виплат.

Важливо!
Ці ситуації практично повністю незалежні. Попередні витрати (вже зроблені), які використовуються в to-date, відсутні в to-go.

Повертаючись до першого рівняння, в аналізі інвестицій (IA) To-date ROI - це випадкова змінна, де

  • V1 = NPV сьогодні + сума фактичного прибутку на дану дату
  • V0 = NPVв початку програми
  • I = сума витрат на дану дату

Відзначимо, що I ґрунтується на фактичних витратах. У більшості випадків має сенс встановити NPV на початку програми в нуль.

Для IA-програм "кінець життя" настає, коли всі витрати і прибуток закінчуються. У цей момент вартість дорівнює нулю. В цілому IA-інвестиція знецінюється після здійснення.

В To-go ROI всі минулі витрати і прибуток ігноруються. Мають значення тільки дисконтовані майбутні витрати і прибуток. Застосуємо базове рівняння для отримання такої формули:

Розрахунки NPV і майбутніх витрат включають в себе майбутні значення, використовувані як випадкові змінні в IA, тому в даній формулі для аналізу інвестицій застосовується метод Монте-Карло (див. Додаток 2 ).

сукупна ROI

З огляду на, що IA містить реальні і прогнозовані витрати та прибуток, можна виконати інші корисні розрахунки ROI. Наприклад, ви хочете інвестувати в програму в разі обґрунтованої очікуваної прибутковості протягом усього життя інвестиції. В цьому випадку можна розрахувати прогнозоване значення To-date ROI в кінці програми. Оскільки вартість в кінці програми відсутній, встановивши NPV на початку програми в нуль, знаходимо:

При закінченні програми підставляються фактичні значення. До цього можна спрогнозувати total ROI, використовуючи суміш дисконтованих майбутніх значень і фактичних значень. В даному випадку total ROI - це випадкова змінна, яка визначається за допомогою IA-методу Монте Карло.

Прогнози ROI зазвичай розраховуються на сьогоднішній день. Однак, оскільки IA містить всі витрати і прибутки інвестиції (минулі значення як фактичні, а майбутні як випадкові змінні), для розрахунків можна встановити будь-яку кількість посилань дату. Тобто можна спрогнозувати розподіл NPV, а також To-go ROI і To-date ROI на будь-яку дату в майбутньому. Наприклад, це може бути дата здійснення. Можна передбачити значення на момент часу, коли продукт почне приносити прибуток. Може представляти інтерес порівняння двох інвестицій з різною датою здійснення.

Примітка.
Total ROI є прогнозовану To-date ROI з закінченням програми в якості дати здійснення.

висновок

Розрахунок за методом Монте-Карло в Додатку 2 виконаний на IBM® Rational® Focal Point, версія 6.5.1.

Окупність інвестицій (ROI), взагалі кажучи, являє собою відношення прибутку до витрат. Кожен, хто обмежений у коштах, хоче використовувати інвестиції з максимальною вигодою. Навіть для простих інвестицій існує кілька видів ROI, кожен з яких відповідає на різні питання. У даній статті розглянуті три найкорисніших варіанти:

  • To-date: який прибуток принесе зроблена інвестиція?
  • To-go: який прибуток очікується від майбутніх інвестицій?
  • Total: яку окупність можна очікувати від всіх інвестицій по закінченні програми?

Докладні формули наведені в додатку 3 .

Подяки

Дана стаття потребувала значних зусиль. Велике спасибі Джиму Дензмору (Jim Densmore) з IBM за редагування, рекомендації та питання. Без його допомоги статті могло б не бути.

Додаток 1. Випадкові змінні

Припустимо, що ви не впевнені у значенні, яке хочете використовувати. Наприклад, обсяг майбутніх продажів непоставленого товару може бути важливий, але ніхто не може бути впевнений в його фактичної вартості. У сучасній бізнес-аналітиці прийнято вказувати такі невизначені величини як випадкові змінні. Нижче наводиться короткий опис їх використання. (Значно більше інформації наводиться в книзі Дугласа Хаббарда (Douglas Hubbard) "Як виміряти що завгодно: визначення вартості нематеріальних активів в бізнесі" (2-я редакція), Wiley, 2010 рік). Оскільки ми не впевнені на 100% в майбутньому значенні, найкраще вказати, що значенням v може бути будь-яке значення в певному діапазоні. наприклад:

a ≤ v ≤ b

Цим ми говоримо, що значення v менше a або більше b з ймовірністю нуль (в деяких випадках ми можемо допустити, що a одно -∞ або b одно ∞). Ми також говоримо, що значення v знаходиться між a і b з ймовірністю 1. Чи можемо піти далі і припустити, що деякі значення v більш вірогідні, ніж інші. В цьому випадку можна вказати ймовірність кожного можливого значення v. Отже, у нас є крива залежності кожного можливого значення v і ймовірності цього значення v. Отже, випадкова змінна є числом, описуваних кривій, яка для кожного значення в діапазоні визначає ймовірність того, що змінна прийме це значення. Крива називається розподілом ймовірності випадкової змінної.

Важливою властивістю розподілів є те, що оскільки випадкова змінна повинна приймати деяке значення, сума ймовірностей значень повинна дорівнювати одиниці.

Наприклад, коли ми беремо кращий випадок (H), найгірший випадок (L) і найбільш ймовірне значення (E) обсягу майбутніх продажів, ми можемо вказати випадкову змінну з розподілом, представленим на малюнку 1.

Малюнок 1. Трикутна розподіл для випадкової змінної

Висота кривої в кожній точці представляє ймовірність того, що змінна прийме це значення. Тому ми вибрали розподіл з нульовою ймовірністю нижче L або вище H з піковим значенням у точці E. Висоти вибиралися так, щоб площа трикутника (сума всіх ймовірностей) дорівнювала 1. У цьому випадку ймовірність того, що v прийме значення близько L або H низька , а ймовірність значення близько E відносно висока.

Природно, розподіл може приймати форму будь-якій кривій з урахуванням того, що площа під цією кривої повинна дорівнювати одиниці.

Отже, випадкова змінна - це величина, яка може приймати будь-яке значення. Однак деякі значення більш вірогідні, ніж інші. Тобто випадкова змінна визначається функцією, яка кожному значенню привласнює ймовірність. Ця функція називається розподілом ймовірності випадкової змінної.

Appendix 2. Додаток 2. Обчислення з випадковими змінними: метод Монте Карло

Припустимо, ми хочемо скласти дві випадкові змінні v 1 і v 2. Як це зробити? По-перше, відзначимо, що сума теж повинна бути випадковою змінною. Отже, нам необхідно розподіл ймовірності суми. Для цього розподілу немає формули, але існує ефективний, широко використовуваний чисельний підхід, відомий як моделювання методом Монте Карло.

Ідея полягає у використанні генератора випадкових чисел для генерування значення v 1, значення v 2, а потім їх підсумовування. Значення вибираються згідно з розподілом ймовірності кожної змінної. Більш вірогідні значення генеруються частіше. Тепер збережемо цю суму і повторимо процедуру багато разів, скажімо 100000, і збережемо кожну суму. Для кожної суми можна обчислити вірогідність, визначивши частоту її появи в масиві збережених сум (деякі суми з'являються частіше за інших) і розділивши на число відліків даних (необхідно округлити суми для отримання дискретних чисел). Ми отримаємо приблизне розподіл сум.

Розглянемо приклад, де v 1 має трикутний розподіл з L = 3, E = 4, H = 7 (див. Рисунок 2), а v 2 має трикутний розподіл з L = 1, E = 6, H = 7 (див. Рисунок 3).

Малюнок 2. Графік трикутного розподілу
Малюнок 3. Графік трикутного розподілу

На малюнку 4 представлено розподіл суми двох випадкових змінних, показаних на малюнках 2 і 3, знайдене методом Монте Карло. Було використано 100000 відліків, а розрахунок проводився в IBM Rational Focal Point.

Малюнок 4. Змодельована розподіл суми (з 100000 відліків)

По-перше, відзначимо, що сума вже не є трикутним розподілом, а більше схожа на нормальний розподіл, що має вигляд колоколообразной кривої. Пік (мода) розподілу знаходиться 9.80. Це і очікувалося виходячи з теорії ймовірностей (зокрема, центральної граничної теореми). Такий розподіл суми виглядає розумно. Наприклад, можна очікувати, що найбільш ймовірне значення суми дорівнюватиме 10, тобто сумі двох найімовірніших значень, але в нашому прикладі воно дорівнює 9.8. Розбіжність є випадковим і зникає зі збільшенням кількості відліків. Також відзначимо, що ймовірність падає до нуля нижче 4, суми мінімумів (на малюнку 4 ще не виділено, але очевидно), і вище 14, суми максимумів.

Нарешті, фіксовані і випадкові змінні легко комбінуються. Фіксовану зміну можна розглядати як випадкову, ймовірність єдиного значення якої дорівнює 1, а ймовірність всіх інших значень дорівнює нулю.

Додаток 3. Формули ROI

Припустимо, що в нашій програмі є T тимчасових інтервалів, NB ідентифікованих прибутків і NC ідентифікованих витрат. Відзначимо, що кожна стаття витрат і прибутку є тимчасовою послідовністю значень. тоді:

Тут важливо відзначити, що всі тимчасові послідовності переглядаються протягом життєвого циклу, тобто вони залежать від часу. Тимчасові послідовності збираються у вигляді послідовностей зафіксованих даних. Тому в міру надходження інформації випадкові змінні повинні оновлюватися протягом життєвого циклу. Згодом оцінки перетворюються в реальні значення, а майбутні значення оновлюються. На практиці кожне значення тимчасових послідовностей прибутку і витрат теж залежить від часу. Більш докладно ця тема розглянута в розділах To-date і To-go ROI і Total ROI .

Bk (s) і Cl (s) - це зафіксовані потоки прибутку і витрат. Щоб не захаращувати виклад, ми будемо опускати фіксовану змінну, коли в ній немає необхідності. Нам буде потрібно ще кілька умовних позначень:

  • r - це розрахунковий період для обчислень, поточний період або будь-який період в майбутньому.
  • Для 1 ≤ n ≤ NB rbn = ставка дисконтування прибутку Bn.
  • Для 1 ≤ m ≤ NB rcm = ставка дисконтування витрат Cm.
  • Для даного періоду t і розрахункового періоду r сума всіх дисконтованих прибутків на t по відношенню до r дорівнюватиме:

Для даного періоду t і розрахункового періоду r сума всіх дисконтованих прибутків на t по відношенню до r дорівнюватиме:

  • Аналогічно, для даного періоду t і розрахункового періоду r сума всіх дисконтованих витрат на t по відношенню до r дорівнюватиме:

Аналогічно, для даного періоду t і розрахункового періоду r сума всіх дисконтованих витрат на t по відношенню до r дорівнюватиме:

Відзначимо, що значення тимчасових послідовностей можуть бути випадковими змінними, фіксованими змінними або і тими, і іншими. У будь-якому випадку в міру необхідності їх можна підсумувати за методом Монте Карло.

У наступному виразі визначається чиста теперішня вартість (net present value - NPV) за період r:

потім:

Відзначимо, що для двох будь-яких періодів s і t:

У цьому обчисленні TodateROIs є спеціальним випадком ROIs, 0. В цьому випадку Bj, s і Cj, s - це, як правило, фактичні значення.

Нарешті, Todate ROI - це ROIT, 0.

За визначенням кінця життя NPVT = 0, оскільки не залишається витрат або прибутків. Також в більшості випадків NPV 0 близька до 0, оскільки всі витрати знаходяться в майбутньому. Таким чином, встановивши NPV0 в 0, отримаємо:

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів