Why the X's aren't there — every unbuilt and half-built thing, and what it would take
Written 2026-09-16 on Omar's order (voice, 03:11 UTC): "go through every one that isn't built and say why it isn't there, what's needed, who does it, what it costs, how long."
The list is not a new list. It is the 27 rows marked NOT BUILT and the 12 marked PARTLY in
profile/Screen_Inventory_2026-09-16.md — 39 rows out of the 100 things that have to be seen on the app.
Row 19 — one head-office dashboard over several branches — is closed. Omar, 2026-09-15: Makki Demolition only, one company. It is not a gap, it is not counted below, and it is not raised again.
Where the reasons come from. Nothing here is guessed. Every "why" traces to one of:
profile/Solutions_Plan_2026-09-15.md · profile/Labourer_By_Text_Plan_2026-09-15.md · BUILD_PLAN.md §3 and §4 ·
profile/Fieldflo_Video_Workflows_2026-09-15.md (timestamps are the Fieldflo call of 2026-09-08) ·
profile/Fieldflo_Call_Transcript_2026-09-08.txt · profile/App_Capabilities_2026-09-15.md · portal/roles.js.
Where a source does not say it, the line reads unknown — needs the owner.
About the hours. Every "how long" is this seat's build estimate, on mock data, once the blocker is gone.
It is an estimate, not a quote, and it is not a promise of a date. All money below is over and above the price
already agreed ($3,000/month for the build, then $500/month upkeep) — build time is inside that price.
1. Needs something from the owner — 11 rows
Nothing can start on these until a file, a list or a login comes across from the owner. They are the heaviest group and they are also the cheapest: not one of them costs money.
21 — A quote drafted in the owner's own pricing
What it is. The Estimator helper writes the quote from the scope, in Makki's own prices, instead of the owner typing it.
Why it isn't there. It has nothing to learn from. A quoting helper that has never seen a Makki quote guesses at
Makki's prices, and a guessed price is the one thing this hive is not allowed to produce.
What is needed. A handful of the owner's past quotes — or access to the quoting assistant he trained himself over two years
(MEMORY.md, BUILD_PLAN.md §4 ask 2).
Who. the owner sends them. Cost. Nothing.
How long once unblocked. 2–3 days, then a round of the owner marking the drafts good or wrong.
26 — Permits on the job, with the permit document itself
What it is. The actual permit PDF held on the job, not just its name and expiry date. Why it isn't there. The permit dates and their warnings are built and working. The document shelf is built. There are no Makki permits to put on it. What is needed. A few real permits (a demolition permit, an abatement notification) so the holder is shaped like his. Who. the owner. Cost. Nothing. How long once unblocked. 3–4 hours to hold, version and print them.
33 — The per-load waste manifest inside the job's waste line
What it is. The hauling line on the Project Book shows hauler, landfill and material. What it does not do is one record per truck that leaves. Why it isn't there. Same blocker as row 68 — it has to look like Makki's manifest, not like a guess. Note for accuracy: Fieldflo said "waste reporting" (@21:26) and never said "manifest". The manifest is the owner's own ask, off the abatement side of his work. What is needed. A copy of the waste manifest Makki uses today. Who. the owner. Cost. Nothing. How long once unblocked. Built together with 68 — see 68.
36 — An insurance claim walked room by room for the adjuster
What it is. A room-by-room record with photos before, during and after, scope per room, exported as the sheet
the adjuster reads (Solutions_Plan §4.4).
Why it isn't there. Every insurer wants its own sheet. Ours would be invented paperwork nobody accepts.
What is needed. Whatever the owner sends an adjuster today — one real example.
Who. the owner. Cost. Nothing.
How long once unblocked. 1–2 days. The photo log it sits on is already built (row 31).
47 — A payment matching itself against its job
What it is. A payment lands and the job goes paid without anyone ticking it.
Why it isn't there. Marking a payment by hand is built. Matching one on its own means reading the payments as
they land, and they land in QuickBooks. No QuickBooks connection, no matching (Solutions_Plan §3.4).
What is needed. Row 48 first.
Who. the owner (the QuickBooks sign-in). Cost. Nothing extra.
How long once unblocked. Half a day on top of 48.
48 — QuickBooks Online connected for real
What it is. The real connection instead of the preview screen at Owner › Money › QuickBooks.
Why it isn't there. It needs the owner signed in to his own QuickBooks, at his own screen, once. We never see his
password and cannot do this for him. It was his first unprompted request on the Fieldflo call — "Connect to
QuickBooks… Online" (@8:00, @8:09) — and it is still the one thing that makes every number downstream real.
What is needed. Fifteen minutes with the owner at his screen: he clicks Connect, signs in, and looks at the first
read-only pull to say whether the figures match his books (Solutions_Plan §3 steps 1–2).
Who. the owner clicks. Us to build. Cost. Nothing extra — it runs on his existing QuickBooks plan.
How long once unblocked. 2–3 days for the read-only pull; the push back (an approved invoice becoming a
QuickBooks invoice) only after the owner says the numbers match.
65 — The safety document library, with real documents in it
What it is. JHAs, safe work practices, toolbox talks and SDS sheets, and which job needs which.
Why it isn't there. It is there — the library, the per-job requirement and the shelf all work. What is in it is
11 placeholders. Makki's real OHS documents have never been handed over (BUILD_PLAN.md §4 ask 4).
What is needed. the owner's existing OHS documents.
Who. the owner. Cost. Nothing.
How long once unblocked. A day to load, index and tie them to job types. It also unblocks the Safety Officer
helper (BUILD_PLAN §3 row 7).
66 — One button that prints the file the regulator or an inspector asks for
What it is. One press on the job prints, in order and dated: every man's tickets and expiries for the days he was
on site, the signed toolbox talks, the containment log, the waste manifests, photos and incident notes
(Solutions_Plan §4.3).
Why it isn't there. We do not know what Alberta OHS actually asks Makki for. Fieldflo's version prints OSHA
reports (@5:31) — that is American, and Fieldflo is Denver-built. Copying it would produce a file that is the wrong
shape for the owner's regulator.
What is needed. the owner's OHS documents and one example of a file he has handed a regulator or an inspector before.
Who. the owner. Cost. Nothing.
How long once unblocked. 1–2 days — the pieces it prints are all built already.
67 — The containment log
What it is. Per abatement job: area, containment type, negative-air readings, smoke test, who was in the enclosure
and for how long, signed (Solutions_Plan §4.1).
Why it isn't there. It needs the owner's own form. This is the paperwork that costs money when it is wrong, and it is
the part of Makki's work no other software covers — inventing a layout for it would be worse than not having it.
The owner flagged it himself on the call: "Some stuff for abatements is a little more detailed and job specific" (@4:26).
What is needed. A copy of the containment log Makki fills out today.
Who. the owner. Cost. Nothing.
How long once unblocked. 2–3 days. Most of what it prints is already collected — names come from the crew list,
times come from the hours on Start Day.
68 — A waste manifest per load out
What it is. Per truck: generator, hauler, landfill, material, weight, ticket number, a photo of the scale ticket;
prints as the manifest and stays on the job forever (Solutions_Plan §4.2).
Why it isn't there. the owner's own form again. Same reason as 67.
What is needed. A copy of the manifest Makki uses.
Who. the owner. Cost. Nothing.
How long once unblocked. 1–2 days, and it closes row 33 at the same time.
96 — Employees, customers and jobs brought across from QuickBooks once
What it is. The first pull, so nobody types the business in twice. Why it isn't there. Nothing to pull from until row 48 is connected. What is needed. Row 48. Who. the owner. Cost. Nothing extra. How long once unblocked. Inside the 2–3 days of row 48.
2. Needs money spent — 6 rows
All six are the same purchase: one Canadian phone number. Nothing else on this whole list costs a
recurring dollar. Buying it is Omar's call, and it needs the owner's crew phone numbers to be worth anything
(Labourer_By_Text_Plan_2026-09-15.md, "What it needs before it can be built").
7 — A labourer who never logs in at all
What it is. A man on a demolition crew answers two texts a day and never opens an app, never installs anything, never has a password. The owner liked exactly this in the Fieldflo demo: "Your daily labors… they'll never actually log into your platform" (@2:37). Why it isn't there. We have no phone number to text from. Our version makes a labourer log into the Crew page, and men don't log in. What is needed. (1) A Canadian texting number — Twilio, or Makki's office line ported. (2) the owner's crew phone numbers; we hold names today, not numbers. (3) the owner's yes on the two message wordings. Who. Omar decides the purchase. The owner sends the numbers and approves the wordings. Us to build. Cost. About $10–20 a month all in for a crew of 20 (~$1.50/month for the number, about a cent a message). How long once unblocked. 2–3 days for the whole two-text loop, roster check, one re-ask and the foreman fallback.
17 — One message pushed to the whole crew
What it is. PPE week, the holiday party, site closed Monday — one message, everyone, at once (@5:31). Why it isn't there. No number to send from, and rail 1 stands: nothing leaves this building without Omar's explicit say-so, every time. What is needed. The same number as row 7, plus Omar's standing OK on what a broadcast may say. Who. Omar. Cost. Inside the same $10–20/month. How long once unblocked. Half a day once row 7 exists.
42 — Each man's own week sent to his own phone
What it is. Built today: Crew › My Schedule, and the board previews the per-man message. Not built: actually sending it. The preview is labelled not sent on the screen. Why it isn't there. No number, and nothing sends by rule. What is needed. Row 7's number. Who. Omar. Cost. Inside the same $10–20/month. How long once unblocked. Half a day.
82 — Every man signing off the safety talk on his own phone, before work
What it is. The 6:45 a.m. text: "1425 17 Ave SW. Toolbox talk: silica. Reply Y to sign off." Y puts his name
and the time on the job's safety record — that is the signature an inspector asks for.
Why it isn't there. Built in the Crew login; not built by text, because there is no number.
Worth remembering: the owner's own test texts failed live on the Fieldflo call — "the link is not valid" (@36:24).
That is why our plan has no link in it at all.
What is needed. Row 7's number and the crew phone list.
Who. Omar buys, the owner sends the numbers. Cost. Inside the same $10–20/month.
How long once unblocked. Inside row 7's 2–3 days.
86 — Each man confirming his hours at the end of the day
What it is. The 4:30 p.m. text: "Hours today: 8.5. Reply Y if right, or reply the number." Why it isn't there. Same as 82 — built in the Crew login, not by text, no number. What is needed. Row 7's number and the crew phone list. Who. Omar buys, the owner sends the numbers. Cost. Inside the same $10–20/month. How long once unblocked. Inside row 7's 2–3 days.
94 — The two labourer texts themselves
What it is. Rows 82 and 86 as one running thing: roster-only, one character back, one re-ask, then the foreman phones him. Why it isn't there. The number. What is needed. The number, the crew list, the owner's yes on the two wordings. Who. Omar, then the owner. Cost. $10–20/month. How long once unblocked. 2–3 days — this is row 7.
3. Needs a decision from Omar or the owner — 6 rows
Nobody is waiting on a file or a dollar here. Somebody has to say yes, no, or which way.
15 — Where each man clocked in from
What it is. GPS on the clock-in, so the office sees the man was at the site. Fieldflo does it: the labourer "gets a text within seconds asking for location. Optional" (@25:57). Why it isn't there. Nobody has decided whether Makki wants to track where its men are. That is an owner's call about his own crews, not a build decision, and the owner never asked for it on the call. What is needed. the owner says yes or no. Who. the owner. Cost. Nothing. How long if he says yes. 1–2 days, and only alongside a texting number or the Crew login. Recommendation. Leave it. He didn't ask, and it is the one feature on this list that can sour a crew.
38 — A CRM: contacts, job walks, reach-outs
What it is. Tracking who you called, which job walks you did, which proposals went out and came back (@5:31). Why it isn't there. Nobody has said we want it. Dan was mid-CRM-pitch when the owner cut across him to ask about QuickBooks (@8:00) — Fieldflo's own line was "By no means are we Salesforce." What is needed. A yes or no from the owner. Who. the owner. Cost. Nothing. How long if he says yes. 3–4 days. Recommendation. No, for now. The Pipeline page (row 20) already carries quotes by stage and win rate, which is the part an owner actually looks at.
51 — The accountant seeing hours and never rates
What it is. Built, gated and working — the bookkeeper's Payroll-hours tab shows hours with no rates and no pay. It is off by default. Why it isn't there. By choice. This was the owner's own unprompted question on the call (@8:14) and the switch is his to flip on Owner › People › Team & Access. Nobody turns on another person's access to payroll but the owner. What is needed. the owner flips one switch. Who. the owner. Cost. Nothing. How long. Ten seconds. Nothing to build.
52 — More than one approver signing off payroll, with a trail
What it is. Fieldflo's chain: "I want all of my PMs to approve their projects," with a trailing history, and the payroll administrator cannot run it until the named approvers have signed (@36:37). Why it isn't there. Single approver is built and records who approved and when. A chain needs a decision nobody has made: who besides the owner is allowed to approve payroll, and in what order. the owner told Dan he has "10 project managers" (@39:47) but never said which of them sign anything. What is needed. the owner names the approvers and the order. Who. the owner. Cost. Nothing. How long once decided. 1–2 days.
98 — A short orientation video for managers
What it is. A walkthrough the owner can send his managers so they can use the app without being taught one at a time. Why it isn't there. Nobody has decided when to record it. The owner asked Fieldflo for one — "Do you guys have like an orientation video for use of the program that we can kind of share with like managers?" (@32:09) — and Fieldflo had none to show him. Nobody has offered him one since. The real question is whether it gets recorded now on demo data and re-recorded later, or once, on his real data. What is needed. Omar says now-on-demo or later-on-real. Who. Omar. Cost. Nothing — screen recording, no equipment. How long once decided. Half a day per login for a short one; two days for all five. Recommendation. Record a short owner-only one now. It is the only thing on this list the owner asked a competitor for and got refused.
100 — A Makki address instead of a pages.dev link
What it is. app.makkiinc.ca or similar, instead of makki-portal-37c739cf.pages.dev.
Why it isn't there. The hosting question is open and it is not ours to answer. Today's link sits on EazyLife's
Cloudflare; this instance has no Cloudflare login at all (MEMORY.md, 2026-09-15 03:00). Whose account holds Makki's
app long-term has not been settled (Solutions_Plan §8.2).
What is needed. The hosting decision — The owner's own Cloudflare account, or EazyLife's — then a domain pointed at it.
Who. Omar and the owner. Cost. A domain is roughly $15–20 a year if Makki does not already own one;
hosting itself is free at this size. Unknown — needs Owner: whether makkiinc.ca is already his and who holds it.
How long once decided. An hour, plus DNS propagation.
4. Just build time — nothing blocking — 14 rows
Nobody is holding these up. They have not been built because other things came first. Every one can start today.
16 — A digest of what needs attention, in the app
What it is. The nightly and weekly summaries as a card on the dashboard, not only as a text. Why it isn't there. The Collector runs nightly and the Ticket Keeper weekly and both work — they just land on this Telegram line, not on a screen. No in-app card was ever built. Needed. Nothing. Who. Us. Cost. Nothing. How long. 4–6 hours.
18 — Count tiles and the last injury form
What it is. Employees / clients / users as three counters, and a "last injury form" widget (@5:31). Why it isn't there. Incidents are on the Safety page; nobody asked for them as dashboard tiles. Needed. Nothing. Who. Us. Cost. Nothing. How long. 2–3 hours.
35 — The emergency contact that lands on every daily by itself
What it is. Fill it in once on the job; it prints on the daily safety meeting every day, automatically (@21:26). Why it isn't there. Nobody built it. It rides on row 61. Needed. Nothing to build it; the real contacts arrive with the owner's crew list. Who. Us. Cost. Nothing. How long. 2–3 hours on top of 61.
56 — Adding a new ticket, or renewing one, from the app
What it is. A form: pick the ticket type, valid from, expiry, the man, a photo of the card. Renew archives the old one. Why it isn't there. The archive half is built and correct — nothing is ever deleted. The add / renew form was simply never built. The owner liked this flow more than anything else in the demo: "I haven't seen anybody else incorporate that into their program" (@18:54). Needed. Nothing. Who. Us. Cost. Nothing. How long. 6–8 hours.
57 — A PDF pack of certificates to send to anyone
What it is. One button: every ticket for a crew or a job, as one PDF, for a general contractor who asks (@17:30). Why it isn't there. Never built. The tickets, the expiries and the archive it would print are all there. Needed. Nothing. Who. Us. Cost. Nothing. How long. 4–6 hours.
59 — Skills beyond tickets, and picking a crew by skill
What it is. Suncor orientation, a school background check — things that are not tickets but decide who can go where. Dispatch filters by them and sees an icon on the job (@15:51). Owner: "Yeah. So they have a nice little picture, certs" (@16:35). Why it isn't there. Never built. Tickets were built first because they block a man from a crew; skills only filter. Needed. Nothing to build it on demo skills. Unknown — needs Owner: which skills Makki actually tracks; those come with the crew list. Who. Us. Cost. Nothing. How long. 6–8 hours.
61 — Emergency contact details on the man
What it is. Name and number of who to call, on the person's record (@14:06). Why it isn't there. Never built. The person's record itself is built (row 58). Needed. Nothing to build; the real details arrive with the crew list. Who. Us. Cost. Nothing. How long. 2 hours.
73 — A loadout list: what a job needs, out of the yard and back
What it is. The PM lists what a job needs; the yard is told, fulfils it, and the stock moves out of inventory onto
the job, cost-coded (@19:01). The owner on the whole inventory flow: "That's great" (@21:20).
Why it isn't there. Never built. The Equipment and Inventory pages it moves stock between are built.
Needed. Nothing to build on demo data; real gear arrives with the owner's equipment list (Solutions_Plan §7.3).
Who. Us. Cost. Nothing. How long. 1–2 days.
74 — A project inventory report: ordered, returned, consumed
What it is. Everything that went to a job and what came back (@19:01). Why it isn't there. It is the report at the end of row 73 and cannot be written before it. Needed. Row 73. Who. Us. Cost. Nothing. How long. 4–6 hours after 73.
75 — Logging an inspection from the scan page, and a maintenance history
What it is. Scan the code on a machine and fill in the inspection there, no login; and every machine keeps its repair history (@19:01). Why it isn't there. The scan page is built and read-only by design. Letting it write was never built. Needed. Nothing. Who. Us. Cost. Nothing. How long. 1 day.
78 — Head starts on the timesheet
What it is. Two buttons: "same as yesterday" and "pull from the schedule", so the foreman is not typing his crew in every morning (@25:57). Why it isn't there. Never built. The timesheet and the schedule it would copy from both exist. Needed. Nothing. Who. Us. Cost. Nothing. How long. 3–4 hours. Best hours-per-benefit on this whole page.
80 — A cost code against each man's hours
What it is. Cost codes sit on the job today, not on the man's line. Fieldflo puts a code on each man, defaulted from his position (@25:57). Why it isn't there. Never built. Without it, labour lands on the job but not on the right code inside it. Needed. Nothing to build. Unknown — needs Owner: Makki's own code names, so ours mirror his. Who. Us. Cost. Nothing. How long. 6–8 hours.
91 — Telling it to change something by text
What it is. Not just asking a number — "bump Crew B to Thursday", "mark 17 Ave complete" — and it changes, and
texts back the one line that changed (Solutions_Plan §2.2).
Why it isn't there. Asking is built (row 90); changing was never built. §2 says it needs nothing new from the owner.
Needed. Nothing from the owner. One decision from Omar: the list of changes it may make without asking first. Anything
that costs money or leaves the building stays drafted-and-handed-over under rail 1, either way.
Who. Us to build, Omar to draw the line. Cost. Nothing. How long. 2–3 days.
97 — A CSV import where there is no integration
What it is. Load people, customers and jobs from a spreadsheet (@12:48). Why it isn't there. The fallback is named on the QuickBooks screen but the importer was never written, because QuickBooks is the real answer and this is the backstop. Needed. Nothing. Who. Us. Cost. Nothing. How long. 1 day. Recommendation. Do it only if QuickBooks (row 48) stalls.
5. Deliberately not wanted, or deliberately dropped — 2 rows
37 — Takeoff and estimating off uploaded drawings
What it is. Upload the drawings, the software measures and prices, the bid items drop into the proposal (@33:12, @34:47).
Why it isn't there. the owner was cool on it — the only cool reaction in 43 minutes: "I don't know if that's something
our team would be interested in. I know our estimators aren't fans, but it'd be cool to see" (@34:36).
Dan dropped it himself: "we can talk about that another day."
Status. Dropped on the owner's own words. The deck already says "You write the quote" and does not pitch automatic
estimating (Fieldflo_Video_Workflows recommendation 7).
If the owner ever changes his mind. Weeks, not days, and it is a different kind of product. Ask again before starting.
60 — Training pushed to a man's phone, in his language, signed with a PIN
What it is. Two things stuck together. (a) The delivery: push a training to a man's phone, he enters his PIN and takes it in his language (@14:06). Owner: "Perfect" (@15:24). (b) The content: Fieldflo's optional library of "over 600 videos from Got Safety," about $4 an employee per month, producing a branded certificate that then tracks like any other cert (@15:31). Why it isn't there. Part (b) is not ours. It is a third party's video library sold through Fieldflo; we do not own it, cannot resell it, and will not pretend to. Part (a) has never been asked for on its own. Status. The video library is dropped — not ours to sell. The delivery half stays available if the owner wants to push his own material; on 80 employees the Fieldflo route would be roughly $320/month, and that is their price, not ours. What it would need. the owner's own training material, and row 7's texting number to deliver it. How long if he asks. 3–4 days for the delivery half, on top of row 7.
The one page
Where the 39 sit
| Blocker | Rows | How many |
|---|---|---|
| 1. Needs something from the owner | 21, 26, 33, 36, 47, 48, 65, 66, 67, 68, 96 | 11 |
| 2. Needs money spent | 7, 17, 42, 82, 86, 94 | 6 |
| 3. Needs a decision | 15, 38, 51, 52, 98, 100 | 6 |
| 4. Just build time | 16, 18, 35, 56, 57, 59, 61, 73, 74, 75, 78, 80, 91, 97 | 14 |
| 5. Dropped on purpose | 37, 60 | 2 |
| 39 |
Plus row 19, closed: one company, not a gap.
Read it this way: 23 of the 39 are not waiting on us at all. Eleven wait on the owner handing something over, six on one purchase, six on somebody saying yes or no. Fourteen are ours to build and nothing is stopping them. Two are gone.
What the money actually is
| What | Cost | Who decides |
|---|---|---|
| One Canadian texting number (Twilio), crew of 20 | $10–20 / month — about $120–240 a year | Omar |
| A Makki domain, if Makki does not already own one | $15–20 / year | The owner |
| Hosting | free at this size | — |
| QuickBooks connection | nothing extra — runs on his existing plan | — |
| Everything else on all 39 rows | build time, inside the agreed $3,000/month | — |
Total new money to clear every money blocker on this list: about $15–25 a month — call it $150–260 in the first year. Six of the 39 rows unlock for that.
One number that is not ours and is worth keeping in view: Fieldflo quoted the owner "around like 15,000 for the year… with a QuickBooks integration" (@40:27), on "just under 15" users (@40:22), and their training video library is a further ~$4 per employee per month on top (@15:31).
The shortest path that unblocks the most
One sitting with the owner, fifteen to thirty minutes, unblocks 11 rows. He brings:
- His QuickBooks login, at his own screen — clears 48, and 96, 47 fall out behind it.
- His crew list with phone numbers — needed for 7/82/86/94 below, and it fills in 59, 61, 80 with real names.
- His four forms: the containment log, the waste manifest, whatever goes to an adjuster, and his OHS documents — clears 67, 68, 33, 36, 65, and 66 behind them.
- A handful of past quotes — clears 21 and starts the Estimator.
- A couple of real permits — clears 26.
One purchase, about $15 a month, unblocks 6 more. Omar says go on the texting number; rows 7, 82, 86, 94, 42, 17 all run off that single line.
Four questions answered on the spot clear 4 more. Does the owner want GPS on clock-in (15)? Does he want a CRM (38)? Who else signs payroll (52)? Whose Cloudflare, and does he own a domain (100)? A fifth, 51, is the owner flipping one switch himself — ten seconds, nothing to build.
That is 21 of the 39 cleared by one meeting, one purchase and five answers. The remaining 14 are ours and need no permission — of those, 78 (timesheet head starts, 3–4 hours), 57 (the PDF cert pack, 4–6 hours) and 56 (add / renew a ticket, 6–8 hours) are the cheapest hours against things the owner reacted to out loud on the call.
All app data is demo data until Omar says otherwise. Nothing in the app sends anything to anyone. Written by the Makki Hive build seat, 2026-09-16.