Average daily screen time calculator
Turn a set of daily screen-time totals into a clear weekly summary. Enter minutes for one or more distinct days, and the calculator returns the number of days included, total minutes, average minutes per included day, and the days with the highest and lowest use.
Run — free
It is useful for reviewing personal habits, checking family device routines, or preparing a simple digital-wellbeing report without building spreadsheet formulas. Results are deterministic, and the calculator rejects an empty list instead of presenting a misleading zero average.
Enter a consistent set of daily records
Create one record for every day you want included in the weekly review. Each record needs a weekday name and the total screen time for that day in minutes. A complete week normally contains Monday through Sunday, but the calculator also accepts a partial week when some days have not yet been recorded. The reported average always uses the number of submitted days as its divisor, so a five-day result describes those five days rather than silently treating two missing days as zero. Use total minutes from the same source or device settings whenever possible because different operating systems may classify background activity, calls, or audio playback differently. Values may range from zero through 1,440 minutes, which covers an entire day while preventing impossible totals. Every weekday can appear only once. If you have several devices, combine their daily totals before submitting when your goal is an overall personal figure, or run separate calculations when you want to compare device categories without double-counting overlapping activity.
Understand the average, highest day, and lowest day
The calculator adds all submitted minute values and divides that total by the number of records. It reports the daily average in minutes rounded to two decimal places, while also returning the total minutes and count of included days so the result can be checked or reused. The highest-day result is the submitted record with the greatest minute value, and the lowest-day result is the one with the smallest value. When two or more days tie, the first tied day in the submitted list is returned. That deterministic tie rule keeps automated results stable, but it does not imply that the other tied day had less or more usage. Averages can hide variation, so read the highest and lowest values alongside the mean. For example, an ordinary-looking average may come from six moderate days and one unusually long day. The extremes make that pattern visible and provide better prompts for reviewing what happened, such as travel, work, entertainment, or an intentional device-free period.
Use the result for practical weekly reviews
Treat the summary as a measurement aid rather than a judgment about whether a particular amount of screen time is good or bad. Context matters: navigation, accessibility tools, creative work, video calls, and passive entertainment can all contribute minutes with very different purposes. A useful routine is to calculate the same set of days each week, note the average and extremes, and then compare like with like over time. If the highest day is surprising, check the device's category breakdown before deciding what to change. Families can use the calculation to begin a neutral conversation about routines, while individuals can use it to test a specific goal such as reducing late-evening entertainment. For automation, send the records through the API for $0.002 per request and store the returned totals with the original date range in your own system. The capability does not retain history or infer dates; preserving the week label alongside each result makes later comparisons understandable and avoids confusing partial weeks with full seven-day summaries.
What you can do with it
Review a personal digital routine
Summarize a week of device totals and spot the day that contributed most to the average.
Discuss family device habits
Turn daily measurements into a neutral weekly overview for a practical conversation about routines.
Track a screen-time goal
Calculate comparable weekly averages and extremes before recording the results in a habit tracker.
FAQ
What happens if the entry list is empty?
The request returns an invalid-input error because an average cannot be calculated without at least one daily value.
Do I need to enter all seven days?
No. You may submit one to seven distinct weekdays, and the average is calculated only across the days supplied.
How are ties for highest or lowest handled?
The first tied record in the submitted order is returned, while its minutes remain identical to the other tied values.
Can the same weekday appear twice?
No. Each weekday must be unique so one day cannot be accidentally counted more than once.
What does an API calculation cost?
Each API request costs $0.002. The browser version can run locally for free.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/final3/screen-time-daily-average \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"entries":[{"day":"Monday","minutes":180},{"day":"Tuesday","minutes":240},{"day":"Wednesday","minutes":150},{"day":"Thursday","minutes":210},{"day":"Friday","minutes":300},{"day":"Saturday","minutes":360},{"day":"Sunday","minutes":120}]}'const res = await fetch("https://api.kit.forhosting.com/final3/screen-time-daily-average", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"entries": [
{
"day": "Monday",
"minutes": 180
},
{
"day": "Tuesday",
"minutes": 240
},
{
"day": "Wednesday",
"minutes": 150
},
{
"day": "Thursday",
"minutes": 210
},
{
"day": "Friday",
"minutes": 300
},
{
"day": "Saturday",
"minutes": 360
},
{
"day": "Sunday",
"minutes": 120
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/final3/screen-time-daily-average",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"entries": [
{
"day": "Monday",
"minutes": 180
},
{
"day": "Tuesday",
"minutes": 240
},
{
"day": "Wednesday",
"minutes": 150
},
{
"day": "Thursday",
"minutes": 210
},
{
"day": "Friday",
"minutes": 300
},
{
"day": "Saturday",
"minutes": 360
},
{
"day": "Sunday",
"minutes": 120
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/final3/screen-time-daily-average", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"entries":[{"day":"Monday","minutes":180},{"day":"Tuesday","minutes":240},{"day":"Wednesday","minutes":150},{"day":"Thursday","minutes":210},{"day":"Friday","minutes":300},{"day":"Saturday","minutes":360},{"day":"Sunday","minutes":120}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"entries":[{"day":"Monday","minutes":180},{"day":"Tuesday","minutes":240},{"day":"Wednesday","minutes":150},{"day":"Thursday","minutes":210},{"day":"Friday","minutes":300},{"day":"Saturday","minutes":360},{"day":"Sunday","minutes":120}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/final3/screen-time-daily-average", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"entries": [
{
"day": "Monday",
"minutes": 180
},
{
"day": "Tuesday",
"minutes": 240
},
{
"day": "Wednesday",
"minutes": 150
},
{
"day": "Thursday",
"minutes": 210
},
{
"day": "Friday",
"minutes": 300
},
{
"day": "Saturday",
"minutes": 360
},
{
"day": "Sunday",
"minutes": 120
}
]
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "final3.screen_time_daily_average",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |