Slow moving stocks may lead to issues like expiry (in case of food items), obsolescence, and high holding costs.
That's why you need the Inventory Aging Report. It
helps you maintain a healthy business by tracking how quickly your inventory moves.
It identifies the slow and fast moving inventory, and also lets you plan your warehouse capacity.
This report is done over a SQL query based on Advanced Analytics for Zoho Finance data. You can modify the query to suit your data structure.
Follow the below steps to do this.
-
Query Table - Stock In Hand
-
Query Table - Inventory Age Tier
-
Pivot View - Inventory Aging Report
Query Table -
Stock In Hand
This tracks the stock in hand by joining different tables.
|
SELECT
/*sum of Quantity On Hand from below query*/
T1.*
SUM
(T1.
Quantity
) OVER(
PARTITION
BY T1.
"Product ID"
, T1.
"Warehouse ID"
)
AS 'Quantity On Hand',
/*calculate cumulative sum of items count in reverse order until it's equal or more that Quantity On Hand*/
sum(if
(
T1
.
"In/Out"
=
'In'
,
T1
.
Quantity
,
0
)) OVER(PARTITION
BY
T1 .
"Product ID"
, T1.
"Warehouse ID"
ORDER BY
T1.
"Transaction Date"
DESC
)
"Reverse Cumulative Total"
/*stock in hand from Stock In Flow*/
FROM (SELECT
'In'
"In/Out",
"Transaction Date",
"Warehouse ID",
"Product ID",
sum
(
"Quantity In") "Quantity",
"Price (BCY)" "Purchase Price"
FROM
"Stock In Flow Table"
WHERE
"Stock In Flow Table"
.
"EntityType"
!=
'transfer_order'
GROUP BY
1,
2,
3,
4,
6
UNION ALL
/*stock in hand from Stock Out Flow*/
SELECT
'Out',
"Transaction Date",
"Warehouse ID",
"Product ID",
-1
*
sum
(
"Quantity Out"
),
null
FROM
"Stock Out Flow Table"
WHERE
"Stock Out Flow Table"
.
"EntityType"
!=
'transfer_order'
GROUP BY
1,
2,
3,
4
UNION ALL
/*stock in hand from Transfer Order*/
SELECT
'
In',
"Date",
"Warehouse ID",
"Product ID",
sum(if(
"Transfer Order".
"Status"
=
'transferred'
,
"Transferred Quantity"
,
0
)),
if
(
"Transfer Order"
.
"Status"
=
'transferred'
,
"Cost Price"
,
null
)
FROM
"Transfer Order"
LEFT JOIN
"Transfer Order Items"
ON
"Transfer Order"
.
"Transfer Order ID"
=
"Transfer Order Items"
.
"Transfer Order ID"
WHERE
"Status" not in ( 'draft' )
GROUP BY
1,
2,
3,
4,
6
UNION ALL
/*stock in hand from Transfer Order Item*/
SELECT
'Out',
"Date",
"Warehouse ID",
"Product ID",
sum
(
"Transferred Quantity"),
"Cost Price"
FROM
"Transfer Order"
LEFT JOIN
"Transfer Order Items"
ON
"Transfer Order"
.
"Transfer Order ID"
=
"Transfer Order Items".
"Transfer Order ID"
WHERE "Status" not in ( 'draft' )
GROUP BY
1,
2,
3,
4,
6
) AS T1
|
Query Table - Inventory Age Tier
The below query tracks the age of each inventory and bucket them into the following groups.
-
0-5 days old
-
6-10 days old
-
11-15 days old
-
16-20 days old
-
older than 20 days
|
SELECT
"In/Out",
"Product ID",
"Quantity",
"Quantity On Hand",
"Reverse Cumulative Total",
"Transaction Date",
"Warehouse ID",
"Purchase Price",
/*identify the Transaction Date by comparing Reverse Cumulative Total and Quantity On Hand */
if(min(if(
"Reverse Cumulative Total" - "Quantity On Hand"
>=
0
,
"Reverse Cumulative Total" -"Quantity On Hand "
,
99999999999
)) OVER ( PARTITION
BY
"Product ID" , "Warehouse ID"
ORDER
BY
"Transaction Date"
DESC
) !=
99999999999
, (
"Quantity On Hand" -("Reverse Cumulative Total" -"Quantity" )), "Quantity" ) "Final Qty" ,
if(min(if(
"Reverse Cumulative Total" - "Quantity On Hand"
>=
0
,
"Reverse Cumulative Total" -"Quantity On Hand"
,
99999999999
)) OVER ( PARTITION
BY
"Product ID" , "Warehouse ID"
ORDER
BY
"Transaction Date"
DESC
) !=
99999999999
, (
"Quantity On Hand" -("Reverse Cumulative Total" -"Quantity" )) * "Purchase Price" , "Quantity" * "Purchase Price"
)
'Inventory valuation',
/*classify into different age tier*/
if
( Datediff (
current_date(),
"Transaction Date"
) >=
0
AND
Datediff (
current_date()
,
"Transaction Date"
) <=
5
,
'0-5 days', if(
Datediff (
current_date()
,
"Transaction Date"
) >=
6
AND
Datediff (
current_date()
,
"Transaction Date"
) <=
10
, '
6-10 days', if
( Datediff (
current_date()
,
"Transaction Date"
) >=
11
AND
Datediff (
current_date()
,
"Transaction Date"
) <=
15
, '
11- 15 days', if(
Datediff (
current_date()
,
"Transaction Date"
) >=
16
AND
Datediff (current_date(), "Transaction Date" ) <= 21 ,
'16-20 days', 'greater than 20 days')))) 'Age tier'
FROM
"Stock In Hand"
WHERE
"In/Out" = 'In'
AND
"Quantity On Hand" - ("Reverse Cumulative Total" -"Quantity" )
>
0
|
Join Data using Lookup Column
Join the Inventory Aging Query table with the Warehouse and Items tables using the following
lookup columns.
-
Warehouse ID
from Inventory Age Tier
query table -
Warehouse ID
from
Warehouse
table
-
Items ID
from Inventory Age Tier
query table -
Items ID
from
Items
table
Pivot View - Inventory Aging Report
Now you can create the inventory aging pivot over the Inventory Age Tier query table.
Follow the below steps to do so.
-
Create a new pivot over the Inventory Age Tier query table.
-
Drop the columns as follows.
-
Column
-
Age tier
from
Inventory Age Tier
query table with
Actual.
-
Row -
Warehouse Name
from
Warehouse
table and
Item Name
from
Items
table with
Actual.
-
Data
-
Purchased Quantity from Inventory Age Tier
query table with
Sum.
-
The
Click Here to Generate Pivot
button allows you to generate the report.
-
Hide the totals by clicking
Show/Hide
for all Totals.
-
Click Sort > Custom Sort for Age Tier column to arrange the age tier.
-
Now apply the required Theme.
-
Your final Inventory aging report is ready.

