Key Takeaways
Employee work sessions are classified as "In-office" or “Out-of-office” by matching the computer to a configured location (Configure > Locations in Legacy / Configurations > Locations in NextGen).
Locations can be defined by geolocation (Latitude, Longitude and Radius) and optional Access Points (network identifiers like SSID, Mac Address, etc.).
Access Point-based detection has priority, with MAC Address being the highest precision identifier.
Detection results are resolved per 15-minute bucket - so identical coordinates can occasionally show different Office values (see the Split Logic section).
Related Article
For general information about geolocation tracking, how it works, OS setup, and answers to frequently asked questions, see this article.
Introduction
This article explains the methods Teramind uses to classify an employee's work sessions as “In-Office” or “Out-of-Office” and how this information is presented in various reports and dashboards.
Understanding the Feature
An employee’s work session is classified as in-office when their computer can be associated with one of your configured Office Locations. Otherwise, the session is treated as out-of-office.
You can use this feature to compare in‑office and remote productivity, measure how much time is spent at each office, analyze hybrid work patterns, and support security and compliance use cases such as enforcing location‑based access policies and maintaining audit trails of where sensitive work was performed.
Defining Office Locations
To assign employees to offices, you must first create office locations. You can do so from the Configurations > Locations screen.
For each location, select a point on the map or use the Latitude and Longitude fields to enter them manually. Use the Radius field to specify a circular area (centered around the latitude and longitude) you want to treat as part of that office.
Optionally, you can associate each location with network identifiers by adding one or more Access Points when creating or editing a location. For each access point, you can add its Wi-Fi SSID, MAC Address, internal network ranges expressed in CIDR Network Range notation, and Public IP Address (TBA - not supported yet) that represent your office’s external internet presence.
Detection Methods
Teramind uses a combined approach of geolocation and network data, with network data often supplementing or overriding geolocation for greater reliability.
Method 1: Geolocation (Map-Based Detection)
When geolocation is enabled on the endpoint, the device periodically reports its approximate position along with an accuracy radius describing how confident the operating system is about that position. A smaller radius means a more precise location; a large radius indicates greater uncertainty.
Teramind compares this information with your office areas.
Teramind uses the Radius defined in the location setting (maximum 1,000 meters) and compares it with the device telemetry. In Legacy, if the location is beyond this range, the location is ignored or treated as too imprecise to support an “In-office” decision.
An employee is counted as in an office when at least 50% of their location area overlaps the office’s area on the map. If two offices overlap, Teramind selects the office that is the best fit and closest to the device. If no office overlaps enough, the time is considered out of office. It provides more accurate and robust behavior, especially in areas with noisy GPS. If you see the same coordinates resolve to an office in one row and “Out-of-office” in another, see the Split Logic (Same Coordinates, Different Office Status) section below for why.
Method 2: Network-Based Detection (Wi Fi, IP, etc.)
To improve reliability, especially when geolocation is missing or imprecise, Teramind also examines the network the device is using and tries to match it to your configured offices.
You can associate an office with the following Access Points in order of precision/priority:
MAC Address: Unique identifier of a specific access point. It provides the highest precision because it reliably pins the device to a specific access point in a specific office. Note: To ensure high accuracy, we resolve the office location by cross-referencing MAC data from three primary sources: BSSID (the immediate MAC address of the connected Access Point), Traceroute (network path data that identifies the hardware addresses of intermediate hops/routers), and ARP Cache (local address resolution tables that map IP addresses to physical MAC addresses within the subnet).
SSID: Name of your office Wi-Fi network. It’s slightly broader, since the same SSID name may be broadcast by several access points (spanning multiple floors, or even sites).
CIDR Network Range: Represents your internal/private IP ranges (for example, 192.168.10.0/24). It offers broader network context that can span a whole floor, building, or campus; more approximate than Wi-Fi identifiers.
Public IP Address (TBA - not supported yet): External IPs that represent your office on the internet. It delivers the lowest precision because the same IP can be shared by multiple locations or VPN endpoints. It’s used as the last-resort signal.
When a device connects to a network, Teramind classifies that session as occurring in that office. It will use the above priority if multiple detection methods are available.
How Location Data Appears on Reports
Once a location is detected, it is surfaced in BI reports/dashboards through three primary dimensions/columns:
Office by Geolocation: Shows the office name only if it was determined using geolocation data (Method 1 above). Otherwise, it displays “Out-of-office”.
Office by Network: Shows the office name only if it was determined using network data (Method 2 above). Otherwise, it displays “Out-of-office”.
Office: Shows the final, combined office assignment. It prioritizes the office detected from network data first. If no network-based office is found, it falls back to the geolocation-detected office. If neither method determines an office, it displays “Out-of-office”.
Split Logic (Same Coordinates, Different Office Status)
Sometimes, you might see the same coordinates resolve to an office in one row of the Geolocations report, then show as “Out-of-office” a little later for the same employee. Here is an example:
The 11:52 and 11:21 rows (yellow) report identical coordinates and the same 1,500 m error radius, yet resolve differently. Neither can qualify on its own. The difference is what else sits in each one's 15-minute window: the 11:21 row shares its window with the precise, qualifying 11:16 reading (blue) and displays that result, while the 11:52 row shares its window only with the 11:57 reading (blue), which is clearly out of the office and establishes nothing, so there is no office record for 11:52 to display.
Why This Can Happen 1: Colliding Readings
Circle overlap: as described in Method 1 above, at least 50% overlap between the employee’s reported-position circle and the office’s circle is required to resolve to that office - and the office’s Radius can be configured up to 1,000 m. When the reported error radius is larger than the office’s Radius, the office can never cover 50% of the employee’s circle, no matter how close the coordinates are: a 1,500 m error radius against a 1,000 m office tops out at roughly 44% overlap (see Imprecise readings below for the math). The 11:52 and 11:21 rows above report identical coordinates and the same 1,500 m error radius, so on their own they are identically insufficient - neither can qualify by itself. Whatever office ends up showing for either of them comes from somewhere else in their 15-minute bucket, not from their own overlap - see Interval collisions below.
15-minute slicing: on each sync, events are sliced into 15-minute-aligned intervals and fully refreshed (not appended), so results line up with other reports on the same time grain. The 11:52 and 11:57 readings above both fall in the same 11:45-12:00 bucket. The 11:21 reading falls in an earlier bucket (11:15-11:30), which also contains the 11:16 reading - a precise, qualifying reading at a well-established nearby point.
Interval collisions: a 15-minute bucket only records an office when a reading in it actually qualifies for one - through GPS or through a network match (geolocation and network results are tracked separately, and the combined Office column prefers the network one). A reading that cannot qualify on its own simply displays whatever its bucket has on record; if the bucket has nothing, it shows "Out-of-office". In the 11:15-11:30 bucket, the 11:16 reading - a precise reading with a tight 60 m error radius - establishes "Ridgefield Office" for that window, so the 11:21 reading, unable to qualify on its own, displays that result. In the 11:45-12:00 bucket, nothing qualifies for an office: the 11:57 reading is a precise position clearly outside the office, and readings that don't match an office never establish anything for their bucket. So the 11:52 reading, also unable to qualify on its own, has nothing to display and falls through to "Out-of-office". Same coordinates, same radius, same underlying overlap on both puzzling rows - the only difference is whether their bucket had a qualifying result on record.
Here is the same four readings from the system's point of view:
Neither 11:52 nor 11:21 can qualify on its own - what each one shows depends entirely on what else is in its bucket.
Why This Can Happen 2: Imprecise Readings
The same symptom (identical coordinates resolving to different Office values) can also show up for a completely different reason. Here's an example:
The 10:29 and 11:00 rows report the exact same coordinates and the exact same error radius, yet one says "Ridgefield Office" and the other says "Out-of-office". Unlike the previous section, there is no later conflicting reading that overrode anything.
The overlap rule from Method 1 is measured against the employee's uncertainty circle. When the error radius reported by the device is larger than the office's configured radius, the office can never cover 50% of the employee's circle, no matter how close the reported coordinates are to the office center. A 1,500 m error radius against a 1,000 m office tops out at roughly 44% overlap.
So neither the 10:29 row nor the 11:00 row qualified for Ridgefield Office by itself. On their own inputs they are identical, and identically insufficient. A reading like this never marks its 15-minute bucket with an office; it can only display an office that some other reading has already established for that bucket. That is where the two rows part ways.
Look at the 10:09:17 reading. It has a tight 55 m error radius, qualifies for Ridgefield Office, and lasts 19 minutes and 59 seconds, which means it runs until exactly 10:29:16 and stretches across both the 10:00-10:15 and the 10:15-10:30 buckets. Both of those 15-minute buckets are therefore assigned to the Ridgefield Office.
The 10:29:16 reading falls inside the 10:15-10:30 bucket. Since results are resolved per bucket, it inherits the office that the precise reading already established there. That is the only reason it shows "Ridgefield Office".
The 11:00:41 reading has no such neighbor. No qualifying reading lands in its bucket, so there is no office on record to display, and with its own GPS match impossible and no network match available either, the bucket falls through to "Out-of-office". The same happens to every later reading with the same coarse 1,500 m position.
In other words: the employee didn't move at 11:00. The device simply stopped producing precise GPS readings after 10:29, and the coarse readings that remained were never capable of matching the office by themselves.
What to check
Compare the error radius to the office’s configured Radius: if the reading’s error radius is larger than the Radius, that reading can never qualify by itself, no matter how close the coordinates are - see the Why This Can Happen 2: Imprecise Readings section above. If two rows report the same coordinates and the same error radius, they are equally unable to qualify on their own, and whatever they show comes from elsewhere in their 15-minute bucket.
Tell a one-time flip-flop apart from a lasting shift: a single conflicting reading nearby, in an otherwise consistent bucket, points to an interval collision (see the Why This Can Happen 1: Colliding Readings section). A permanent switch to “Out-of-office” with no later precise reading to inherit from usually means the device stopped producing precise GPS altogether, not that the employee moved (see the Why This Can Happen 2: Imprecise Readings section).
Check Office by Network for the same rows: it doesn’t depend on GPS, and the combined Office column always prefers it. If flips are frequent, also revisit the office’s configured Radius.
Geolocation Detection Challenges and Recommendations
For reliable in-office versus out-of-office classification, it is important to address known edge cases through proper configuration:
Issue | Challenge | Recommended Setup and Best Practice |
VPN Usage | Many VPNs report a generic datacenter location with a very large accuracy radius, making geolocation unreliable. Users may appear out-of-office even when physically present. | Plan for VPN users: Ensure that your regular office Wi-Fi and IP networks (e.g., SSID, CIDR, etc.) are correctly mapped in the access points when you define the locations. This allows Teramind to identify the office based on the network instead of GPS. |
Office Radius | Too Small: GPS drift can cause intermittent out-of-office classification. Too Large: Overlaps with other areas, making confident assignment difficult. | Fully configure each office and fine-tune: Start with a radius that comfortably covers the building and immediate surroundings, then adjust based on what you see in reports. |
Incomplete Network Mappings | If network identifiers (SSIDs, CIDR, Public IPs) are missing or inaccurate, users who are actually in the office may still be classified as out-of-office. | Fully configure each office: Define an accurate map location and radius. Add SSIDs and MAC addresses. If using Legacy, also configure the relevant CIDR ranges and public IP addresses for your office networks. Monitor reports: Review the Geolocations report. If you see unexpected "remote" data for office-based employees. |
Rollout and Verification | Unverified configuration can lead to inaccurate reporting for the entire organization. | Pilot, then fine-tune: Start with a small test group. Compare Teramind's reported classification against actual location data. Adjust the office radius and network settings until the reports consistently match reality for that group before rolling out to more users. Monitor with simple reports: Build a custom report grouped by Office, Office by Geolocation, and Office by Network and date to verify consistent and correct classification. |



