{"adoption": {"forks": 217, "observed_at": "2026-08-28T04:04:23.968660+00:00", "stars": 1330}, "canonical_url": "https://ross.abutalabs.com/products/business_time", "card": {"archived": false, "artifact_type": "library", "description": "Support for doing time math in business hours and days", "domain": ["developer-tools"], "enriched": true, "function": ["date-time", "sdk"], "health_score": 67, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["bokmann/business_time"], "name": "bokmann/business_time", "platform": ["ruby"], "pushed_at": "2026-04-19T00:33:07+00:00", "repo": "bokmann/business_time", "stars": 1330, "tags": ["business-hours", "time-math", "activesupport", "holidays", "work-week", "sla-calculation", "automation"], "topics": [], "urls": [], "use_cases": ["calculate sla response times in business hours", "add business days to a date skipping weekends and holidays", "check if a date is a workday", "measure business time elapsed between two timestamps", "configure custom work weeks and holiday calendars", "estimate ticket resolution deadlines in working hours"], "what_it_is": "A Ruby gem that extends ActiveSupport's time math helpers to account for business hours, business days, weekends, and holidays. It lets developers compute offsets like '8 business hours from now' or durations between dates in working time.", "when_to_avoid": ["you're not working in Ruby", "you need timezone-database-aware scheduling or recurring event calendars rather than simple business-time math", "you need a full scheduling or calendar service with persistence"], "when_to_choose": ["you're building a Ruby or Rails app that needs business-hours-aware date arithmetic", "you need configurable holidays, work weeks, or per-day business hours", "you want a lightweight, mature gem for SLA or deadline calculations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/business_time", "repo": "bokmann/business_time", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.968660+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:45:30.584223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "597bb6a0531221e40363f27327374ef0318f723355ee3bdc2e9e0f4ab28bbe03", "fetched_at": "2026-08-28T04:04:23.968660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bokmann/business_time"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 78, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5986, "days_push": 137, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}