You can explore the solution by copying the workspace from the below link.
https://analytics.zoho.com/workspace/19601000018963001
Recent Topics
Test Emails Show Sent "via zcsend.net" in My Gmail Account
I noticed the following info... However, a few email service providers such as Outlook and Gmail will display that the email was sent by zcsend.net (Zoho campaigns’ server) on your behalf instead of just your from email address. In order to prevent this, you can go for either of these options: Do not select the check box meant for DomainKey Signature which is listed under Unverified sender domains. Include our mail servers by advanced authentication method such as SPF/ Sender ID and DomainKey/ DKIM.
'UnAuthenticated Connection: zbooks_connection'
I have a zoho connection in Zoho Books, the link name es zbooks_connection, but I like to validate if exist, by example if I use this line in my code: response=zoho.books.getTemplates("", "","zbooks_connection"); But I don't have the connection I like
Calling the new 'Custom API' feature from within a Custom Widget
From what I've learned it is not possible to call an endpoint from the new "Custom API" feature within a Creator Widget. The SDK's doesn't support it yet, when calling it natively you end up with CORS issues or at least I couldn't get it working even
Cannot post to Instagram. I get the error: Insufficient permission to publish on this page. Check with your page Admin to update permissions.
We had another admin that left the company. Since he left, we get this error when posting to Instagram.
Zoho desk desktop application
does zoho desk has a destop applicaion?
Ability to re-order Workflow Rules
We really need the ability to re-order workflow rules within departments. Either the ability to drag/drop them into a different order or something.
Create an article template
I have a question concern the Knolwedge Database from Zoho Desk. There is any possibility to create an article template ? Exemple of what I research : TODAY : I want to create a lot af articles with the same baseline > I create one article > I copy/paste
Change of Blog Author
Hi, I am creating the blog post on behalf of my colleague. When I publish the post, it is showing my name as author of the post which is not intended and needs to be changed to my colleague's name. How can I change the name of the author in the blogs?? Thanks, Ramanan
Zoho FSM API Delete Record
Hi FSM Team, It would be great if you could delete a record via API. Thank you,
Instant Messaging Update | Now migrate your WhatsApp Business phonenumber from another BSP to Zoho Desk | Dec'23
Hi All, Everything seems to move at lightning speed these days, and time is certainly flying by for the IM team. But we are delighted at how much ground we covered this year. 🚀 For one, we enabled WhatsApp business phone number migration so that you
Upload ticket attachments via Drag-&-Drop
Hello, if you want to upload a file to the ticket attachment you need to click the button and use the file browser to select and upload the desired file. In many cases, it would be much more efficient if you could simply drag the file to the browser window...
Can we disable add to cart in Zoho Commerce?
Hello, Our sales happen on the phone. During the call the customer is directed to our website to inspect the products together with the sales rep. So we need a way to present our inventory. I figured Zoho Commerce is a good fit for this use case. However
Introducing WhatsApp integration in Bigin
Greetings! In today's business landscape, messaging apps play a significant role in customer operations. Customers can engage with businesses, seek support, ask questions, receive personalized recommendations, read reviews, and even make purchases—all
Zoho One account closure vs deactivation
I wonder what are the best practices and guidelines around deactivating vs deleting Zoho accounts in organisations? Any practical considerations?
Global Search placement in the new UI
Having a hard time with the global search placement in the UI redesign. Surely I can't be the only one. Previously global search placement was perfect. A bar at the top/center of the page. Exactly where you would expect it to be. Since the new UI has
Schedule Zoho CRM reports only on Business Days
Hello, Is it possible to schedule reports only on business days ? We currently get daily sales reports on weekend which has no value since the sales team doesn't work on weekends. Thanks
How to install Widget in inventory module
Hi, I am trying to install a app into Sales Order Module related list, however there is no button allow me to do that. May I ask how to install widget to inventory module related list?
How to track a contact or customer's past product purchases in Bigin Premiere?
Hello there. I am the sole user of Bigin for a small company (chess club), and would like to track current and past purchases made by a contact (player) or company (family which includes the player). Players may register for multiple tournaments, take
LENTITUD EN RECIBIR MAIL
Buenas tardes, Estamos experimentando lentitud en la recepción de correos electrónicos.
Items should display under specific warehouse
I have configured the multi warehouse but it show all the items under all warehouse which is not correct according to our business logic, so i want that items should only display under that specific warehouse not under all the warehouses not even with zero quantity. Some items should be common but not all so is there any option for that purpose so i can specific the items to its warehouse. Regards
Partial refunds
I am trying to process refund for a one item invoice, however the refund is partial: i am getting this error while creating credit note, can anyone share some wisdom about this
Best practice importing items and matching assemblies
Hi, I was wondering what would be the best practice to import items and composite items (assemblies) From my backup, what should I import first? The items or the composite items? I am on Zoho one, using inventory and books. Kind regards, Sabine
Bulk Fill In & Edit PO/Bill/SO/Invoice
Hello, I am adding stock in bulk on a PO, the system is automatically populating the Rate (price) and Tax from the item data. Problem is that the bill rate is different from the rate on the item data, so I have to manually erase each and enter the price.
Items Below Reorder Point Report?
Is there a way to run a report of Items that are below the Reorder Point? I don't see this as a specific report, nor can I figure out how to customize any of the other stock reports to give me this information. Please tell me I'm missing something s
Cancelled Transfer order problem
Hello, We've canceled a transfer order, and we can't add the related items to a new Transfer Order. The system tells us that the bin doesn't have the required quantity, but when we check the item, it indicates that there are 2 units in the bin. It also
Creating a Chart from a Report
In Zoho Analytics, is it possible to create a chart from a Pivot View report? We are looking to use Zoho Analytics to replace Excel for Sales reports and would like to be able to show both the table and the chart together.
Client Portal ZOHO ONE
Dear Zoho one is fantastic option for companies but it seems to me that it is still an aggregation of aps let me explain I have zoho books with client portal so client access their invoice then I have zoho project with client portal so they can access their project but not their invoice without another URL another LOGIN Are you planning in creating a beautiful UI portal for client so we can control access to client in one location to multiple aps at least unify project and invoice aps that would
Email Insights included in Bigin emals are marked as SPAM everywhere
Today I noticed that email recipients who use Office 365 never receive emails sent from Bigin. Further examination showed that all Email Insights links in email headers are marked as spam/phishing by Office 365. Example screen included. The problem is
Data Import | Zoho Analytics Custom Query Window Size
Please increase the window size for the Custom Query Data Import. It's impossible to work with such a small query window.
Name changed in settings for mailbox but still not changed when typed in To field
In the email account secretary@ i have updaetd the new staff members details but the old members name still appears when I type secretary@ in the To field. I cant work out where Zoho is finding the old name from. I have deleted the browser cache. If I
Cannot add my name to my domain name
I want to have My name@mydomain.com and it says my name is linked to another account already. Please fix it since I do not have another account.
Invoice status on write-off is "Paid" - how do I change this to "Written off"
HI guys, I want to write off a couple of outstanding invoices, but when I do this, the status of the invoices shows as "Paid". Clearly this is not the case and I need to be able to see that they are written off in the customer's history. Is there a way
Establishing new Zoho email account on laptop
Good Morning: I am very long time Outlook business user and decided to try your email service last night and had established an account. I am trying to verify my account; how do I establish my Zoho email account on my laptop? I opened the account with
unable to send message reason 550 5.4.6 unusual sending activity
My email account can't send message. It shows unable to send message reason 550 5.4.6 unusual sending activity detected
how to add email to existing organization i w
I am already registered my organization and i have an email id. I need one more email id but i can't find anywhere .i want the cheapest email id . how to add ?
e-mail bloqueado
Estou com meu e-mail lucas@peplus.me bloqueado, preciso desbloquear para retorno de usos em minhas atividades.
zoho labels api not working
We're using n8n to automte email reply using zoho api. I'm facing issue with label api. I added the required scopes but its not working. i followed zoho api documentation but didn't work. also, where do i find/how do i create zoho oauth token mentioneeed
Desk DMARC forwarding failure for some senders
I am not receiving important emails into Desk, because of DMARC errors. Here's what's happening: 1. email is sent from customer e.g. john@doe.com, to my email address, e.g info@acme.com 2. email is delivered successfully to info@acme.com (a shared inbox
Streams/Shared email doesn't show up in windows trident app. It works fine on MAC. Is there any difference between 2 install ?
I can see streams/share email boxs on my MAC version of trident app but i can't see them in windows version of trident app. Is there any difference between 2 install? I try to find setting but not able to see any setting to add stream/share email boxes.
add zoho account
How to add a zoho mail to previous zoho account? I have two
Next Page