{"id":51048250,"url":"https://github.com/graytechgh/grating-rebalancer","last_synced_at":"2026-06-22T15:01:34.854Z","repository":{"id":361715720,"uuid":"1255510826","full_name":"GrayTechGH/GRating-Rebalancer","owner":"GrayTechGH","description":"GRating Rebalancer is a Calibre GUI plugin that turns Goodreads rating data into library-relative scores","archived":false,"fork":false,"pushed_at":"2026-06-01T00:04:48.000Z","size":1497,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T01:11:59.365Z","etag":null,"topics":["book-ratings","calibre","calibre-plugin","ebook","ebooks","goodreads","gui-plugin","library-management","metadata","ratings"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GrayTechGH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-31T23:07:46.000Z","updated_at":"2026-06-01T00:28:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GrayTechGH/GRating-Rebalancer","commit_stats":null,"previous_names":["graytechgh/grating-rebalancer"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/GrayTechGH/GRating-Rebalancer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayTechGH%2FGRating-Rebalancer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayTechGH%2FGRating-Rebalancer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayTechGH%2FGRating-Rebalancer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayTechGH%2FGRating-Rebalancer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GrayTechGH","download_url":"https://codeload.github.com/GrayTechGH/GRating-Rebalancer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayTechGH%2FGRating-Rebalancer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34653715,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["book-ratings","calibre","calibre-plugin","ebook","ebooks","goodreads","gui-plugin","library-management","metadata","ratings"],"created_at":"2026-06-22T15:01:33.842Z","updated_at":"2026-06-22T15:01:34.849Z","avatar_url":"https://github.com/GrayTechGH.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GRating Rebalancer\n\nGRating Rebalancer is a Calibre GUI plugin that turns Goodreads rating data\ninto library-relative scores. It reads each book's Goodreads rating and vote\ncount from Calibre identifiers, compares the book against the rest of your\nlibrary, and writes the result to custom columns you choose.\n\nThe plugin is useful when you want ratings that are comparable inside your own\nlibrary instead of raw Goodreads averages. A 4.1 with thousands of votes may\nmean something different from a 4.1 with very few votes; GRating Rebalancer\nuses the full library distribution, vote counts, and optional series correction\nto produce more useful local outputs.\n\n## What It Writes\n\nGRating Rebalancer never overwrites the source Goodreads identifiers.\n\nIt can write:\n\n- An Output column containing the raw library percentile from `0.0` to `100.0`.\n- An optional Rating column containing a display-shaped value, such as a\n  percentile, decimal, custom number range, or Calibre star rating.\n\nThe Output column is the stable raw result. Distribution settings only affect\nthe optional Rating column.\n\n## Requirements\n\n- Calibre with support for third-party GUI plugins.\n- Books with Goodreads data stored in Calibre identifiers:\n  - `grrating` for the Goodreads average rating.\n  - `grvotes` for the Goodreads vote count.\n- At least one compatible Calibre custom column for the Output value.\n\nFor best results, the plugin should be run on a library with enough rated books\nto form a meaningful distribution.\n\n## Install\n\n1. Download the plugin zip file, such as `GRating Rebalancer.zip`.\n2. In Calibre, open `Preferences`.\n3. Choose `Plugins`.\n4. Select `Load plugin from file`.\n5. Choose the downloaded zip file.\n6. Restart Calibre if prompted.\n\nAfter installation, the toolbar action is labeled `GRating RB`.\n\n## Set Up Columns\n\nCreate the columns you want before configuring the plugin.\n\nRecommended setup:\n\n- Output: a numeric custom column for the raw `0.0-100.0` percentile.\n- Rating: optional. Use this if you also want a shaped value, custom range, or\n  star rating written to a second field.\n\nThe plugin filters the dropdowns to compatible destination columns. It does not\noffer `grrating` or `grvotes` as write targets.\n\n## Configure\n\nOpen `GRating RB` customization from Calibre's plugin preferences or plugin\nmenu.\n\nMain options:\n\n- `Output`: the required custom column for raw percentiles.\n- `Rating type`: how the optional Rating value should be formatted.\n- `Rating`: optional destination for the shaped Rating value.\n- `Mapping scope`: choose whether locked maps are global or separate per\n  Calibre library.\n- `Locked map`: lock or rebuild the rating-to-percentile map for consistent\n  future runs.\n\nSeries options:\n\n- `Series correction`: enable or disable series-position penalties.\n- `Correction strength`: choose how strongly learned series penalties apply.\n- `Rerank after series penalties`: when enabled, the optional Rating field is\n  reranked after series penalties. When disabled, direct penalty values are\n  written.\n\nDistribution options:\n\n- `Uniform`: keeps values close to their calculated percentile.\n- `Bell curve`: compresses values toward a configurable peak.\n- `Positive skew`: pushes more values toward the higher end.\n- `J-Curve`: creates a more selective, top-heavy scale.\n\n## Run\n\n1. Select one or more books in Calibre.\n2. Click `GRating RB`.\n3. Review any confirmation or warning dialogs.\n4. Let the plugin scan the library, calculate scores, and write selected\n   outputs.\n\nThe plugin uses the selected books as the write target, but it scans the wider\nlibrary to build the percentile distribution.\n\n## Locked Maps\n\nBy default, GRating Rebalancer can recalculate the rating-to-percentile map each\nrun. Locking a map preserves the current rating curve so later runs stay\nconsistent even as your library changes.\n\nUse a locked map when you want stable results over time. Rebuild the map when\nyour library has changed enough that you want a new baseline.\n\n## Notes\n\n- Percentile `100.0` means the book is at the top of your library's Goodreads\n  rating distribution.\n- Star output treats percentile `0.0` as unrated.\n- Books without usable Goodreads rating or vote data are skipped.\n- The plugin writes only to the fields you configure.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraytechgh%2Fgrating-rebalancer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraytechgh%2Fgrating-rebalancer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraytechgh%2Fgrating-rebalancer/lists"}