Does Jira Service Management Assets track depreciation and book value?

Stephen Ashby
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
January 22, 2025

I'm in the process of moving my assets over to Jira Service Management's Assets feature, and I'm wondering if there's a way to set up my assets to automatically depreciate and display a current book value. Having a running book value on our assets, especially our laptops and desktops, makes it much easier when it comes to selling or insuring our assets. I'd like to avoid having to keep a separate app to manage depreciation if I can help it.

Apologies in advance if this is already answered elsewhere, but I didn't find anything in my searches.

1 answer

1 vote
Robert DaSilva
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 24, 2025

Hi @Stephen Ashby , welcome to the Community!

While I have an idea on how you can capture depreciation value / book value inside of Assets, I do not think there is a built-in way for Assets to calculate this for you.

Instead, I think you'll need to implement some automation to perform the calculations to reduce the book value on an automatic basis.

 


In order to build this functionality, there are a few pre-requisites:

  1. You will need a JSM Assets Object Schema to hold IT assets you want to track depreciation against.
  2. You will need one or more Object Types that you intend to calculate depreciation against
  3. For these Object Types, you'll want to have the following Attribute fields configured:
    1. Purchase Price -> To hold the initial purchase price of the asset
    2. Purchase Date -> To hold the date calculations need to occur from
    3. Depreciation Period -> To determine how long it takes for the asset to go to $0
    4. Book Value -> To hold the current Book Value of the asset
    5. Book Value Last Updated Date -> To hold the last date the Book Value attribute was updated

Once all of this is complete, you should be clear to import your existing asset data into this object.

Screenshot 2025-01-24 at 12.44.23 PM.png

 


 

Now comes the tricky part, building the automation to update the Book Value of each asset individually. Here's the plan I came up with:

  1. Create an Automation Rule that triggers on a schedule, once per month, on the first of the month.Screenshot 2025-01-24 at 1.39.59 PM.png
  2. THEN Action -> Lookup Objects
    • Get a list of all assets that have the "Depreciating Asset" object type, inside of the "Calculate Book Value" Object Schema. (This will need to be updated based on your Assets configuration.)
    • This search should find any objects that have not been updated today
    • objectType = "Depreciating Asset" and ("Book Value Last Updated Date" < startOfMonth() OR "Book Value Last Updated Date" is EMPTY)
    • Screenshot 2025-01-24 at 1.41.03 PM.png
  3. IF condition -> Smart Value condition
    • Ensure that we only move forward if the Lookup Objects search returns more than 0 results
    • Screenshot 2025-01-24 at 1.41.37 PM.png
  4. FOR EACH: Add a branch -> Branch on AQL
    • This action has a limit of 50 objets per execution
    • For each object that returns as a result of an AQL query
    • AQL Query: 
    • objectType = "Depreciating Asset" and ("Book Value Last Updated Date" < startOfMonth() OR "Book Value Last Updated Date" is EMPTY)
    • This is the same AQL as in step 2
    • Screenshot 2025-01-24 at 1.42.19 PM.png
  5. THEN action -> Create variable "monthsSincePurchase"
    • It's easier to do some math as separate steps, so I split out the date comparison action here
    • {{object."Purchase Date".diff(now).months}}
    • This will get the number of months between the purchase date, and today
    • Screenshot 2025-01-24 at 1.42.59 PM.png
  6. THEN action -> Create variable "bookValue"
    • Assets Edit Object does not support math in the field at the moment (https://jira.atlassian.com/browse/JSDCLOUD-12831), so we need to calculate this value in advance, and put this into the following action to save.
    • {{#=}}{{object."Purchase Price"}} - ({{monthsSincePurchase}} * {{object."Purchase Price"}} / {{object."Depreciation Period"}}){{/}}
    • This math follows the formula [Purchase Price] - ( [Months Since Purchase] * [Purchase Price] / [Depreciation Period] )
    • Screenshot 2025-01-24 at 1.43.32 PM.png
  7. THEN action -> Edit Object
    • Here we'll update two fields:
    • Book Value
      • We'll set this field based on the calculations to reduce the Book Value
      • As we already calculated Book Value above, we simply include the smart value here
      • {{bookValue}}
    • Book Value Last Updated Date
      • I'm simply setting this to today, in the format YYYY-MM-DD
      • {{now.jiraDate}}
    • Screenshot 2025-01-24 at 1.44.04 PM.png

And once we have that setup, you can enable the rule and you should be off to the races! The rule should run once at first to calculate the initial values, and then once per month based on the settings in the Schedule condition.

This should result in your Assets being updated to look similar to the following:

Screenshot 2025-01-24 at 1.45.21 PM.png

You may want to play around with the rounding options to make sure the amount displays correctly and to your needs, but overall this should work.

Hopefully this meets your needs!
Robert

Robert DaSilva
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 24, 2025

Math rounding options can be seen here: https://support.atlassian.com/cloud-automation/docs/jira-smart-values-math-expressions/#Round, you may also want to consider the asCurrency function too.

Robert DaSilva
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 24, 2025

Ah! Depending on how many items you need to update, you will likely need this automation running more frequently than once per month.

You'll want to update the frequency, in addition to the AQL statement. This will all depend on the dates and frequency you choose, but here's a page on AQL date functions available: https://support.atlassian.com/jira-service-management-cloud/docs/use-assets-query-language-aql/#Functions

Robert DaSilva
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 24, 2025

One other note, the math I used here as an example does not control for the Book Value going negative. So if you need to ensure the value stops at 0, you'll want to add another step here to check if the calculated book value is below 0, and set it to 0 if that's the case.

 

EDIT: We might want to adjust the initial AQL as well to check for any Book Value entries that are 0 and above, or just empty.

objectType = "Depreciating Asset" and ("Book Value Last Updated Date" < startOfMonth() OR "Book Value Last Updated Date" is EMPTY) AND ("Book Value" is EMPTY OR "Book Value" > 0)

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
PREMIUM
PERMISSIONS LEVEL
Product Admin
TAGS
AUG Leaders

Atlassian Community Events