diff --git a/why-no-bounty/why-no-bounty.user.js b/why-no-bounty/why-no-bounty.user.js
new file mode 100644
index 0000000..bd63a06
--- /dev/null
+++ b/why-no-bounty/why-no-bounty.user.js
@@ -0,0 +1,97 @@
+// ==UserScript==
+// @name Why No Bounty?
+// @namespace https://github.com/Glorfindel83/
+// @description Adds information to a question indicating why you can't start a bounty.
+// @author Glorfindel
+// @version 0.1
+// @match *://*.stackexchange.com/*
+// @match *://*.stackoverflow.com/*
+// @match *://*.superuser.com/*
+// @match *://*.serverfault.com/*
+// @match *://*.askubuntu.com/*
+// @match *://*.stackapps.com/*
+// @match *://*.mathoverflow.net/*
+// @grant none
+// ==/UserScript==
+
+(function () {
+ "use strict";
+
+ // If there's a 'start a bounty' link, we have nothing to do.
+ if ($("a.bounty-link.bounty").length !== 0) {
+ return;
+ }
+
+ var addInformation = function (message) {
+ $("#question > table > tbody").append("
"
+ + " | bounty not possible: " + message + " |
");
+ };
+
+ // Meta site?
+ if (window.location.host != "meta.stackexchange.com" && window.location.host.contains("meta")) {
+ addInformation("meta sites don't have bounties");
+ return;
+ }
+
+ // Is there an open bounty?
+ if ($("div.question-status.bounty").length !== 0) {
+ addInformation("there is already an open bounty");
+ return;
+ }
+
+ // Is the question closed / locked?
+ var status = $("#question .question-status h2 b").text();
+ if (status === "closed" || status === "put on hold" || status == "marked") {
+ addInformation("the question is closed");
+ return;
+ } else if (status === "locked") {
+ addInformation("the question is locked");
+ return;
+ }
+
+ // Is the question at least two days old?
+ var creationDate = Date.parse($("#question .owner .user-action-time span").attr("title"));
+ var ageInSeconds = (Date.now() - creationDate) / 1000;
+ if (ageInSeconds < 2 * 86400) {
+ addInformation("the question is not two days old yet");
+ return;
+ }
+
+ // Get reputation of current user
+ var reputation = parseInt($("div.-rep.js-header-rep").text().replace(",", ""), 10);
+ if (reputation < 75) {
+ addInformation("you need 75 reputation to create a bounty");
+ return;
+ }
+
+ // Does the user have an answer to this question?
+ var profileURL = $("a.my-profile.js-gps-track").attr("href");
+ var hasAnswer = $(".answercell .user-details a").is(function(index, element) {
+ return $(element).attr("href") == profileURL;
+ });
+ if (hasAnswer && reputation < 100) {
+ addInformation("you need 100 reputation to create a bounty for a question which you've already answered");
+ return;
+ }
+
+ // Find previous bounties on this question by current user
+ var questionLink = $("#question-header a").attr("href");
+ var questionID = /^\/questions\/(\d+)\//.exec(questionLink)[1];
+ $.get("https://" + window.location.host + "/users/current?tab=bounties&sort=offered", function (data) {
+ var summaries = $(data).find("#question-summary-" + questionID);
+ var minimumBounty = 50;
+ if (summaries.length !== 0) {
+ // assume the last (highest) bounty is the first in this list
+ var highestBounty = parseInt(summaries[0].find("div.bounty-indicator").replace("+", ""), 10);
+ minimumBounty = highestBounty * 2;
+ if (minimumBounty > 500) {
+ addInformation("last bounty was " + highestBounty + " which cannot be doubled");
+ return;
+ }
+ }
+ if (reputation > minimumBounty) {
+ addInformation("minimum bounty (" + minimumBounty + ") higher than reputation (" + reputation + ")");
+ return;
+ }
+ });
+})();