jannikmi/timezonefinder - Open Source PR Review Scorecard

Offline timezone lookup for WGS84 coordinates, with no polygon simplification - so the answer stays correct at timezone borders.

C-Rank Grade: A (Welcoming) - 69/100

External PR Merge Rate: 75%

Response Time: 17h

First Timer Success: 100%

Frequently Asked Questions

Is jannikmi/timezonefinder welcoming to first-time open-source contributors?

jannikmi/timezonefinder has a recorded first-timer success rate of 100.0%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in jannikmi/timezonefinder respond to incoming external pull requests in approximately 16.8 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 68.8 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 68.8 places jannikmi/timezonefinder in the A tier.

What is the external contributor pull request merge rate for jannikmi/timezonefinder?

The external contributor pull request merge rate for jannikmi/timezonefinder is 75.3%, based on public PR activity from non-core contributors.

Are there Good First Issues available in jannikmi/timezonefinder?

jannikmi/timezonefinder does not currently have active "good first issue" tags indexed, but accepts external contributions through standard GitHub issue tracking.

jannikmi
jannikmi/timezonefinderA•Welcoming536
GitHub
Back to Explorer
jannikmi

jannikmi/timezonefinder

536
Active (30d)A•Welcoming(69/100)Python

Offline timezone lookup for WGS84 coordinates, with no polygon simplification - so the answer stays correct at timezone borders.

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Welcoming Community Builder

Warmth Score
8.3/10
Patience Score
8.4/10
Nitpick Rate
40%

Highly welcoming maintainers in jannikmi/timezonefinder. Prompt code reviews with positive guidance for new contributors.

Top PR Submission Do's

  • •Ensure code complies with the project coding style
  • •Keep PRs scoped to a single concern
  • •Include context and link to the related issue

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit PRs without linking an issue
  • •Do not break existing tests without fixing them
  • •Do not mix unrelated refactors in a single PR
