Uploaded image for project: 'Cost Management'
  1. Cost Management
  2. COST-577

Distinguish between capex and opex

XMLWordPrintable

    • Icon: Feature Feature
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • None
    • None
    • None
    • False
    • False
    • COST-1321Forecast costs and budgeting
    • 0% To Do, 0% In Progress, 100% Done
    • Undefined

      Feature Overview

      Goals

      As a user, I want to be able to differentiate one off costs and costs that are incurred through a period of time (capitilize the cost).

      As an admin, I want to be able to differentiate costs that are Opex from costs that are Capex and show them together in a way that makes sense.

      Problem:

      When the customer purchases resources, it can rent them for a short term or make a commitment to a longer period. When comparing those costs, the cash flows are not comparable, and thus being able to choose the best option is hard for the customer.  Traditionally, OPEX is a short term cost and can be represented as accrued and invoiced at the same time (i.e. AWS provide a hourly cost in arrears for your EC2 costs of the month for a service that you have already enjoyed), CAPEX is a long term cost that is paid in full as an investment, but is used for a long period (i.e. a 3 years reservation in AWS is paid in full in month 1 but is used for 3 years) in this sense, amortization is similar to depreciation for intangible assets

      In order to be able to compare both, you need to take into account what part of the overall costs can be used to compare: the portion that is relevant for the period being taken into account.

      This use case should support:

      • Define some costs as amortizable for cloud costs (i.e RI are an amortizable cost for the period)
      • Be able to change visualization between cash flow and amortized costs (i.e. show the RI costs as a single charge or as daily charges for the duration of the contract)
      • Be able to define price models as amortizable costs (i.e. Define a cost that is applied in day one but actually gets distributed into a period that is customizable)

      Why is this important?:

      Currently cost management does not provide a good way of comparing usage costs from capitalised costs.

      For instance, Reserved Instance can be seen in two ways:

      • as cash flow. Independently of the period where the cost is valid. Thus you get the full cost the day you purchase the RI, and you count everything else as 0. This would be equivalent to consider it full Opex. It is not accurate, as the real cost can be associated to the usage. That is to say, a customer that purchases  1 year reserved instance, even if he sees all the costs of the year as 0, is actually purchasing Capex. Costs of VM are affected by the purchase of RI (the costs of  on-demand VM will be discounted when they are associated to a reserved instance), so it creates scenarios that make hard to fully understand costs.
      • as an amortized amount. Every day (or hour) that you have your RI in your account, you get the cost of the equivalent service. In this way, you can compare the cost of running a RI for the month and the cost of running an on-demand VM for the same number of hours. If we compare for a month, the hourly on demand SKU will be equivalente to 720 hours, while the RI will be equivalent of 1/12 of the cost (adjusting both from the actual hours of the month. 

      AWS provides the concept of blended costs, where they calculate all the costs for the VM, applying the discounts of the RI, and then distribute those costs into the real number of VM.

      For instance: you have 10 VM ($1000/month), but 3 of them are covered by a reserved instance. The invoice will show $700, and the blended cost will be ($70/month/VM). This is wrong (those VM have already been paid for), but AWS does not take into account RI pricing for blended rates.

      With this scenario, we would be giving a more financially accurate version of the costs: where we calculate the price per VM as:

      • The customer has purchased a 3 year terms (25.920h) at price $7.776
      • Each hour is thus charged at $0.3/hour at full usage ($7776/25290h)
      • If one month the customer uses 100% of the reserved usage --> $0,3/hour per VM
      • Next month the RI is not applied as they change the VM type and only 50% is recognized --> each VM cost goes up to $0,6/hour (cost per hour / number of VM)

       

      This is also important to reflect accurately costs for subscriptions, that can be purchased yearly, for 3 years, or hourly.

      Examples

      • As a user, I want to be able to switch from seeing my RI and other amortized costs as  cash flow, or as amortized costs.
      • As an admin, I want to be able to set a cost as Capex, defining an amortization time (and calculation). at the beginning, amortization can be linear.
      • As an admin, I want to be able to set up amortized costs against the budget, and not get a warning if the cash flow goes over the budget because of Capex.
      • As an admin, I want to be able to see multi-year CAPEX expenditure as amortized costs
      • As an admin, I want to be able to identify cloud costs as OPEX or CAPEX and understand the amortized costs of the CAPEX costs. Starting with RI.

            Unassigned Unassigned
            pgarciaq@redhat.com Pau Garcia Quiles
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated: