Calculate Conversion "Weight" based on Multiple Conversions - optimization

I'd like to estimate the value of each "conversion" starting from a free trial signup all the way to that user becoming a paid user.
Let's say I have an online coding course website that offers a free 30-day trial. After the trial period, the cost is $100 per month.
I bring in 100,000 users/mo to the signup page of my site via Google Ads paid search
I consistently get ~1,000 free trial signups per month (1% conversion rate). All signups are considered free trial users
Of the 1,000 trial users, 500 log in exactly 2x within the first week (let's call these L2W1 for Logged in 2x within Week 1)
Of the 1,000 trial users, 100 log in at least 3x within the first week (L3W1). These users are mutually exclusive from above
Of the 500 L2W1 users, 50 users (10%) sign up for at least 1 course
Of the 100 L3W1 users, 50 users (or 50%) sign up for at least 1 course
On average, I get 35 paid users monthly
10 of 50 L2W1 users become Paid Users
25 / 50 L3W1 - in other words, 50% of L3W1 Users convert to a Paid User
To recap, assume these are the only events that I am currently tracking:
100,000 Site Visitors ---> 1,000 Trial Signups
500 L2W1 ---> 50 Course Signups (CS) ---> 15 Paid Users = $1,000
100 L3W1 ---> 50 Course Signups (CS) ---> 35 Paid Users = $2,500
Total: 35 Paid Users (PU) ---> $3,500
To keep things simple, let's ignore life-time value (e.g. the average user subscribes for 3.5 months).
QUESTION: Is there a mathematical equation I could use to assign values (or percentages) to each conversion event? As I receive more information, I'd like to provide that to Google as a signal that each conversion type down the funnel is a sign of a more qualified user and therefore more valuable to my business.
I can simply take the 1,000 Trial Signups and divide $3,500 (and ignore all other conversion types) in which case each Trial Signup is worth $3.50. However, only 35/1000 Trial Users convert to a Paid User so there is valuable information I am leaving on the table and not informing Google for automated bidding purposes.
I'm thinking something like this is better:
1 Trial Signup = $1.00
1 L2W1 = $2.00
1 L3W1 = $3.00
1 CS = $4.00
1 PU = $90.00
.. so a Paid User who goes through several of the steps above will equate to about $100. Not sure if this is a good approach or if the math makes sense. Any pointers or tips would be greatly appreciated.
I've been reading on Bayes Theorem and it seems to be a good model to use for this case but I'm not at all familiar with it enough to know if it's applicable to this situation.

Related

Customer Schedulling & route optimization

I'm new to ORTools and I need some guidance on which algorithm to choose for this problem:
(I think it is an assignment problem, but also a mix with route optimization and VRP..)
A salesman has N shops to visit
Every shop has a service time T (ex: 30 minutes)
Shops are categorized this way:
a) Category 1 = must be visited twice a week
b) Category 2 = must be visited once a week
c) Category 3 = must be visited biweekly (every two weeks)
d) Category 4 = must be visited once a month
A shop cant be visited 2 days in a row
The salesman should work up to 9 hours (1 hour for lunch)
The salesman should visit 8 to 12 shops a day (soft constraint)
The salesman should work up to 176 hours a month
Some shops can be discarded from the solution. (prefer to keep the ones with lower category)
We have the geolocation and a time distance matrix for the shops
The objectives are:
Maximize the number of shop visited
Minimize the KMs for the salesman
This is an example of shops distribution
First of all, it seems like you're trying to solve the problem globally, i.e. to find an optimal monthly or yearly schedule for the entire problem. I suspect that might be difficult, and suggest to try relaxing the problem, say: to a daily one.
For instance, maybe for a given day, it's possible to compile a list of stores which should be visited, perhaps by order of scores. So maybe a store that was visited yesterday will not be in the list; and one that has to be visited once a week, and was visited 6 days ago would be on the top of the list.
Then, you might be able to solve using a variant of the VRP solver on that list; you can use simulation (maybe with some random element) to generate a weekly or monthly schedule based on that. It's not guaranteed to be optimal, but might be good enough.
If your problem is more complex then what the OR-Tools VRP solver can handle, you can try using the more general CP-SAT solver, which is very generic, and can handle VRP-like problems with additional constraints, e.g. Scheduling problems or other constraints.
You can also consider using other approaches here, e.g. Tabu search.

How to structure reference table changes overtime

This is more of a design issue than technical though I do plan on building my report in PowerBI so any limitations of that system should be noted
I am trying to wrap my head around changes in employee information over time and a time card system.
Let’s say I get a time card report that has some standard information. Thier employee ID, number of hours, task hours charged to, date hours charged and so forth.
I also have a HR report of details of each employee which I of course would link via employee ID. This table would have information like job title, department, name, location and so forth.
I am building a report that would show how many hours are charged each month historically by job title and department.
Let’s say employee 3453 was a Janitor in June and charged 20 hours. In November he became a security Manager and charged 10 hours.
When doing reports in December using the current HR data my report would show that 30 hours were charged to the security department instead of 20 to sanitation and 10 to security.
Adding multiple employee records to the HR table wouldn’t work because it would have duplicate keys
I guess I can’t wrap my head around it.
Any help would be greatly appreciated
Thanks.
This is generally handled by working with a separate table that tracks the details of the employees over time.
For example:
EmpID Position DateStart DateEnd
3453 Janitor 1/1/2018 10/31/2018
3453 Manager 11/1/2018 null
There other ways to handle this. I recommend doing to searching and reading using the term:
"slowly changing dimension"

