Recued
Menu
← Back to recipes

Log hours

by recued-core v2 9 views

Use “Log hours” in Recued. Record one block of work against an engagement. It uses the connections and settings you choose when you run it.

Complete workflow

Billable Hours 5 pinned recipes

Use Billable Hours in Recued for time tracking, invoicing, freelance, and consulting. It includes 11 built-in actions and 4 ready-to-run workflows. Actions that change data use Recued's approval controls.

You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.

Log hours
This recipe

Use “Log hours” in Recued. Record one block of work against an engagement. It uses the connections and settings you choose when you run it.

pack:billable-hourstime-trackingbillablerecords
by recued-core pinned v2

Use “Open an engagement” in Recued. Record a client and the hourly rate you bill them. Keyed on the label, so re-running with the same one converges instead of opening a second engagement at a different rate.

pack:billable-hourstime-trackingbillablerecords
by recued-core pinned v2

Use “Show unbilled hours” in Recued. What you have worked and not yet billed, per task. Hours and entry count come from the store over every matching row; the per-task money breakdown covers the entries fetched, and the card says when those differ.

pack:billable-hourstime-trackingboardrecords
by recued-core pinned v2

Use “Bill a period” in Recued. Group a period's unbilled billable hours by task, stamp each entry with your invoice reference, and produce invoice lines whose amounts add up to the total. Entries already carrying an invoice reference are left alone, so running it twice cannot charge the same hour twice.

pack:billable-hourstime-trackingbillableinvoicing
by recued-core pinned v2
View pack details, dependencies, and permissions →

Logging time

Give the engagement, the date, how many minutes, and what you did.

Minutes, not hours, and that is deliberate. 1.75 hours stored as a float and multiplied by a rate is how money quietly drifts; 105 minutes is exact. The conversion to money happens once, at the point a figure is stated, and is rounded to two decimals there.

There is no start/stop timer. This records a block you already know the length of. A stopwatch would need the recipe to run twice with state in between, and a half-open timer is worse than no timer — it looks like tracked time and is not.

Billable off still records the time. Non-billable work is worth knowing about; it simply never reaches an invoice and is counted separately on the board.

Nothing here prevents overlapping entries. Two blocks covering the same wall-clock hour are both kept — the pack does not know your calendar, and refusing honest double-entry would be worse than showing it. The board totals what you logged.

How it works 30 steps

Inspect the data fetches, transforms, gates, and output this recipe runs.

Process (30 steps)
engagement_id trim
Trim whitespace from setting engagement id
id_present compare
Check if engagement id has data
id_guard guard
Stop if id present equals
engagement ?
found compare
Check if engagement record id has data
found_guard guard
Stop if found equals
is_active compare
Check if engagement record status equals active
active_guard guard
Stop if is active equals
minutes_whole round
Round setting minutes to 0 decimal places
minutes_positive compare
Check if minutes whole is greater than 0
minutes_guard guard
Stop if minutes positive equals
date_in trim
Trim whitespace from setting worked on
now_iso date_add
Add 0 seconds to
today date_format
Format as a date
worked_on default
Apply default
date_len string_length
Apply string_length
date_ok compare
Check if date len equals 10
date_guard guard
Stop if date ok equals
date_parts split
Split worked on into parts
period template
Generate text from a template
description trim
Trim whitespace from setting description
task_ref trim
Trim whitespace from setting task ref
engagement_ref template
Generate text from a template
logged_at date_add
Add 0 seconds to
create ?
hours_decimal math
Calculate: {{step.minutes_whole}} / 60
hours_shown round
Round hours decimal to 2 decimal places
amount_raw math
Calculate: {{step.minutes_whole}} * {{step.engagement.record.rate_per_hour}} / 60
amount round
Round amount raw to 2 decimal places
card to_summary
Format results as a summary card
Settings 6 configurable

Configurable at install. Defaults shown — change them anytime in Recued.

minutes setting = 0
billable setting = true
task ref setting =
worked on setting =
description setting =
engagement id setting = [object Object]

About

Tags

pack:billable-hourstime-trackingbillablerecordsv2

Details

30 steps 6 configurable settings recipe_id: log-hours