Smart Quoting
GlyphFex suggests an estimated time, labor rate, and quote price for new jobs based on the tags you pick — using your own past jobs as the data source.
What Smart Quoting Does
The numbers come from your own job history — not an industry benchmark, not a cloud AI model, not anyone else’s shop data. Everything runs locally on your machine, against your own project file. No data leaves your network.
When you create a new entry and pick tags (Material, Process, Priority, etc.), Smart Quoting looks at every past entry in your project with similar tags, weights them by how recent they are and how close in quantity, and shows you a suggestion chip just below the Key Fields section on the Entry page.
A typical chip looks like this:
If you have zero similar jobs in your project yet, the chip is empty; once you complete a handful with actual_hours filled in, it starts learning.
How It Works
The estimator runs locally in the app every time your tag selection changes (debounced 300 ms so it isn’t fighting your typing):
- Find candidates. Every past entry in the same project (across all pipelines) is scored by tag overlap (technically: Jaccard similarity, if you care). Two jobs sharing 4 of 5 tags score 0.8; jobs with no overlap score 0.
- Weight by recency. Recent jobs count more. The math is an exponential decay with a 180-day time constant — in practical terms, a job from 6 months ago counts at about 37% of a job from today, and a job from a year ago counts at about 14%.
- Weight by quantity closeness. If the new job is for 50 pieces, a past job of 48 pieces scores higher than one of 5 pieces.
- Customer boost. If the new job has the same customer name as a past one, that past one gets a 2× multiplier — you tend to repeat work for the same customers in similar ways.
- The typical-plus-range answer. From the top matches (typically 5–15), the estimator picks the typical hours (the weighted median of
actual_hours) and a realistic low/high range (the weighted 25th and 75th percentiles).
Hours, suggested labor rate, and suggested price all come out of the same matching run. Hours always come from actual_hours on past completed jobs — never estimated_hours — so the estimator only learns from reality, not from your own past guesses.
The Honesty Band: when Smart Quoting tells you it’s unsure
If Smart Quoting has ≥10 close matches and the spread between P25 and P75 is narrow, the chip uses neutral wording:
Similar jobs: ~38–42 hrs · ~$3,200 · based on 12 matches
If it has fewer than 10 matches, or if the spread is wide, it switches to acknowledged-uncertainty wording:
Best guess (low data): ~38–42 hrs · only 6 matches — adjust as you learn
This is the Honesty Band. It exists because pretending to be confident about a 5-job sample is worse than admitting you’re still learning. We follow the Zillow pattern: show the data, never hide thinness, never prescribe. The chip won’t tell you to “drop your price” or “raise your hours” — that’s your call.
The Comparables Popover
Click View comparables on the chip to open the Comparables dialog, which lists the top 7 matched past jobs:
- Match percentage (the Jaccard score, displayed as a percentage)
- Actual hours on the past job
- Tag chips for the past job — matching tags highlighted, non-matching tags dimmed
- Customer name, due date, and Job Number
This is the “show your work” layer. If the suggestion looks wrong, the comparables let you see which past jobs the estimator is leaning on and decide whether they’re actually similar. Click any row to open that past entry in a detail window.
One-click Accept & Deviation Warning
The chip includes an Accept button (the “Use 40” button in the screenshot above) that writes the median straight into the estimated_hours field. The labor rate and price suggestions write into labor_rate and estimated_value the same way.
If you manually type an Est. Hours value that’s more than 30% below the suggested median, GlyphFex shows an inline InfoBar warning — not blocking, just flagging. The reasoning: a big undershoot might be deliberate (you negotiated a different scope), but it might also be a typo or a missed step.
Tag-Driven Auto-Pricing
Smart Quoting can also drive price directly from the tags, separately from the hours-from-history estimator above. This is the “Excel on the side” replacement — you put your labor rates and material costs into GlyphFex once, and every new entry auto-suggests a price.
Three-level labor-rate fallback
When you mark a category as a Pricing Category (in Categories & Tags → the category editor), each tag in that category can carry a labor rate. For a new entry with multiple tags:
- Tag rate — If the selected tag has a labor rate, use it
- Category default rate — Otherwise, use the category’s default labor rate
- Shop labor rate — Otherwise, fall back to Settings Hub → Quoting → Shop Labor Rate
When multiple tags from different pricing categories are selected, the MAX rule applies: the highest tag-specific rate wins. This matches how most shops actually charge — if a job touches your high-skill TIG welder, the whole job bills at the TIG rate, not an average.
Material costs per tag
Tags in a Pricing Category can also carry material costs (cost per unit, unit name like “sq ft” or “lb”, and an optional markup percentage). When you pick those tags, GlyphFex sums the material costs and writes the result into estimated_material_cost.
The Auto-Fill formula on the Entry page is:
estimated_value = hours × labor rate + Σ (material cost × (1 + markup))
As you type into estimated_hours or labor_rate, the suggested estimated_value updates live as ghost text. Click the ghost-text value to accept it; type your own to override it.
Settings & Configuration
- Master toggle: Settings Hub → Categories & Tags → Time Multipliers tab → Enable Smart Quoting. Defaults to on.
- Shop Labor Rate: Settings Hub → Quoting → Shop Labor Rate. Used as the universal fallback when no tag rate or category rate is configured. Set to 0 to disable price suggestions entirely.
- Per-tag labor rates and material costs: Edited in the Categories & Tags editor under the Time Multipliers tab for each tag in a Pricing Category.
- Cross-pipeline matching: Smart Quoting searches across all pipelines in your project. If you keep separate Quote and Production pipelines, jobs from both can suggest hours for a new quote.
Risk Flag Chips
Below the main suggestion chip, GlyphFex may show one or more risk flag chips for known patterns that have historically led to overrun:
- New customer + Rush priority — a customer with no completed jobs at this shop combined with a tight deadline
- Large quantity + tight deadline — a job size and SLA that exceeds your stage’s typical throughput
- Wide P25/P75 spread — even after weighting, your past jobs disagree by a lot
Each chip is informational only. No auto-corrections are applied to the estimate — the chip just makes the pattern visible so you can adjust manually if you think it applies.
Closing the loop: Quote Accuracy
The Analytics page has a Quote Accuracy section that measures how well your estimates have been holding up over time — per tag, per customer, and as a monthly trend.
This is the audit on Smart Quoting: it suggests, Quote Accuracy measures. If a particular tag is consistently underestimated by 20%, the per-tag overrun slice will surface it, and you can adjust your base_hours in the Time Multipliers tab. The estimator picks up the change on the next entry.
Common questions
Does Smart Quoting send any data anywhere?
No. The k-NN matcher runs entirely on your machine, against your own project file. No cloud, no API, no telemetry. Your past jobs never leave your shop’s network.
I have zero completed jobs — what happens?
The chip stays empty for hours estimation, but the tag-driven auto-pricing still works (it doesn’t need historical data — just configured rates and material costs). As you complete jobs with actual_hours filled in, the hours estimator starts producing suggestions.
How many similar jobs before I should trust the suggestion?
The Honesty Band uses 10 matches as the threshold for “reasonable confidence”. Below that, treat the suggestion as a starting point, not an answer. Above that, the suggestion is usually within ±10% of what the job actually ends up taking — but always sanity-check against the comparables.
Can I see the math?
Click the View comparables button on the chip. The dialog shows you exactly which past jobs the estimator weighted heaviest, and you can open each one to inspect its tags, hours, and outcome.
Why is my suggested rate higher than my hourly?
Because of the MAX rule — if any tag in the selection has a higher labor rate (e.g., the TIG welding tag bills at $95/hr), the entire job bills at that rate. To change this, edit the tag’s rate in Categories & Tags → Time Multipliers, or lower the category’s default rate.
Can I disable it?
Yes. Settings Hub → Categories & Tags → Time Multipliers tab → uncheck Enable Smart Quoting. The chip disappears; the entry form behaves like it did before. Auto-pricing has a separate kill switch — set Shop Labor Rate to 0 in Settings Hub → Quoting.