Do Google Custom Search JSON API purchased additional queries rollover?

The documentation for Google Custom Search JSON/ATOM API is unclear regarding pricing for additional queries. It states:
The API provides 100 search queries per day for free. If you need
more, you may sign up for billing in the API Console. Additional
requests cost $5 per 1000 queries, up to 10k queries per day.
For those that use that API in excess of the initial free 100, does the $5/1000 additional queries reset each day, or does that number roll over for subsequent days?
For instance, if I have a total number of queries on 3 consecutive days of 110, 120, and 130, will the account be billed $5 each day for the 10, 20, and 30 extra queries? Or will I be billed $5 the first day and by the end of the 3rd day I'll still have a bucket of 940 additional queries left to use for future overages?
In case anyone is also still looking for an answer to this question, (as I was a day ago), it turns out that for the Google Custom Search API the billing for $5/1000 queries is prorated.
Google Cloud Support emailed me the following:
With the Google Custom Search, you have a free 100 search queries per day which resets daily. But for example if you exceeded the daily limit, you will be charged $5 per 1,000 queries. In case that you go over the 100 queries per day and did not reach the 1,000 queries, it will be prorated from the $5. This resets daily as well. Please take note that 10k queries is the maximum daily.
I then clarified with them the following example, which they agreed was correct.
An example of making an average of 180 JSON API queries/day:
100 queries/day are free
80 queries/day are charged at $5 * (80/1000) = $0.40/day
Monthly it would be $12.00 (40cents * 30)

reward points as percent from total in opencart 2.1

I`m new in opencart system, but i allready have a trouble :) i have around 9 000 products in my store, and i want to make a loyal client program in which program every client will get 1 poitn for 10 (depends on the value, for example EURO). It will take a week or more to add the reward points to every single product data page, so im thinking about some kind of SQL query to data base, to add 10 percent to this column(column for the loyal clients reward points) from the column with the price of the product! I hope you understood me, thank you (sorry for my english!)
Regards! :)

Dealing with Amazon Product Advertising API Throttle limits

For those of you who use the Amazon Product Advertising API, what experience have you had with running into their throttle? Supposedly, the limit is set at 1 request per second, is that your experience?
I want my site to grow to be nation-wide, but I'm concerned about its capability to make all the Amazon API requests without getting throttled. We cache all the responses for 24 hours, and also throttle our own users who make too many searches within a short period.
Should I be concerned? Any suggestions?
I believe they have changed it. Per this link:
https://forums.aws.amazon.com/message.jspa?messageID=199771
Hourly request limit per account = 2,000 + 500 * [Average associate revenue driven per day over the past 30 days period]/24 to a maximum of 25,000 requests per hour.
Here is the latest on request limits that I could find, effective Sept 3rd, 2012.
If your application is trying to submit requests that exceed the
maximum request limit for your account, you may receive error messages
from Product Advertising API. The request limit for each account is
calculated based on revenue performance. Each account used to access
the Product Advertising API is allowed an initial usage limit of 1
request per second. Each account will receive an additional 1 request
per second (up to a maximum of 10 requests per second) for every
$4,600 of shipped item revenue driven per hour in a trailing 30-day
period.
https://affiliate-program.amazon.com/gp/advertising/api/detail/faq.html
They have updated their guidelines, you now have more requests when you sell more items.
Effective 23-Jan-2019, the request limit for each account is calculated based on revenue performance attributed to calls to the
Product Advertising API (PA API) during the last 30 days.
Each account used for Product Advertising API is allowed an initial
usage limit of 8640 requests per day (TPD) subject to a maximum of 1
request per second (TPS). Your account will receive an additional 1
TPD for every 5 cents or 1 TPS (up to a maximum of 10) for every $4320
of shipped item revenue generated via the use of Product Advertising
API for shipments in the last 30 days.
Source: https://docs.aws.amazon.com/AWSECommerceService/latest/DG/TroubleshootingApplications.html
Amazon enforces limits on how many calls you can make per hour and per second.
You can increase the former by following the sanctioned route (increase commission revenue) or by privately petitioning Amazon with a valid reason. When whitelisted, your limit will go up to 25,000 calls per hour, which is more than good enough for the vast majority of projects I can think of.
The latter limit is murkier and enforced depending on the type of query you make. My interpretation is that it is meant to keep serial crawlers who do batch item lookups in check. If you are simply doing keyword searches etc., I would not worry so much about it. Otherwise, the solution is to distribute your calls across multiple IPs.
One other point to keep in mind if you are querying multiple locales is to use separate accounts per locale. Some locales are grouped and will count to the same call quota. European Amazons, for instance, form such a pool.