"""Reproduce the article's synthetic weighting example. No real site data.

License: CC BY 4.0 https://creativecommons.org/licenses/by/4.0/
Source: https://gscdump.com/learn-google-search-console/research/gsc-data-loss-study
"""

from fractions import Fraction

# Total clicks and returned query clicks, with matching measurement settings.
SYNTHETIC_SITES = ((100, 20), (900, 810))
site_gaps = [Fraction(total - query, total) for total, query in SYNTHETIC_SITES]
mean_site_gap = sum(site_gaps) / len(site_gaps)
total_clicks = sum(total for total, _ in SYNTHETIC_SITES)
query_clicks = sum(query for _, query in SYNTHETIC_SITES)
pooled_click_gap = Fraction(total_clicks - query_clicks, total_clicks)

print("Synthetic inputs only; no Search Console account was queried.")
for label, gap in zip(("A", "B"), site_gaps):
    print(f"Site {label} gap: {float(gap):.0%}")
print(f"Mean site gap: {float(mean_site_gap):.0%}")
print(f"Pooled click gap: {float(pooled_click_gap):.0%}")
