Smartcollegeai:Vendor Management Automation: solution for automating vendor performance evaluations and contract renewals in a data center environment

Customer Information & Request
Name: Rohan Duhaney
Your magic request: "Write a code snippet to solve Vendor Management Automation: "Create a Python-based solution for automating vendor performance evaluations and contract renewals in a data center environment." Please use fititious data for a large scale company using Python."
Email: smartduhaney@gmail.com

Dear Rohan Duhaney,

# Import necessary libraries
import pandas as pd
import numpy as np
import datetime as dt

# Create a dataframe with vendor information and contract details
vendor_data = pd.DataFrame({'Vendor Name': ['Vendor A', 'Vendor B', 'Vendor C', 'Vendor D'],
                            'Contract Start Date': [dt.date(2021, 1, 1), dt.date(2020, 5, 1), dt.date(2019, 9, 1), dt.date(2018, 12, 1)],
                            'Contract End Date': [dt.date(2023, 1, 1), dt.date(2022, 5, 1), dt.date(2021, 9, 1), dt.date(2020, 12, 1)],
                            'Contract Value': [500000, 750000, 1000000, 1250000],
                            'Performance Score': [4.5, 3.8, 4.2, 4.9]})

# Create a function to calculate the contract renewal date
def calculate_renewal_date(start_date):
    """
    This function takes in a contract start date and calculates the renewal date
    based on a 3-year contract term.
    """
    return start_date + dt.timedelta(days=1095)

# Create a new column for renewal date using the function
vendor_data['Renewal Date'] = vendor_data['Contract Start Date'].apply(calculate_renewal_date)

# Create a function to calculate the vendor's overall performance score
def calculate_overall_score(score):
    """
    This function takes in a performance score and calculates the overall score
    based on a weighted average of the current score and the previous year's score.
    """
    return (score + vendor_data['Performance Score'].shift(1)) / 2

# Create a new column for overall performance score using the function
vendor_data['Overall Performance Score'] = vendor_data['Performance Score'].apply(calculate_overall_score)

# Create a function to calculate the contract renewal value
def calculate_renewal_value(value):
    """
    This function takes in a contract value and calculates the renewal value
    based on a 5% increase from the previous contract value.
    """
    return value * 1.05

# Create a new column for renewal value using the function
vendor_data['Renewal Value'] = vendor_data['Contract Value'].apply(calculate_renewal_value)

# Filter the dataframe to only include vendors with an overall performance score of 4 or higher
high_performing_vendors = vendor_data[vendor_data['Overall Performance Score'] >= 4]

# Sort the dataframe by renewal date in ascending order
high_performing_vendors = high_performing_vendors.sort_values(by='Renewal Date')

# Print the final list of vendors eligible for contract renewal
print(high_performing_vendors[['Vendor Name', 'Renewal Date', 'Renewal Value']])
Back to blog