Data Dictionary ← Web traffic 79 Concepts 9 categories366 Documented Columns 42 tables and views76 Source Columns Changed 100 source and seed columns0 Conflicting Definitions 05101520Bot classificationTraffic sharesSessionsTrafficHitsAudienceLineagePages and referrersServicesConcepts by CategoryNumber of concepts in each category 020406080RenamedUnchangedSource quirk declaredCast to a new typeFrom Source to ConceptHow raw input columns change on the way to their final form; a column can change in more thanone way ServicesThe tracked websitesConceptDefinitionTypeOriginComes FromSource to FinalUsed Inservice_idIdentifier of the tracked websitevarcharSourcedaily_browsers.service_uuid,daily_countries.service_uuid,daily_device_types.service_uuid,daily_devices.service_uuid,daily_locations.service_uuid,daily_operating_systems.service_uuid,daily_referrers.service_uuid,daily_stats.service_uuid, hits.service_id,hourly_stats.service_uuid, services.uuid,sessions.service_idrenamed from uuid; renamed from service_uuidstaging, intermediate, marts(27 models)service_nameName of the tracked websitevarcharSourceservices.namerenamed from namestaging, marts (2 models)service_urlAddress of the tracked website; null if not setvarcharSourceservices.linkrenamed from link; source: The service's website,as entered in Shynet; an empty string if none is setstaging, marts (2 models) TrafficDaily and hourly visits, page views and averagesConceptDefinitionTypeOriginComes FromSource to FinalUsed Inavg_hits_per_sessionAverage number of page views per session;null on a day without sessionsdoubleSourcedaily_stats.avg_hits_per_sessionUnchangedstaging, marts (2 models)avg_load_time_msAverage page load time in milliseconds; nullwhen no page view measured onedoubleSourcedaily_stats.avg_load_timerenamed from avg_load_timestaging, marts (2 models)avg_session_secondsAverage session length in seconds; null on aday without sessionsdoubleSourcedaily_stats.avg_session_durationrenamed from avg_session_duration; source:Mean session duration in seconds; null when therewere no sessions. The API returns an ISO 8601duration (e.g. P0DT00H01M30.5S), which thepipeline converts to seconds.staging, marts (2 models)bounce_rateFraction of the day's sessions that viewed onlyone page; null on a day without sessionsdoubleSourcedaily_stats.bounce_rate_pctrenamed from bounce_rate_pct; source:Percentage (0-100) of the day's sessions withexactly one hit; null when there were no sessionsstaging, marts (2 models)hit_countNumber of page views in the row's day or hour,within the row's page if it has onebigintSourcedaily_locations.count,daily_stats.hit_count,hourly_stats.hit_countrenamed from countstaging, marts (5 models)session_countNumber of sessions that started in the row'sday or hour, within the row's breakdown if ithas onebigintSourcedaily_browsers.count,daily_countries.count,daily_device_types.count,daily_devices.count,daily_operating_systems.count,daily_stats.session_count,hourly_stats.session_countrenamed from countstaging, marts (10 models)traffic_dateCalendar day of the traffic, in the reporting timezonedateSourcedaily_browsers.date,daily_countries.date,daily_device_types.date,daily_devices.date, daily_locations.date,daily_operating_systems.date,daily_referrers.date, daily_stats.date,hourly_stats.daterenamed from datestaging, marts (14 models)traffic_hourStart of the hour of the traffic, in the reportingtime zonetimestamp withtime zoneSourcehourly_stats.hourrenamed from hourstaging, marts (2 models) Pages and ReferrersWhich pages were hit, and where visits came fromConceptDefinitionTypeOriginComes FromSource to FinalUsed Inpage_locationAddress of the page viewed; null if unknownvarcharSourcedaily_locations.location, hits.locationrenamed from location; source: Full URL of thepage hit, as the browser reported it; an emptystring if unknownstaging, marts (3 models)referral_countNumber of sessions the referring site started inthe daybigintSourcedaily_referrers.countrenamed from countstaging (1 model)referrer_urlAddress of the site that sent the visitor at thestart of the session; null for a direct visitvarcharSourcedaily_referrers.referrerrenamed from referrer; source: URL that referredthe visitor at the start of a session; an empty stringfor direct visitsstaging, intermediate, marts (3models) AudienceWhere visitors are and what they browse withConceptDefinitionTypeOriginComes FromSource to FinalUsed InbrowserVisitor's browservarcharSourcedaily_browsers.browser,sessions.browserUnchangedstaging, intermediate, marts (4models)deviceVisitor's device model, where it can beidentifiedvarcharSourcedaily_devices.device, sessions.deviceUnchangedstaging, intermediate, marts (4models)device_typeKind of device the visitor usedvarcharSourcedaily_device_types.device_type,sessions.device_typeUnchangedstaging, intermediate, marts (4models)operating_systemVisitor's operating systemvarcharSourcedaily_operating_systems.os, sessions.osrenamed from osstaging, intermediate, marts (4models)visitor_countryCountry of the visitor's network; null if unknownvarcharSourcedaily_countries.country,sessions.countryrenamed from country; source: ISO 3166-1 alpha-2country code from GeoIP; an empty string ifunknownstaging, intermediate, marts (4models) SessionsOne visitor's visit to one websiteConceptDefinitionTypeOriginComes FromSource to FinalUsed Inasn_organizationOrganisation that runs the visitor's network,whether an internet provider or a hostingcompany; null if unknownvarcharSourcesessions.asnrenamed from asn; source: Organisation owningthe network of the session's IP address (MaxMindGeoLite2 ASN); an empty string if unknownstaging, intermediate, marts (3models)is_bounceWhether the session viewed only one pagebooleanSourcesessions.is_bounceUnchangedstaging, intermediate, marts (3models)landing_page_locationAddress of the first page viewed in the session;null if unknownvarcharDerivedcalculated inint_shynet_db__session_activityDerived from other conceptsintermediate, marts (2 models)pixel_hit_countNumber of the session's page views where thepage's script didn't runbigintDerivedcalculated inint_shynet_db__session_activityDerived from other conceptsintermediate, marts (2 models)session_duration_secondsLength of the session in seconds, from its firstpage view to its last activity. Only time with thepage visible counts.doubleDerivedcalculated inint_shynet_db__session_activityDerived from other conceptsintermediate, marts (2 models)session_heartbeat_countHow long the session's pages were visible, in5-second intervalsbigintDerivedcalculated inint_shynet_db__session_activityDerived from other conceptsintermediate, marts (2 models)session_hit_countNumber of page views in the sessionbigintDerivedcalculated inint_shynet_db__session_activityDerived from other conceptsintermediate, marts (2 models)session_idIdentifier of the session: one visitor's visit toone website. A visit ends after 30 minuteswithout activity, so a returning visitor starts anew session.varcharSourcehits.session_id, sessions.uuidrenamed from uuidstaging, intermediate, marts (6models)session_last_seen_atWhen the session was last activetimestamp withtime zoneSourcesessions.last_seenrenamed from last_seenstaging, intermediate, marts (3models)session_started_atWhen the session startedtimestamp withtime zoneSourcesessions.start_timerenamed from start_timestaging, intermediate, marts (3models)user_agentText the visitor's browser sends to identifyitself. Any client can claim to be any browser.varcharSourcesessions.user_agentUnchangedstaging, intermediate, marts (3models)visitor_time_zoneTime zone of the visitor's location; null ifunknownvarcharSourcesessions.time_zonerenamed from time_zone; source: IANA time zoneof the session's IP location (MaxMind GeoIP); anempty string if unknownstaging, intermediate, marts (3models) HitsOne page viewConceptDefinitionTypeOriginComes FromSource to FinalUsed Inheartbeat_countHow long the page was visible, in 5-secondintervals; zero when it couldn't be measuredbigintSourcehits.heartbeatsrenamed from heartbeatsstaging, marts (2 models)hit_idIdentifier of the page viewbigintSourcehits.idrenamed from idstaging, marts (2 models)hit_last_seen_atWhen the page view was last activetimestamp withtime zoneSourcehits.last_seenrenamed from last_seenstaging, marts (2 models)hit_referrer_urlAddress of the page the visitor came from; nullif nonevarcharSourcehits.referrerrenamed from referrer; source: The page'sreferrer, as the browser reported it; an emptystring if none was sentstaging, marts (2 models)hit_started_atWhen the page view startedtimestamp withtime zoneSourcehits.start_timerenamed from start_timestaging, marts (2 models)is_initial_hitWhether the page view was the first of itssessionbooleanSourcehits.initialrenamed from initialstaging, marts (2 models)load_time_msPage load time in milliseconds; null when itcouldn't be measureddoubleSourcehits.load_timerenamed from load_timestaging, marts (2 models)tracker_typeHow the page view was recorded: by thepage's script, or by a fallback when the scriptdidn't runvarcharSourcehits.trackerrenamed from trackerstaging, marts (2 models) Bot ClassificationHow visits are classed as human or bot, and the limits of thatConceptDefinitionTypeOriginComes FromSource to FinalUsed Inasn_patternPattern that recognises a hosting, VPN or othernon-residential network by its operator's namevarcharSeedhosting_network_patterns.asn_patternUnchangedintermediate (1 model)asn_pattern_noteWhat the network isvarcharSeedhosting_network_patterns.asn_pattern_noteUnchangedintermediate (1 model)asn_pattern_sourceWhere a network pattern comes from: seen inthe data, or a known provider not yet seenvarcharSeedhosting_network_patterns.asn_pattern_sourceUnchangedintermediate (1 model)bot_categoryWhat a declared bot says it's for; null if thesession isn't a declared bot. Taken at the bot'sword, so an impostor gets the category of thebot it imitates.varcharSeedbot_user_agent_patterns.bot_categoryUnchangedintermediate, marts (3 models)bot_signalsSigns of automation found in the session,strongest first; null if nonevarcharDerivedcalculated in fct_sessionsDerived from other conceptsmarts (1 model)is_burst_sessionWhether three or more sessions from anidentical browser and network started within 10minutes of each other on the same website. Amoderate sign of a crawler fleet; an office orcampus network can look the same.booleanDerivedcalculated inint_shynet_db__session_bot_signalsDerived from other conceptsintermediate, marts (2 models)is_declared_botWhether the visitor says it's a bot. Reliable, butmisses bots that pose as browsers.booleanDerivedcalculated inint_shynet_db__session_bot_signalsDerived from other conceptsintermediate, marts (2 models)is_development_sessionWhether the session viewed a localdevelopment copy of the website rather thanthe live sitebooleanDerivedcalculated inint_shynet_db__session_activityDerived from other conceptsintermediate, marts (2 models)is_hosting_networkWhether the session came from a hosting, VPNor similar network. A moderate sign ofautomation: people use VPNs and officenetworks too.booleanDerivedcalculated inint_shynet_db__session_bot_signalsDerived from other conceptsintermediate, marts (2 models)is_malformed_user_agentWhether the text the browser sends to identifyitself is missing or incomplete. A strong sign ofautomation, though some privacy tools strip it.booleanDerivedcalculated inint_shynet_db__session_bot_signalsDerived from other conceptsintermediate, marts (2 models)is_no_engagementWhether the session was a single page closedor hidden within 5 seconds. A weak sign on itsown, as many people leave that quickly.booleanDerivedcalculated inint_shynet_db__session_bot_signalsDerived from other conceptsintermediate, marts (2 models)is_outdated_browserWhether the browser claims to be more thanabout a year out of date. A strong sign ofautomation, as browsers update themselves;some managed and regional browsers also lag.Only Chrome-based browsers are checked.booleanDerivedcalculated inint_shynet_db__session_bot_signalsDerived from other conceptsintermediate, marts (2 models)is_pixel_onlyWhether no page in the session ran its script. Astrong sign of automation, though people whoturn scripts off look the same.booleanDerivedcalculated inint_shynet_db__session_bot_signalsDerived from other conceptsintermediate, marts (2 models)network_categoryKind of non-residential network the sessioncame from; null for any other network, includingmost home and mobile providers. The list ofnetworks is partial.varcharSeedhosting_network_patterns.network_categoryUnchangedintermediate, marts (2 models)traffic_classHow automated the session looks: adevelopment visit, a declared bot (one that saysit's a bot), a likely bot (a strong sign ofautomation), a possible bot (a moderate sign) ora human (no sign). An estimate: it misses botsthat behave like browsers and visits that neverload the tracking, and can class people onVPNs, office networks or old browsers as bots.The site owner's visits count like anyone's.varcharDerivedcalculated in fct_hitsDerived from other conceptsmarts (5 models)traffic_groupWhether the session is a bot (of any class), ahuman or a development visitvarcharDerivedcalculated in fct_hitsDerived from other conceptsmarts (8 models)user_agent_patternPattern that recognises a declared bot from thetext its browser sendsvarcharSeedbot_user_agent_patterns.user_agent_patternUnchangedintermediate (1 model)user_agent_pattern_noteWhat a bot pattern recognises, or why it wasaddedvarcharSeedbot_user_agent_patterns.user_agent_pattern_noteUnchangedintermediate (1 model)user_agent_pattern_sourceWhere a bot pattern comes from: a publishedlist of known bots, or added locallyvarcharSeedbot_user_agent_patterns.user_agent_pattern_sourceUnchangedintermediate (1 model) Traffic SharesVisits and page views as shares of a total; the reports show no countsConceptDefinitionTypeOriginComes FromSource to FinalUsed Incountry_groupVisitor's country if it's one of the period's mostcommon, otherwise Other; Unknown when itcan't be toldvarcharDerivedcalculated inmart_monthly_country_session_shareDerived from other conceptsmarts (1 model)country_group_rankOrder of the country group, most commoncountry first, then Other, then UnknownintegerDerivedcalculated inmart_monthly_country_session_shareDerived from other conceptsmarts (1 model)country_session_shareThe country group's share of the traffic group'ssessions in the monthdoubleDerivedcalculated inmart_monthly_country_session_shareDerived from other conceptsmarts (1 model)day_of_weekDay of the week, numbered from 1 for MondayintegerDerivedcalculated in fct_hitsDerived from other conceptsmarts (2 models)day_of_week_hit_shareThe weekday's share of the group's page viewsin an average weekdoubleDerivedcalculated inmart_day_of_week_hit_shareDerived from other conceptsmarts (1 model)day_of_week_nameName of the day of the weekvarcharDerivedcalculated inmart_day_of_week_hit_shareDerived from other conceptsmarts (1 model)declared_bot_session_shareThe kind of bot's share of declared botsessionsdoubleDerivedcalculated inmart_declared_bot_category_shareDerived from other conceptsmarts (1 model)hit_shareThe week's share of the group's page viewsover the whole perioddoubleDerivedcalculated in mart_weekly_hit_shareDerived from other conceptsmarts (1 model)hour_of_dayHour of the day, in the reporting time zoneintegerDerivedcalculated in fct_hitsDerived from other conceptsmarts (2 models)hour_of_day_hit_shareThe hour's share of the group's page viewsdoubleDerivedcalculated in mart_hour_of_day_hit_shareDerived from other conceptsmarts (1 model)is_complete_monthWhether the whole month is in the periodcoveredbooleanDerivedcalculated inmart_monthly_country_session_shareDerived from other conceptsmarts (1 model)is_complete_weekWhether all seven days of the week are in theperiod covered. A partial week has a lowershare of the period's total.booleanDerivedcalculated in mart_weekly_hit_shareDerived from other conceptsmarts (2 models)month_startFirst day of the monthdateDerivedcalculated inmart_monthly_country_session_shareDerived from other conceptsmarts (1 model)period_end_dateLast day the shares cover: the last completeday, so a day in progress can't skew themdateDerivedcalculated inint_shynet_db__reporting_periodDerived from other conceptsintermediate, marts (5 models)period_start_dateFirst day the shares coverdateDerivedcalculated inint_shynet_db__reporting_periodDerived from other conceptsintermediate, marts (5 models)session_shareThe class's share of the period's sessions,excluding development visitsdoubleDerivedcalculated in mart_session_class_shareDerived from other conceptsmarts (2 models)week_startMonday the week starts ondateDerivedcalculated in mart_weekly_hit_shareDerived from other conceptsmarts (2 models) LineageWhen each row was loaded, and which record it isConceptDefinitionTypeOriginComes FromSource to FinalUsed Inhit_record_ids_hashFingerprint of the page views combined into thesession's activity, for checking which went invarcharDerivedcalculated inint_shynet_db__session_activityDerived from other conceptsintermediate, marts (2 models)loaded_atWhen the row was last loaded. Recent rows arereloaded on each run.timestamp withtime zoneSourcedaily_browsers._dlt_load_id,daily_countries._dlt_load_id,daily_device_types._dlt_load_id,daily_devices._dlt_load_id,daily_locations._dlt_load_id,daily_operating_systems._dlt_load_id,daily_referrers._dlt_load_id,daily_stats._dlt_load_id, hits._dlt_load_id,hourly_stats._dlt_load_id,services._dlt_load_id,sessions._dlt_load_idrenamed from _dlt_load_id; cast from varchar;source: dlt load id; the Unix timestamp (seconds)of the load start, as textstaging, intermediate, marts (19models)record_idIdentifier of the loaded row, the same acrossloadsvarcharSourcedaily_browsers._dlt_id,daily_countries._dlt_id,daily_device_types._dlt_id,daily_devices._dlt_id,daily_locations._dlt_id,daily_operating_systems._dlt_id,daily_referrers._dlt_id, daily_stats._dlt_id,hits._dlt_id, hourly_stats._dlt_id,services._dlt_id, sessions._dlt_idrenamed from _dlt_idstaging, intermediate, marts (19models)record_ids_hashFingerprint of the rows combined into this one,for checking which rows went invarcharDerivedcalculated inmart_daily_sessions_by_classDerived from other conceptsmarts (8 models) Data as of 13:13 UTC on 17 Oct 2026 made withdbt Charts