ankane/groupdate

The simplest way to group temporal data

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 33 minutes ago
Added to GitGenius on September 17th, 2026
Created on April 18th, 2013
Open Issues & Pull Requests: 2 (+0)
GitHub issues: Enabled
Number of forks: 240
Total Stargazers: 3,886 (+0)
Total Subscribers: 42 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.8 hours
Mean response time: 7.1 days
90th percentile: 46.7 days
Tracked items: 7

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,705 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Groupdate is a Ruby library that groups temporal data by time periods in database queries.

The library solves the problem of aggregating time-series data across various time intervals—from seconds to years, as well as derived periods like day of week or hour of day. It works by translating grouping operations into database-native SQL, supporting PostgreSQL, MySQL, MariaDB, SQLite, and Redshift. A key strength is its handling of time zones, including daylight saving time transitions, which the README emphasizes as a primary feature. The tool also returns complete series by default, filling in periods with no data rather than omitting them, and keys are returned as date or time objects representing the period start.

Groupdate suits Rails applications that need to aggregate temporal metrics for reporting or visualization. It works anywhere Active Record's `group` method applies and integrates with aggregation functions like `count`, `sum`, `minimum`, `maximum`, and `average`. The README notes it pairs well with Chartkick for visualization. Developers can customize behavior through options like time zone selection, week start day, day start hour, time ranges, key formatting, and whether to include empty periods. For MySQL and MariaDB, time zone support must be explicitly installed on the server.

The project maintains a straightforward development posture with a dedicated changelog and explicit contribution guidelines. It accepts bug reports, pull requests, and documentation improvements through standard GitHub workflows, with a contributing guide available for those wanting to participate in development and testing.