Walmart snafu with too much data. Some notes and other small changes.

This commit is contained in:
Norm Rasmussen
2023-02-07 18:07:54 -05:00
parent b2548e676a
commit f5fee9b499
4 changed files with 76 additions and 20 deletions

42
SKO.md
View File

@ -15,11 +15,42 @@ Develop a 3-5 minute “Shark Tank Style” elevator pitch for Northpass. Your p
### Response
Sharks, I am seeking from you a $300,000 investment and a 2% in our next generation customer education SaaS company.
You're probably rolling your eyes right now, knowing there's no money in education. If people want information, they
will just google it, right? Sure, they could, but then you'd be relying on Marketing to do the heavy lifting of
SEO - basically, a glorified word search game for kids.
You may also be thinking back to days in college classrooms with horrible scan-trons and final exams. All these types of
educational environments are conducive to only one thing: secrecy and negative competition. Unless you're the NSO and
selling Pegasus 2.01, why would you want your clients to be secretive and combative with their learning?
Northpass is so much more than learning. It is an invaluable tool to deepen brand loyalty, increase market share, and
strengthen the bonds between your internal and external stakeholders.
Take a look at your own companies, Sharks. Where does "learning" fall in your tech stack? If you run your companies
anything like my clients, where over 60% have admitted to having lukewarm executive buy-in, you have placed an integral
part of your customer experience at the bottom of the stack. But you know what? That's okay if Customer Education is
sitting at the bottom of the stack. That's because it is my firm believe that customer education is the cornerstone of
any well-adjusted growing tech company.
As tech-entrepreneurs we have put all the value on educating ourselves on how to run companies and grow teams, but
except our clients to just understand our app and technology.
From the most technical of companies, like Recast Software, educating their clients on Microsoft Endpoint Solutions and
Server Management, or Skuid, a code-less solution for data connecting workflows, to Big Ideas Learning, a Saas solution
for the-always-busy public school teacher, customer education is the current that flows underneath all your other
systems.
The value is simple. Give your customers right-on-time experiences with your brand and product in an asynchronous
format so that when
## Why Now?
### Instructions
Develop a 3-5 minute “Shark Tank Style” elevator pitch for investing in Northpass and digital customer education now. Your pitch should:
Develop a 3-5 minute “Shark Tank Style” elevator pitch for investing in Northpass and digital customer education now.
Your pitch should:
* Detail the investment youre seeking for Northpass
* Identify the problem Northpass is solving
@ -28,11 +59,18 @@ Develop a 3-5 minute “Shark Tank Style” elevator pitch for investing in Nort
### Response
Sharks, you've learned a lot about Customer Education and the learning
management system ecosystem today. There are a ton of competitors in the market
## AI & LI
### Instructions
Use OpenAIs ChatGPT, develop 20 topics for a customer education Linkedin post. Then, pick a topic and use ChatGPT to craft your first social-selling Linkedin post. Make sure that you use the OpenAI output as a basis, but then they truly make it your own with your words and personality. It needs to be something that, when you read it out loud, you would feel very natural with and happy about.
Use OpenAIs ChatGPT, develop 20 topics for a customer education Linkedin post.
Then, pick a topic and use ChatGPT to craft your first social-selling Linkedin
post. Make sure that you use the OpenAI output as a basis, but then they truly
make it your own with your words and personality. It needs to be something that,
when you read it out loud, you would feel very natural with and happy about.
## Customer Success Stories

View File

@ -49,7 +49,7 @@ function findRow(course, avgProgress, lastColumn) {
}
}
writeSheet.getRange(numRows, 1).setValue("Average Progress across all Courses");
writeSheet.getRange(numRows, lastColumn+1).setValue(avgProgress(progArray));
writeSheet.getRange(numRows, lastColumn+1).setValue(averageProgress(progArray));
}
function percentDiff(prevVal, avgProgress){
@ -71,7 +71,7 @@ function percentDiff(prevVal, avgProgress){
return percentChange
}
function avgProgress(progArray) {
function averageProgress(progArray) {
var progCalc = progArray => progArray.reduce((a,b) => a + b, 0) / progArray.length
return progCalc
}

View File

@ -1,6 +1,7 @@
import os
from datetime import date
import glob
import re
import shutil
import pandas as pd
@ -12,26 +13,31 @@ basefile = "Walmart_Weekly_Base.xlsx"
def copytemplate(rootdir, basefile):
segments = ["Group1", "Group2", "Group3", "Group4", "Group5"]
today = date.today()
today = today.strftime("%m.%d.%Y")
template = rootdir + basefile
# todayFile = f"Walmart-{today}.xlsx"
todayFile = "Walmart-Chris-Template.xlsx"
listfiles = glob.glob(downloadir + "WeeklyMCA*.csv")
if os.path.exists(rootdir):
shutil.copy2(template, rootdir + todayFile)
# dirfiles = os.listdir(rootdir)
# print(dirfiles)
# currentDash = rootdir + f"Walmart-{today}.xlsx"
currentDash = rootdir + "Walmart-Chris-Template.xlsx"
# print(currentDash)
findlatestExport(currentDash)
def findlatestExport(currentDash):
listfiles = glob.glob(downloadir + "*.csv")
latestdownload = max(listfiles, key=os.path.getctime)
# print(latestdownload)
copytoDash(latestdownload, currentDash)
for segment in segments:
todayFile = f"Walmart-{segment}-{today}.xlsx"
shutil.copy2(template, rootdir + todayFile)
currentDash = rootdir + f"Walmart-{segment}-{today}.xlsx"
for latestdownload in listfiles:
if re.search('(?:Group1)', currentDash) and re.search('(?:Group1)', latestdownload):
copytoDash(latestdownload, currentDash)
elif re.search('(?:Group2)', currentDash) and re.search('(?:Group2)', latestdownload):
copytoDash(latestdownload, currentDash)
elif re.search('(?:Group3)', currentDash) and re.search('(?:Group3)', latestdownload):
copytoDash(latestdownload, currentDash)
elif re.search('(?:Group4)', currentDash) and re.search('(?:Group4)', latestdownload):
copytoDash(latestdownload, currentDash)
elif re.search('(?:Group5)', currentDash) and re.search('(?:Group5)', latestdownload):
copytoDash(latestdownload, currentDash)
else:
print("No matching Looker Pulls or Templates Found!")
# TODO: Update these if statements to loop through the groups in a better fashion
def copytoDash(latestdownload, currentDash):
@ -76,3 +82,15 @@ def cleanitUp(currentDash):
if __name__ == "__main__":
copytemplate(rootdir, basefile)
# TODO: Dataset is too large. Add the math from the excel into the script so that the dataset references the final data and a much smaller set. Commented below is the math as far as I can tell.
"""
Math:
Courses:
Enrolled: For each unique course name, count number of "Enrolled" (Col. C) fields if != null.
Started: For each unique course name, count number of "Attempt Start" (Col. D) fields if != null.
Completed: For each unique course name, count number of "Progress" (Col. G) fields if == 100%
Activity Completions:
Started first activity == Started number above in Course
Activity >= 1 Completions:
"""