vault backup: 2026-01-11 12:50:45
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
---
|
||||
id:
|
||||
aliases: []
|
||||
title: 2026-01-11
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/daily
|
||||
---
|
||||
# 2026-01-11
|
||||
|
||||
## 2026-01-11 09:00
|
||||
|
||||
[[2026-01-09#2026-01-09 14:45]]
|
||||
|
||||
[[bid-price-modeling]]
|
||||
|
||||
[[decrease-in-sigma]]
|
||||
|
||||
## 2026-01-11 11:00
|
||||
|
||||
![[favorite-quotes#"It Takes an Engineer to Build a Bridge that Barely Stands"]]
|
||||
|
||||
The value that estimators provide for a contractor
|
||||
is in modeling project cost.
|
||||
If the goal were simply to present a number the cost will not exceed,
|
||||
than anyone could be an estimator.
|
||||
If the goal were only to present a reasonably accurate figure,
|
||||
with no other constraints,
|
||||
then there are few who in the world who couldn't,
|
||||
given infinite time for a single bid.
|
||||
The _true_ value of an estimator, then,
|
||||
is in their ability to model project cost _efficiently_, that is,
|
||||
to achieve acceptable accuracy and precision as quickly as possible,---
|
||||
much as the engineer's is in building a bridge that _meets_ the requirements
|
||||
as cheaply as possible.
|
||||
|
||||
Estimating "as accurately as possible"
|
||||
is akin to building a bridge "as strong as possible";
|
||||
it sounds nice, but ignores the actual objective of _optimal cost-efficiency_.
|
||||
|
||||
I think that most estimators believe this to be the case,
|
||||
but, whatever they believe in mind, they believe in practice
|
||||
that the goal is to model cost as accurately and precisely as possible,
|
||||
_given the time allowed for bid_.
|
||||
Estimates tend always to take exactly as many weeks as until the bid due date,
|
||||
even those of significantly different turnaround but equal scope and complexity.
|
||||
This behavior is objectionable,
|
||||
since if an acceptable estimate _could_ be provided in two weeks,
|
||||
it is not cost-effective[^1] to allow it to take four.[^2]
|
||||
|
||||
[^1]: "Cost" referring both to estimator salaries and the opportunity cost of declined bids.
|
||||
|
||||
[^2]: Supposing a contractor maintained a modern portfolio theory styled record
|
||||
of estimates including pending bids, and projects ongoing and completed,
|
||||
with confidence estimates uncorrupted by [[estimating-culture#Incentives|perverse incentives]],
|
||||
they may have reasonable basis to set sliding standards for estimate precision
|
||||
to be specifically determined at consideration of the opportunity for bid
|
||||
according to current climate (i.e. their risk appetite).
|
||||
I believe my use of the absolute is still fair.
|
||||
No contractor is doing that, so they lack a competent measure of risk tolerance
|
||||
besides continuing to tolerate what they have historically.
|
||||
|
||||
Objectionable as it is,
|
||||
it is to be expected that estimators will use all time allowed them
|
||||
when the standards for _acceptability_ are inadequately defined.
|
||||
@@ -23,4 +23,4 @@ In this way, projects are better compared to _insurance accounts_.
|
||||
* cost of individual service is uncertain
|
||||
* cost to customer must be minimized
|
||||
|
||||
![[decrease-in-sigma#^pdf]]
|
||||
![[decrease-in-sigma#Normal PDF]]
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
id: risk-oriented-estimating
|
||||
id:
|
||||
aliases: []
|
||||
title: Bid Process Strategy
|
||||
tags:
|
||||
|
||||
@@ -17,6 +17,10 @@ are currently disparate, disjointed, and redundant.
|
||||
|
||||
## TODO
|
||||
|
||||
### Supertopic: Risk-Oriented Estimating
|
||||
|
||||
Still deciding if I'm capable of being opinionated without rambling.
|
||||
|
||||
### Legitimate Subtopics
|
||||
|
||||
* [[estimating-methodologies]]
|
||||
@@ -40,7 +44,7 @@ Create and use cross-topic notes for complex thoughts:
|
||||
* [[bid-process-strategy]]
|
||||
|
||||
* [[game-theory-for-construction-estimating]]
|
||||
* [[estimating-culture]]: estimator incentives
|
||||
* [[estimating-culture#Incentives]]
|
||||
|
||||
* [[project-management-for-construction-estimating]]
|
||||
* [[separating-estimating-concerns]]
|
||||
|
||||
@@ -40,6 +40,7 @@ For philosophy see [[bid-process-strategy]]
|
||||
* [[auction-theory-for-construction-estimating]]
|
||||
* [[game-theory-for-construction-estimating]]
|
||||
* [[project-management-for-construction-estimating]]
|
||||
* [[utility-in-construction-estimating]]
|
||||
* [[ambiguity-in-construction-estimating]]
|
||||
* [[nontraditional-computing-for-construction-estimating]]
|
||||
* [[object-oriented-programing-for-construction-estimating]]
|
||||
|
||||
+56
-45
@@ -11,6 +11,8 @@ tags:
|
||||
---
|
||||
# Decrease in Sigma
|
||||
|
||||
## Normal PDF
|
||||
|
||||
```tikz
|
||||
\usepackage{pgfplots}
|
||||
\pgfplotsset{compat=1.16}
|
||||
@@ -47,53 +49,62 @@ tags:
|
||||
\end{document}
|
||||
```
|
||||
|
||||
^pdf
|
||||
## Lognormal PDF
|
||||
|
||||
```tikz
|
||||
\usepackage{pgfplots}
|
||||
\pgfplotsset{compat=1.16}
|
||||
![[lognormal-pdf.gif]]
|
||||
|
||||
\pgfmathdeclarefunction{erfapprox}{1}{%
|
||||
\pgfmathparse{%
|
||||
% save sign and work with |x|
|
||||
( (#1<0) ? -1 : 1 )
|
||||
* ( 1 - (1 + 0.278393*abs(#1) + 0.230389*abs(#1)^2 + 0.000972*abs(#1)^3 + 0.078108*abs(#1)^4)^(-4) )
|
||||
}%
|
||||
}
|
||||
%%
|
||||
```python
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from scipy.stats import lognorm
|
||||
import imageio.v2 as imageio
|
||||
import os
|
||||
|
||||
% Normal CDF using erf approximation:
|
||||
% F(x;mu,sigma) = 0.5*(1 + erf((x-mu)/(sigma*sqrt(2))))
|
||||
\pgfmathdeclarefunction{normcdf}{3}{%
|
||||
\pgfmathparse{ 0.5*(1 + erfapprox((#1-#2)/(#3*sqrt(2)))) }%
|
||||
}
|
||||
mean_target = 10.0
|
||||
sigmas = np.linspace(1.0, 0.1, 25)
|
||||
x = np.linspace(0.001, 40, 2000)
|
||||
|
||||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=13cm,
|
||||
height=7cm,
|
||||
axis lines=middle,
|
||||
xlabel={$x$},
|
||||
ylabel={$F(x;\mu,\sigma)$},
|
||||
xmin=-6, xmax=6,
|
||||
ymin=0, ymax=1.05,
|
||||
samples=400,
|
||||
domain=-6:6,
|
||||
legend style={draw=none, fill=none, at={(0.02,0.98)}, anchor=north west},
|
||||
legend cell align=left,
|
||||
ytick={0,0.5,1},
|
||||
]
|
||||
|
||||
% Normal CDF: 0.5*(1 + erf((x-mu)/(sigma*sqrt(2))))
|
||||
\addplot[thick]
|
||||
{ normcdf(x,0,1.8) };
|
||||
\addlegendentry{$\mu=0,\ \sigma=1.8$}
|
||||
|
||||
\addplot[thick, dashed]
|
||||
{ normcdf(x,0.8) };
|
||||
\addlegendentry{$\mu=0,\ \sigma=0.8$}
|
||||
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\end{document}
|
||||
# Precompute global y-limit
|
||||
pdf_max = 0.0
|
||||
for sigma in sigmas:
|
||||
mu = np.log(mean_target) - 0.5 * sigma**2
|
||||
pdf = lognorm.pdf(x, s=sigma, scale=np.exp(mu))
|
||||
pdf_max = max(pdf_max, pdf.max())
|
||||
|
||||
frames = []
|
||||
tmp_dir = "frames"
|
||||
os.makedirs(tmp_dir, exist_ok=True)
|
||||
|
||||
for i, sigma in enumerate(sigmas):
|
||||
mu = np.log(mean_target) - 0.5 * sigma**2
|
||||
pdf = lognorm.pdf(x, s=sigma, scale=np.exp(mu))
|
||||
|
||||
plt.figure(figsize=(6, 4))
|
||||
plt.plot(x, pdf)
|
||||
plt.axvline(mean_target, linestyle="--", linewidth=1)
|
||||
plt.text(
|
||||
mean_target, pdf_max * 0.95,
|
||||
"mean",
|
||||
rotation=90,
|
||||
verticalalignment="top",
|
||||
horizontalalignment="right"
|
||||
)
|
||||
|
||||
plt.title(f"Lognormal PDF\nmean = {mean_target}, sigma = {sigma:f}")
|
||||
plt.xlabel("x")
|
||||
plt.ylabel("density")
|
||||
plt.ylim(0, pdf_max * 1.05)
|
||||
plt.tight_layout()
|
||||
|
||||
frame_path = f"{tmp_dir}/frame_{i:02d}.png"
|
||||
plt.savefig(frame_path, dpi=120)
|
||||
plt.close()
|
||||
|
||||
frames.append(imageio.imread(frame_path))
|
||||
|
||||
os.makedirs("out", exist_ok=True)
|
||||
gif_path = "out/lognormal-pdf.gif"
|
||||
imageio.mimsave(gif_path, frames, duration=0.15)
|
||||
```
|
||||
%%
|
||||
@@ -34,6 +34,29 @@ tags:
|
||||
|
||||
## About Process Optimization
|
||||
|
||||
### "It Takes an Engineer to Build a Bridge that Barely Stands"
|
||||
|
||||
> [!quote] Unknown
|
||||
> Any idiot can build a bridge that stands.
|
||||
> It takes an engineer to build a bridge that barely stands.
|
||||
|
||||
The phrase "exceeds specifications"
|
||||
ought not be universally perceived as positive when divorced from context like it is.
|
||||
|
||||
It is often the case that exceeding minimum requirements is easy,
|
||||
and that the difficulty (the kind that you pay people to handle)
|
||||
is in meeting them precisely.
|
||||
|
||||
In the case of civil infrastructure,
|
||||
it is intuitive that even though a 10% safety factor is _good_,
|
||||
a 100% safety factor is not _better_.
|
||||
It is _so_ intuitive that the choice of "_barely_ stands",
|
||||
I don't think would give many pause or reservation.
|
||||
|
||||
However, divorced from context,
|
||||
people are biased to believe that more of a good thing must be better,
|
||||
especially when what's compromised isn't as tangible as dollars on an invoice.
|
||||
|
||||
### "Sharpen the Axe"
|
||||
|
||||
Frequently misattributed to Abraham Lincoln is some variation of:
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 133 KiB |
@@ -9,6 +9,15 @@ tags:
|
||||
---
|
||||
# Music Theory as Code
|
||||
|
||||
%%
|
||||
## TALK
|
||||
|
||||
For now a scratchpad for implementation,
|
||||
ultimately to discuss the difficulty
|
||||
and why every extant library
|
||||
seems to have wildly different ergonomics and terminology
|
||||
%%
|
||||
|
||||
PowerShell module to assist in translating between banjo fingerings and concert notes,
|
||||
as well as between [[lilypond]] and conventional notation.
|
||||
|
||||
|
||||
@@ -12,3 +12,10 @@ tags:
|
||||
# Music Theory for Banjo
|
||||
|
||||
Cross-topic of [[music-theory]] and [[banjo]].
|
||||
|
||||
%%
|
||||
## TALK
|
||||
|
||||
practical application of music theory concepts for playing banjo
|
||||
including vocal accompaniment.
|
||||
%%
|
||||
|
||||
@@ -10,4 +10,25 @@ tags:
|
||||
---
|
||||
# Nontraditional Computing
|
||||
|
||||
**Nontraditional computing** refers to UX patterns
|
||||
**Nontraditional computing** refers to UX patterns
|
||||
unlike those originally pioneered by Xerox and IBM,
|
||||
and cemented by Apple and Microsoft.
|
||||
|
||||
Desktops, hierarchical filesystems,
|
||||
obligatory mouse and keyboard
|
||||
|
||||
Perhaps more accurate is **nontraditional _business_ computing**,
|
||||
since the real innovation is making mobile device patterns practical.
|
||||
|
||||
Designers frequently malign traditional computing,
|
||||
stating accurately that it was a compromise
|
||||
for restrictions that we no longer face,
|
||||
but there is very little movement
|
||||
on practical implementation of nontraditional patterns.
|
||||
[Ink & Switch](https://www.inkandswitch.com/)
|
||||
is at the forefront as I understand it,
|
||||
however they have as much effort or more
|
||||
invested in traditional systems.
|
||||
|
||||
[Liber Indigo](https://www.justinckirkwood.net/liber-indigo)
|
||||
is mostly woo-woo, but has some fun things to say about NTC.
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
---
|
||||
id:
|
||||
aliases: []
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/fleeting
|
||||
- status/incomplete
|
||||
- topic/estimating
|
||||
- topic/software
|
||||
- type/idea
|
||||
title: Optimal Estimating Patterns
|
||||
---
|
||||
# Optimal Estimating Patterns
|
||||
|
||||
[[construction-estimating-software]] consistently fails to innovate
|
||||
on the stale patterns developed for marginally similar applications decades ago.
|
||||
|
||||
## More Optimal Patterns
|
||||
|
||||
> [!note]
|
||||
> Note that while the patterns described below
|
||||
> _are_ more optimal than those of traditional applications,
|
||||
> the bigger problem with such applications
|
||||
> is their suboptimal implementation of their patterns.
|
||||
> If you could just do what they're trying to do correctly,
|
||||
> you probably wouldn't need all these optimizations anyway.
|
||||
|
||||
%% TODO:
|
||||
|
||||
Count-based takeoff speed increases with count.
|
||||
|
||||
Optimizing the takeoff process means:
|
||||
|
||||
* _Minimizing_ the need for information outside of drawings
|
||||
* _Maximizing_ organizational consistency
|
||||
|
||||
%%
|
||||
@@ -15,15 +15,31 @@ tags:
|
||||
|
||||
Cross-topic of [[risk-management]] and [[construction-estimating]].
|
||||
|
||||
## Estimating as Risk Mitigation
|
||||
%%
|
||||
## TALK
|
||||
|
||||
* reduce risk of wasted estimation effort due to bid loss
|
||||
(prefer lower bid)
|
||||
* reduce risk of project overrun
|
||||
(prefer higher bid)
|
||||
|
||||
%%
|
||||
|
||||
## Bid Risk
|
||||
|
||||
**Bid risk** is not only risk of project overrun given award,
|
||||
but also includes the risk of wasted estimation effort due to bid loss,
|
||||
and the opportunity cost of excluding other opportunities.
|
||||
|
||||
## Estimating as Risk Mitigation
|
||||
|
||||
Estimating resources should be allocated
|
||||
according to Return on Mitigation (RoM),
|
||||
that is, their contribution to _cost certainty_.
|
||||
|
||||
$\text{Efficiency} = -1 \times \frac{d\sigma}{dt}$
|
||||
|
||||
But the RoM of estimating effort has a steep drop off,
|
||||
and cost will obviously never be entirely certain.
|
||||
|
||||
It is not foolhardy to tolerate imprecision in an estimate
|
||||
when the effort to increase precision
|
||||
will not decrease bid risk at least equivalently
|
||||
|
||||
(stigmatizing "assumptions")
|
||||
@@ -18,6 +18,8 @@ They are a group of topics that,
|
||||
while they may seem disparate in a vacuum,
|
||||
are all fundamental to a greater understanding of the whole.
|
||||
|
||||
|
||||
|
||||
%%
|
||||
|
||||
## TALK
|
||||
|
||||
@@ -51,19 +51,3 @@ Suppose the estimator is prescient and has observed the final cost of the projec
|
||||
as reported in the winning contractor's historicals.
|
||||
|
||||
%%
|
||||
|
||||
## Expected Value of Perfect Information
|
||||
|
||||
[[uncertainty#Expected Value of Perfect Information]]
|
||||
|
||||
%%
|
||||
|
||||
an organization pays in estimator hours.
|
||||
These hours have a direct cost in salary and benefits,
|
||||
however the greater cost is the **opportunity cost**
|
||||
of tying up an estimator who could otherwise be starting a new project.
|
||||
|
||||
In many cases, the [[utility]] of doubled throughput
|
||||
far outweighs the increased risk of individual bids.
|
||||
|
||||
%%
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id:
|
||||
aliases: []
|
||||
title:
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/incomplete
|
||||
- topic/estimating
|
||||
- topic/risk
|
||||
- type/cross-topic
|
||||
---
|
||||
# Utility in Construction Estimating
|
||||
|
||||
Cross-topic of [[utility]] and [[construction-estimating]].
|
||||
|
||||
## Expected Value of Perfect Information
|
||||
|
||||
[[uncertainty#Expected Value of Perfect Information]]
|
||||
|
||||
%%
|
||||
|
||||
an organization pays in estimator hours.
|
||||
These hours have a direct cost in salary and benefits,
|
||||
however the greater cost is the **opportunity cost**
|
||||
of tying up an estimator who could otherwise be starting a new project.
|
||||
|
||||
In many cases, the [[utility]] of doubled throughput
|
||||
far outweighs the increased risk of individual bids.
|
||||
|
||||
%%
|
||||
@@ -14,3 +14,7 @@ tags:
|
||||
[Utility](https://en.wikipedia.org/wiki/Utility)
|
||||
is a measure of a party's satisfaction
|
||||
with a certain state of the world.
|
||||
|
||||
The measure is intended to account for unintuitive quirks of human perception of value.
|
||||
A rich man is not as satisfied with receiving one dollar as a poor man,
|
||||
therefore the utility of the dollar is contextual, not objective.
|
||||
|
||||
Reference in New Issue
Block a user