Response Velocity
16 hours
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
75.3%
High acceptance rate for external PRs

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
100.0%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
5 core
Small core review team
Diagnostic Health HUD
75.3%
Merge Gauge
100.0%
1st-Timer
Community Vibe77/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for jannikmi/timezonefinder
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/jannikmi/timezonefinder)](https://getmerged.abhishekco.de/jannikmi/timezonefinder?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

Follow-up to #350 / #509. The measurement below is the point of this issue: dropping holes today returns wrong timezones, so this is blocked on establishing an ordering guarantee, not on verifying one that already holds. The idea Every hole exists to say "this area is not the surrounding zone". But the area is always some other zone's polygon, and the lookup already tests those polygons. If a covering polygon is guaranteed to be tested before the surrounding one, the hole carries no information and can be dropped — along with the entire parallel data structure that serves it. That is the end state the original #350 description assumed. #509 delivered only the storage half (holes that duplicate a boundary polygon are stored as a reference to it); the structural half is this issue. What it would remove timezonefinder/data/holes/ (6 files) ~180 KB timezonefinder/data/hole_registry.json ~3 KB HoleArray (polygon_array.py) ~85 lines _iter_hole_ids_of, _holes_of_poly, _load_h

📅 Opened Aug 14, 2026💬 2 comments
Quality: 90/100Contribute

This package's whole position is border correctness: it stores every vertex of every polygon, unsimplified, and docs/alternatives.rst says plainly that if a wrong answer near a border is a rounding error rather than a bug, tzfpy is the better choice. But a caller cannot currently ask how close to a border they are — which is the question that tells them whether to trust the answer at all. The idea tf.distance_to_border(lng=..., lat=...) # -> metres tf.timezone_at(lng=..., lat=..., stable_within=50) # -> name, or a signal that 50 m of error could change it The applications that would want this all share a property: their input coordinates carry error comparable to the distances involved — consumer GPS (a few metres to tens of metres), fleet and mobility tracking, maritime and aviation, geocoded addresses. For those users "Europe/Berlin, and the nearest border is 400 m away" and "Europe/Berlin, and the nearest border is 3 m away" are very different answers, and today they a

📅 Opened Aug 13, 2026💬 1 comment
Quality: 90/100Contribute

docs/2_use_cases.rst answers its two headline questions like this: Creating aware datetime objects — check out the example script in examples/aware_datetime.py Getting a location's time zone offset — check out the example script in examples/get_offset.py So the two things most readers arrive wanting are never shown on the documentation site — a reader has to leave, find the repository, and open a file. These are also the highest-traffic questions the page exists to answer. Proposed: Inline the actual code for both, short and complete. Replace the pytz reference with stdlib zoneinfo. pytz remains an extra, but pointing at its documentation as the reference for offsets reads as dated on a Python ≥3.11 package. Add a warning about Etc/GMT±X: ocean zones use an inverted sign convention (Etc/GMT+5 is UTC−5), and since the packaged data covers the oceans, any coordinate at sea hits it. Anyone computing an offset by parsing the returned name will get it backwards. Point 3 is th

📅 Opened Aug 13, 2026💬 1 comment
Quality: 80/100Contribute

Several proposed optimisations are each justified by an assumption about which stage of a lookup dominates, and those assumptions are not all consistent with each other. One measurement settles them. #477 already showed that one such assumption — that a dict lookup is negligible — is wrong in the direction that matters, so this is not a formality. What is already known (#477, numba backend, macOS arm64) query total unique-zone hit 0.94 µs ocean hit 0.96 µs NYC 14.9 µs near a border (Basel) 28.9 µs — of which shortcut_mapping.get 68 ns So the unique-zone query is ~1 µs with no geometry touched, and the ambiguous query is 15–30× that and clearly dominated by the polygon loop. What is missing The breakdown inside those totals. Attribute time to validate_coordinates, h3.latlng_to_cell, shortcut resolution, zone_name_from_id, bbox rejection, ffi.from_buffer marshalling, and the point-in-polygon kernel itself. The clang-without-numba backend. #477 measured nu

📅 Opened Aug 13, 2026💬 0 comments
Quality: 80/100Contribute

Incorporate the feedback regarding the data parsing from #363: Officially supported and tested CLI functionality: extend the existing CLI module and tests. users can run a CLI command to generate the full dataset after pip installing the library rather than cloning the git repo and running a shell script. Example command: timezonefinder update_data [args] Should call the update_data.sh script documented make target for running file converter avoiding ImportError (scripts module couldn't be found) uv run python -m scripts.file_converter write output files to timezonefinder/data/ check in a reduced test polygon data set. include testing running the release script in the tests with the debug data set Completed: The parse_data.sh script does more than parsing the data. It downloads, runs the converter, runs tests, bumps the version, ... Calling it create_release.sh would be more accurate. I only needed the downloading and converting, so I commented out everything else. document

📅 Opened Jul 13, 2026💬 12 comments
Quality: 90/100Contribute
Looking for more Python beginner tasks?Explore Python GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for jannikmi/timezonefinder

When evaluating whether to contribute to jannikmi/timezonefinder, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of jannikmi/timezonefinder acknowledge new external contributions in approximately 16 hours. Out of all submitted pull requests from non-core authors in the last 180-day window, 75.3% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to jannikmi/timezonefinder

01

Is jannikmi/timezonefinder welcoming to first-time open-source contributors?

jannikmi/timezonefinder has a recorded first-timer success rate of 100.0%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~16 hours. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 68.8 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 68.8 places jannikmi/timezonefinder in the Welcoming tier.

04

What is the external contributor pull request merge rate for jannikmi/timezonefinder?

The external pull request merge rate is 75.3%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in jannikmi/timezonefinder?

jannikmi/timezonefinder does not have open beginner labels indexed currently, but external PRs for bugs and documentation improvements are evaluated via normal issue triage.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for jannikmi/timezonefinder are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.