From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id oMQUCYVpvGJdHgEAbAwnHQ (envelope-from ) for ; Wed, 29 Jun 2022 17:02:29 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id 2LUUCIVpvGJCggEAG6o9tA (envelope-from ) for ; Wed, 29 Jun 2022 17:02:29 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id AABD5ED4C for ; Wed, 29 Jun 2022 17:02:28 +0200 (CEST) Received: from localhost ([::1]:39190 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o6ZD1-0000LU-Qh for larch@yhetil.org; Wed, 29 Jun 2022 11:02:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49292) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o6ZAm-0000KK-Ro for emacs-orgmode@gnu.org; Wed, 29 Jun 2022 11:00:09 -0400 Received: from se08.route25.eu ([2a00:f10:305:0:1c00:d8ff:fe00:461]:53950) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o6ZAg-0007OM-3e for emacs-orgmode@gnu.org; Wed, 29 Jun 2022 11:00:08 -0400 Date: Wed, 29 Jun 2022 16:59:52 +0200 From: Russell Adams To: emacs-orgmode@gnu.org Subject: Alternatives to clocking in/out for reporting time Message-ID: Mail-Followup-To: emacs-orgmode@gnu.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Originating-IP: 185.87.184.57 X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 185.87.184.57 X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.15) X-Recommended-Action: accept X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT9WLQux0N3HQm8ltz8rnu+BPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5xiExUbNqvmdkLSOzf1W2Y3z8hkeSqZT0W1YMl0fRDa99cV PSoHm0W/3adFfiYl2nshPohX+xkffu06sAwKB8Lh/T4GcPvCLvSpAEEGy7kYxsD3QRUnhlexiXT3 xXuXeIhevFP+kOiMW3ZJfjMJYMEj+gaXrHkgRC7/tI3CjXmVym0wkKI+2ccuOfkp0TUSwaHHh0cQ L0Ci0sRm4Wh/iZxm6GtiR/ZS57IrkuRfCYlnnsztdQUSqk/AeLi65+4s/LrywTM2yEHEhvC9Izsy /NENTMQ3Kg3hL2oXz5A5E5R/dS4GkJ5hfB+qWugfDEytZYoACfRtBjLzEjgIZNLWhI/Mshn3T8Ox KyIrAogwLlirll+u0Sc2bgjgy6NE5WzPnrJ1fJyKyenPq733oZ8bAyJmHQrtppYmxMktfUX7kfB+ UdezYqxGMqsKjARq8PBC4qgxMmglBiLsgrvXOb7qEGUwgxHIagHkgJmlqPNWnLI1oovhSJcbnX/H QqL/X9rNCJCc6iESJvKm1NV8gkr+Wu8ScVDXinOVyuIpITQ9z3M3DJ8yTUE5ABY7lZUQaTevIGGY PGPCpwadnh0Ok6RyTHqH9itE1UOBnYYrT3OA/zBYigeYUOp7A73HI6oJg7w/VofXNtJGfb5qBubz eax4SnFxX0vbOV1GC4tWSdMEfX0qZk++GRKi3fJfRTPr/PuJHE3m6VivjERwJCPAqPqAny+5dxGq bFPaf63IwETnO6Zd4z2GoWpYAOWZxxPP8tcFxZ6lo75zrhNh/RoifvTnsBa5ZuM7jUXIESohoO51 xWmU8XVM/nDHjrAGU5vVL4XTIv4MLPip/u1PihktsjK9KjB8YeKFIoZNCEtidK7IlrsGUp+i+6nm 8QLONw0zB8awNr0L/wzCdtFGkMNi6UfW3mVmwk3xC0YEqah8H9zG7AE/EhqZfqbUZNOrBWY03CEu +85tl6nIiSdD++5RdEBEl+IPHAXz/6s5FV11bC5ISFJqlg03a6SLNhJ6Q12/4jZa7jE= X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=2a00:f10:305:0:1c00:d8ff:fe00:461; envelope-from=rladams@adamsinfoserv.com; helo=se08.route25.eu X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1656514948; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=2jXO6i5/EWxPnikwWQlMGABANTl8DPZiLipd6oL4tsk=; b=gl5q90W6DO1j4XxzvaHpeR8U65Tgj9XQyzZBTfkn6WYBTXkffRnetf8eDLvE5KYtVDWlHI TeRw5pMxMaNjOt5DjJmfkkX80Syx2hHb6x/T0/PslmHLWUSNIYcnNpG/hfoJ9PJ2sp8pLm kKOE8A9I3Jj96vWqNz+91Du9JNfocxhEvNW2/Q61CEU18egENW7Er32MxhCYY7cD+vUJGt UzG3lypjs7iUXIUatDbeJArluSv0iM5GL0kvZrRf5HDdT4z2r4sNzFRRDHcExc9o51NV6Y 6adyVEXDhPXNW2hgXo5XHbT4Afcnn9p9O4kmvpJecTUHpXhuShm+SrdDzal09Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1656514948; a=rsa-sha256; cv=none; b=C3DhrLq8ipltZd63jCeBZok1VT03+PyQMdWfH4Fs9igqDzKaffr6KW13vEKeXVOiSMRFCs FJTHxfwZ7w6fq/2k6byYecROAL9gbaxSJUWTgbRH6+dS5z+FdPe8Ielb3CY5KWkSMl0fx9 wPJkMvr8UFbOr3oPxMZflmtfo4pClp8XfDSYiQfjLEJeBmZ7zpFJ40tDsSpQK2uq1y/a8t cHXiVfk4vy3j0UkMaVQ6U+gA2kJ161D5SGG/4OYMTwLu8tWv0UQduOmXoOzAYI9WMVlIF/ QrPlUdNzzOgpSLEd9pm6STvTrX9dHvPkIUGa+X2QkoYlq8g0idvfzKnrHjue8A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -3.05 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: AABD5ED4C X-Spam-Score: -3.05 X-Migadu-Scanner: scn0.migadu.com X-TUID: KHav/wqfPhud I make extensive use of timestamps for billing (timesheet) purposes. I'm looking to automate this more, and I find the existing clocking system inadequate. I'm hoping someone can point me in the right direction. Today I have log mode enabled so that each time I close a TODO item, it records the date and time it was closed. At regular intervals while working I add inactive timestamps to my notes. I've mapped that to a single key, so it's quite fast. If I switch tasks, have an update, made progress I want to note to myself, or leave and return I add an inactive timestamp. I have well over 1000 inactive timestamps in my current file. Later I can open my agenda view on the working file, choose my timespan (week or month), enable log mode to show when items were closed, and then enable inactive timestamps to view all of the timestamps. This itemizes all the events organized by time into a timeline. It's fairly straightforward from that timeline to count my hours based on the record of where I spent my time. It is unfortunately a very manual process. I find Org's clocking to be too detailed, and that it doesn't play well with dynamically organized hierarchies of notes. I frequently create and close subtasks, or switch parts of the tree. Clocking each one is too much overhead, and too granular. I don't need to provide down to the minute reports of each item. It also doesn't appear to allow rounding of values, so I still have to adjust the results. What I envision is a way to count items in the agenda view to produce a time report. Counting any inactive timestamp as 15 minutes, where if a half hour or more is logged I round up to bill the hour. Closed TODO items should count toward billing that whole hour. Clearly this should be customized. The point is that I'm not worried about accounting time by task, instead I'm aggregating tasks into accounting by whole hours. I'm looking at org-element, and it appears I'd have to do my own agenda style scan of the whole tree to find items to classify by hour. While I'm somewhat proficient at elisp, that sounds like a steep wall to climb. Is there an iterative way to review items in an agenda view so I can do the math to produce a report? ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com https://www.adamsinfoserv.com/