Hi @orengaliki
I have created 2 lists: List 1 & List 2. List 1 has 2 columns 'Title' and 'Manager' (people or user field) & List 2 also has two columns "Title" & "Target" (number type).
Here are the detailed steps for designing the flow:
1. Firstly, create recurrence flow and configure it to run on monthly basis:

2. Next, we will fetch all the records from List 2 using 'Get items' action:

3. We will add all email addresses in an array using 'Select' action. The input of select action will the output value object array from 'Get items' and click on 'Switch Map to text mode' button on the right side:

Next, choose 'Title' column from the Dynamic content :

4. Next, we will fetch all the records from List 1 using 'Get items' action:

5. Next, we will find the distinct name by writing an expression using union() function and iterate those using 'Apply to each' action:

Expression used for finding the distinct name from "Select" action output:
union(body('Select'),body('Select'))
6. We will save iterated item (name) using compose action:

Continue inside "Apply to each" box, add 2 filter array action to filter out records from both list for the current item (name) in each iteration:


7. Now, we will add a Condition action to check if Target column in List 2 is less than the count of rows in List 1:

Expression used for left hand operand:
length(body('Filter_array'))Expression for right hand operand:
first(body('Filter_array_2'))?['Target']
8. If condition is true, then we will send an email to the user in "Yes" path:

Expression used for determining the email recipient:
first(body('Filter_array'))?['Manager/Email']Expression for finding the target deficit:
sub(first(body('Filter_array_2'))?['Target'],length(body('Filter_array')))
It is quiet complex & lengthy but will help you in designing the required flow 🙂
If this helps & solves your problem, please remember to give a 👍 and accept my solution as it will help others in the future.
Thanks