A cost document is only as good as the assumptions behind it. This page sets out ours, including the places where the product is less complete than a marketing page would normally admit.
BillMate ships with no rate data. Not as an oversight — as a position. A unit rate is a function of a specific market, a specific month, a specific supply chain and a specific contractor's productivity. A rate lifted from another surveyor's job in another city is not evidence; it is an anecdote with a decimal point.
So every rate in your library got there one of four ways, and BillMate records which:
Every rate carries four things beyond its number: the unit it is expressed in, the location it was priced in, the month it was priced, and its source. That is the minimum needed to decide whether a rate is usable today.
A rate older than 12 months is flagged stale — in the library, and again on the bill if you apply it. Staleness is not a block; it is a prompt. In a market with double-digit inflation, 12 months is generous.
When you uplift a schedule by a percentage, BillMate records the uplift as part of the rate's provenance rather than overwriting the history. An uplifted rate is honest about being an uplifted rate, not a freshly priced one.
We distinguish carefully between three things, and we use different words for each:
We do not reproduce or distribute the standards themselves. They are copyright documents and you should hold a licensed copy of the one you work to.
AI drafts; the Quantity Surveyor verifies.
That is not a slogan we put on a page and forget. It is enforced in three places:
The last one is the uncomfortable one, and it is deliberate. If you would not want a client to see how many rates on your bill were machine-drafted and unchecked, the answer is to check them, not to hide the number.
We never describe an AI-generated figure as a current market rate, a benchmark or a quotation. It is produced from training data of uncertain age and unknown locality weighting, and it should be treated as a placeholder that lets you keep working while you chase a real price.
Worked examples on this site — the dimension sheets, the rate build-ups, the bill extracts — are illustrations of a method, not market evidence. They are labelled that way wherever they appear, with the city and the month attached.
We do not publish a Nigerian rate index, and we would be sceptical of a software vendor who did. If a figure on this site is used in a real estimate without being re-priced against your own market, that is a misuse of it.
Things the site deliberately does not state, because the answer is not confirmed inside the product — listed here rather than guessed at. Entries stay after they are settled, with what the answer turned out to be, because a resolved question that quietly vanishes is indistinguishable from one nobody ever asked. Anything still marked Blocking is holding a claim off the site today.
| Ref | Question | Where it stands |
|---|---|---|
| D-01 | Canonical hostname | Answered 26 Aug 2026: the apex https://billmate.site is canonical and www redirects to it. |
| D-02 | The Nigerian price | Answered 26 Aug 2026: Nigerian buyers are charged ₦39,999 at Selar checkout — not the ₦38,500 the brief quoted. The site shows ₦39,999 everywhere. |
| D-05 | Refund window and conditions | Answered 26 Aug 2026: 14 days from purchase, no questions asked, covering the individual and Team licences alike, with the Team pack not pro-rated. Published at /refunds/, and every page that previously implied no deadline now states the 14 days. |
| D-06 | Is the Team pack live? | Answered 26 Aug 2026: yes, the $199 five-person Team product is live and purchasable. |
| D-07 | BESMM4 implementation | Resolved 26 Aug 2026 by reading the shipped application. BESMM4 IS implemented: "NIQS BESMM4(R) (Nigeria)" ships as an 18-section template, and the app instructs the AI in its work sections, item descriptions, deemed-included rules and units, covering building and civil engineering works. GUIDE.html omitted it and was out of date. /standards/besmm4/ has been rewritten from the earlier "no template" position. |
| D-08 | On-screen measurement | Resolved 26 Aug 2026 by reading the shipped application. It exists, it is Pro-gated, and it works on an image of the drawing — photo, screenshot or exported page — with the scale set manually from one known dimension. PDFs are not read directly and there is no BIM or IFC take-off. The site now says exactly that. |
| D-09 | RICS POMI | Resolved 26 Aug 2026 by reading the shipped application. POMI IS implemented: "RICS POMI (International)" ships as a 15-section template with AI measurement instructions. GUIDE.html omitted it. /standards/pomi/ has been rewritten. |
| D-13 | What on-screen measurement actually does | Resolved 26 Aug 2026 by reading the shipped application. It loads an image of the drawing — photo, screenshot or exported page — and the scale is set by hand from one line whose real length you type. PDFs and CAD files are not read directly, and there is no IFC or BIM take-off. /taking-off-sheet/#on-screen describes it in those terms. |
| D-12 | Gumroad or Selar? | Answered 26 Aug 2026: Selar. Gumroad was planned, put on hold, and no licence was sold through it. /refunds/ names Selar. If Gumroad is resumed later, change REFUND.processor in this file and the page follows. |
| D-03 | What the paid licence is called | Answered 26 Aug 2026: Pro. The application says Pro throughout its interface, so a buyer now meets the same word on the site and inside the product. The site says "Pro licence"; "Founder" survives only as a price framing ("Founder price, $59"), never as the name of the tier. The Selar listings and the refund policy still say "Individual licence" and need the same change — see D-16. |
| D-04 | Founder-seat limit | No cap on the number of founder-priced licences exists anywhere in the code, so none is published. Confirm whether one is real. |
| D-10 | Analytics destination | A cookie-free, no-third-party event layer was wired up but switched off - ANALYTICS.endpoint was blank, so nothing was sent anywhere. ANSWERED 2 Sep 2026: the destination is our own Cloudflare Worker in worker/, writing to Workers Analytics Engine. No vendor, no third-party script, no cookie, and deliberately no IP address, country, user agent, referrer or session identifier - the only geography recorded is the region the READER chose, which is the useful signal anyway. The Worker validates every beacon against the event and field allow-lists in ANALYTICS above, and its schema is GENERATED from them, so an event the config does not declare is refused rather than stored. STILL TO DO by the owner: deploy it (npm run worker:deploy), then paste the URL into ANALYTICS.endpoint and rebuild. Until that value is set the site sends nothing and the privacy page says so; set it and the privacy page switches to listing exactly what is collected, because it reads the same value. |
| D-11 | Unrelated files in the web root | Invoice.html (“Bookie — Weekly Invoice”) and default.php (the Hostinger placeholder) were sitting in the web root with nothing to do with BillMate; a third turned up 2 Sep 2026, “pricing link.txt”, a scratch list of Selar URLs readable at /pricing%20link.txt that still named a superseded Nigeria Team link - a stale checkout URL live on the site. RESOLVED 2 Sep 2026: the owner deleted the text file and removed _legacy/ from the host. .htaccess still 404s those names, /src/, /worker/ and every .zip/.rar, and robots.txt disallows them, so a future wholesale upload cannot re-expose any of it. |
| D-15 | The Team column is still not promoted | Found 26 Aug 2026, when the only Team product was titled “BillMate … copy”, never mentioned Team, five people or ten devices, and showed Nigerian visitors ₦271,237 — a raw currency conversion rather than a local price. RESOLVED 2 Sep 2026. There are now four Team products, one per region, each priced deliberately rather than converted, and the owner has confirmed every listing reads as a Team pack. PRICING.team.promoted is true, so the Team card carries a real price and a real checkout on the pricing page, on the home page and on all eight market pages, instead of an enquiry. The listings live outside this repo, so nothing here can catch a later edit on Selar that reintroduces the drift — that is what the pre-launch checkout test in the launch checklist is for. |
| D-16 | Both Selar listings carried stale product copy | Found 26 Aug 2026. The individual product at selar.com/71867170i4 charges the right ₦39,999 but still says “free Groq API key”, claims seven interface languages when there are six, and predates the BESMM4 and POMI templates. RESOLVED 1 Sep 2026: the corrected copy in src/selar-listing-copy.md - which also carries the three-device entitlement, the recovery file and the 60-day seat release - has been pasted into both listings by the owner. Kept as a record rather than deleted, because the listing lives outside this repo: a later edit on Selar can reintroduce the drift with nothing here to catch it. |
| D-17 | The sterling price at checkout | Opened 26 Aug 2026 with the UK market page, when the licence had one price and nobody here had checked what a UK card was actually charged. ANSWERED 2 Sep 2026 by opening the checkout in GBP: the Global product carries a real sterling price of £49 for Pro and £189 for Team - round figures, so they are set by the seller rather than converted on the day. /markets/united-kingdom/ now publishes both, sourced from LOCAL_DISPLAY. Selar offers six display currencies in all (NGN, USD, GBP, GHS, KES, ZAR) and there is no AED, SAR or KWD, so the Gulf page is right to say a Gulf card is charged in dollars. |
| D-18 | Local checkout prices outside Nigeria and the UK | Opened 27 Aug 2026 with the UAE and Gulf market page, widened the same day for South Africa and again on 28 Aug for India. Six market pages quoted $59 while none could say what a local card paid. RESOLVED 2 Sep 2026, by pricing the regions explicitly instead of leaving the checkout to convert: four products, four prices, read off the seller’s own listings — $59 Global, ₦39,999 Africa, R699 South Africa, $32 India, with Team at $199, ₦149,999, R2,499 and $109. Every market page quotes its own region’s figure and links to the product that charges it. India stays in dollars, because dollars is what its checkout displays; quoting rupees would be this same error in a new currency. Ghana, Kenya, the UK and the Gulf are told plainly that their bank does the conversion, so no cedi, shilling, pound or dirham figure is published. |
| D-14 | Stale documentation outside this site | GUIDE.html was wrong about BESMM4, POMI and on-screen measurement, and it has been corrected here. Anything else describing the product — the in-app help, the Selar listing, any PDF or social copy — was likely written from the same stale source and needs the same pass. |
| D-19 | The Africa Team pack cost a Ghanaian or Kenyan buyer roughly twice what it cost a Nigerian | Found 2 Sep 2026 reading the live listings: the Africa Team pack was ₦149,999 in naira, about $112, but carried SET prices of GH¢2,320 and KSh25,740 - both about $199, which is the Global Team price. A Ghanaian or Kenyan opening the Africa Team checkout paid roughly what a UK buyer paid, on the one product whose reason for existing is that they should not. RESOLVED the same day by the owner, and re-read to confirm: the cedi and shilling prices now convert from the naira figure, GH¢1,383.94 and KSh16,110.10. Every Africa link now derives from the Nigerian price. South Africa is the deliberate exception - it has its own set rand price - and India is the Nigerian price expressed in dollars, because Selar has no rupee provision. Ghana and Kenya still publish no cedi or shilling figure on their market pages, because a conversion moves with the rate and a published figure would go stale; the naira price is the reference and the checkout is authoritative. |
| D-20 | The crossed-out prices were a future price, not a former one | Found 2 Sep 2026. Every listing showed a struck-through figure beside the current one - $69 against $59, ₦92,000 against ₦39,999, R1,114 against R699, $69 against $32 for India. The owner confirmed these were the intended selling prices once traction is built, not prices anything had ever sold at, which is what made them a problem: a strikethrough is read as “was, now”, and a reference price that was never charged is a misleading discount claim under the UK CPRs and DMCC, the EU Omnibus 30-day rule and the FCCPA alike. RESOLVED the same day - the owner removed every one of them, re-read here across the Global, Africa and India listings to confirm. If the launch-then-raise plan comes back, the honest form of it is a named launch price - “Launch price $59, rising to $69” - which is a true statement about the future rather than a false one about the past. |
If something on this site is wrong — a rate that does not add up, a claim the product does not support, a standard we have mischaracterised — write to us. We would rather correct a page than defend it.
Build one rate from its constituents and see whether it holds up.