From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id CBSZBHMGvWJd1AAAbAwnHQ (envelope-from ) for ; Thu, 30 Jun 2022 04:12:03 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id ACiIBHMGvWLOGQAA9RJhRA (envelope-from ) for ; Thu, 30 Jun 2022 04:12:03 +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 729AF8F71 for ; Thu, 30 Jun 2022 04:12:02 +0200 (CEST) Received: from localhost ([::1]:60386 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o6jey-00043A-SZ for larch@yhetil.org; Wed, 29 Jun 2022 22:12:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48744) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o6jeI-00042l-55 for emacs-orgmode@gnu.org; Wed, 29 Jun 2022 22:11:18 -0400 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]:35771) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o6jeG-0000hd-4t for emacs-orgmode@gnu.org; Wed, 29 Jun 2022 22:11:17 -0400 Received: by mail-lf1-x133.google.com with SMTP id x3so31222296lfd.2 for ; Wed, 29 Jun 2022 19:11:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=OTMulzv2CnzooMd7CPvUyxUsNod7Qi+WmllIybArUPI=; b=ZrQretx6utSbhYi1ZtnrVXH4c32qPoxOAnC8lWMXzjN8LL8XYE4nKGyCUpej0T4T1O iSMCww5THwQ5moYVzatNrQ/QLowvurJom5utGqVklRKkTGOUPbF+YWlNvAcwj23DHoNX HZGXCsj7IbxEvYKYFZ2VpdJmtndFUZweZaaBLwdMu/OQ9/nEg0onv5TxujTYfBOBW9Nn RTeuSCLd/XxDlFTPy9vyefZ/2jRBn+g8dLvZsc/LNKOPgxGLJp3B+mgMIfod1VSf0wiQ cU1PZi4z/UGOGZXop1MjcD8DAhKSWTkH61e6Yv1tJcvIioBYSsqozzto64lEJO2cFhj7 kPiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=OTMulzv2CnzooMd7CPvUyxUsNod7Qi+WmllIybArUPI=; b=Njmt3/yq29lUL3irc1obp/ZDOCemcEYBqpdKb/ICtidERYVFU+5CGuEnJAbR68zDol yYkFfZ3eH3ZuzNvVVh8ioAt7WzixQXlHkrUZAZz4BjwuijLIo3HNuRYnBrud05fXith2 VZULku1lJRnbL7GoJs1qTELxskuoC2Rzq2rUe/6LRWWWeqgSP1454RtccH41PqETdLuC wSuNd+2wYHhEdx6XK42wzV1cXhZ4ytBitn92l/QHhclSvG2N3PIdBGRZNgAC3NXuePqG vIasTEkQ3DMaJGfDJQrrjdOmk+/5miua23DEYwl8ZMoSmOqggfnbt2rNoRDWkkpg/4An mYmw== X-Gm-Message-State: AJIora8OGwqn+O0/lJ7B+m0lKnQwTPpgoBwQnCRyd+d3ogFA871ZM1+0 0GtzLhcETKG/mAP81H9uYSSyUEOID37dZxOZ4LNJ7Anbh+hCDw== X-Google-Smtp-Source: AGRyM1slEuE+W8b1TrlUNoA1kilF+kdDyjQA0uYiQqmu7UQlyb/clcdCkvK8hY5gGOn4bY9XMZMNK+NiTd7cJHBxmOc= X-Received: by 2002:a05:6512:3f9b:b0:47f:48b:ae0d with SMTP id x27-20020a0565123f9b00b0047f048bae0dmr3885017lfa.27.1656555072664; Wed, 29 Jun 2022 19:11:12 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a05:6520:2432:b0:1f7:d9f7:61a with HTTP; Wed, 29 Jun 2022 19:11:10 -0700 (PDT) In-Reply-To: References: From: Samuel Wales Date: Wed, 29 Jun 2022 19:11:10 -0700 Message-ID: Subject: Re: Alternatives to clocking in/out for reporting time To: emacs-orgmode@gnu.org Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2a00:1450:4864:20::133; envelope-from=samologist@gmail.com; helo=mail-lf1-x133.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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=1656555122; 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:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=OTMulzv2CnzooMd7CPvUyxUsNod7Qi+WmllIybArUPI=; b=h0j1Xza33IRfkZR36DsMZ4au9MKk94j4heM3qyVWe4cN0U7QKFswRpQD2Ze/iG40nZUVL3 hvMjRJxZn4AU+eUdytNpAXkccrRT8Jcqakioz6m27ECNnWSMtOiKuQzjCAl6imNaW8HPtx M9e5Szg1moLu9ndE9TIwyrJwwXtgORjVBeG9COaTPVx4xGWH49lB0sK3qumtdbPIqjxS/9 +6MU4TjxUcZD7iqxr8YJwaZPLD+dDOQyiSfGid9dY5rZH+aVwzrpWelb1Q7LNGwqF+gO5p gQZEs3jHqN5N3+rSKwyHzIRZrwUzS/iiiCpXsDkY/0s+yVAb47ne9RXxSx2QNQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1656555122; a=rsa-sha256; cv=none; b=ddY40U9GlD8H+j+G5BZTycvH9ftmQ7yWkylujpjHGpXuZBmpW8IxBOFGRyXzcNCw/3hlS/ bLzP8E/7IxRY0rbMzXS19dNbJcSZkkHUn8zR03C5pZGoSifFYSIfjvNl2/U822SB2JI737 4U1bdardt2b3XixRZpaNpw359enZ2HESdvYt2qPb6qkp9Y+2b+4py9g5IFtgkXWMTEu9+X IVwt9NbQisp4q51i9Dm/mzv7mrt9Wz/yNNbMD3fQAAwbkaH0XfJrr55ozCE7NjhYPxD4Qb bA1ar0QyAKMSjRw77u+4NodYz6cIE24+bWcZzCU6z8RhAZ7XaVhF0rWRtfj2lQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ZrQretx6; dmarc=pass (policy=none) header.from=gmail.com; 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: -8.95 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ZrQretx6; dmarc=pass (policy=none) header.from=gmail.com; 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: 729AF8F71 X-Spam-Score: -8.95 X-Migadu-Scanner: scn0.migadu.com X-TUID: SDT+R5PpTDOa a few things taht are probably all completely obvious or investigated or irrelevant just in case. just brainstorm. do you have everything relevant in the same subtrees? i.e. not wanting granular, can you search upward for a dominating entry kind of like git searching upward for the .git dir or so? property drawer could control what's a dominating entry. you probably thoguht of this or of having whatever categories as tags or categories in entries though. in any case that would clock. you could even have clocking clock into that no matter wher eyou are via some timer in principle. just a brainstorm. you said dynamic som perhaps there is no dominating entry for each category though. org-time-stamp-rounding-minutes and org-clock-rounding-minutes . i presume you don't find them relevant. reminder: inactive ts in the clocked notation is usualy treated separately by org [i.e. not hte same type of ts] from bare ia. perhaps some kind of text property in the following could categorize entries and then org can sum them perhaps via some hook you'd populate. it might be possible in principle to re-create most of the old agenda L timeline view, but with multiple files instead of a single file and with a search filter, by using the search agenda view, as there is some intermediate function, perhaps org-agenda-before-sorting-filter-function. idk if you neeed multiple bare ia tses [or of various types of tses perhaps if you do decide you need more than bare ia] per entry but doing so is probalby possible merely by having that function add the duplicates. the ts would be put in the prefix format. you'd have to have custom sorting by whichever ts you are recording [in the total list] for each entry; idk if that is straightforward. above probably useless but just in case somethinghtere is relevant. 6/29/22, Russell Adams wrote: > 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/ > > -- The Kafka Pandemic A blog about science, health, human rights, and misopathy: https://thekafkapandemic.blogspot.com