PageSourceSearch

https://www.aivin.ai/site/versus2.485f4e0cf2.js

js aivin.ai collected 2026-10-05 13:39:38 UTC 14,979 bytes, 288 lines download raw bytes

1(function(){
2const {
3  W: NW,
4  Eyebrow: NEb,
5  H2: NH2,
6  Sec: NSec,
7  SBtn: NBtn,
8  Lk: NLk,
9  routeHref: NHref,
10  track: NTrack
11} = window;
12const VERSUS = {
13  vinius: {
14    name: 'Vinius',
15    kind: 'Wine operating system for hospitality and collectors',
16    h1: 'Vinius and Aivin overlap on the record. They diverge on what the record is for.',
17    lede: 'Vinius publishes itself as a wine operating system: lot-based inventory, a pricing engine, live wine cards, supplier reordering and governed AI, for restaurants, hospitality groups, sommeliers and collectors. That is a genuine overlap with Aivin\u2019s Record, and in two places Vinius does things Aivin does not do at all. The difference is what each system does with the record once it exists.',
18    theirs: ['Lot-based inventory, with every movement and pour recorded as it happens', 'A pricing engine that applies markup, rounding and tax across the list and shows the margin behind each price', 'Wine cards generated from live inventory, for print or tablet', 'Supplier reordering', 'Organization defaults with site-level overrides, for groups running several properties'],
19    gap: ['In the product information reviewed we did not find a per-lot valuation working \u2014 the named adjustments, their multipliers and the order they apply in', 'We did not find a published evidence grade on a market reference, and no stated threshold below which a figure will not be certified', 'We did not find a published effective-dated snapshot that reproduces a valuation as at a date rather than recomputing it today', 'We did not find a published reconciliation between two valuations that attributes the difference to depletion, market movement, condition edits and additions', 'We did not find published material about an appraiser of record, or a signing permission a credentialed appraiser holds alone'],
20    ours: 'Aivin\u2019s difference is not a longer feature list \u2014 it is that every figure opens its working, and that Aivin will not mark a cellar appraiser-review ready when the evidence is too thin. Six bases of value per lot with each adjustment named, an evidence grade on every market reference, snapshots that reproduce, a reconciliation bridge between two valuations, and a document only a credentialed appraiser can sign. On the service side, coverage before pairing: what tonight\u2019s bins cannot cover at your cover count, stated before anyone starts.',
21    buyThat: 'If your problem is pricing the list, publishing wine cards and reordering from suppliers, Vinius does those and Aivin does not. Aivin has no pricing engine and no ordering, and it is not going to grow one.',
22    together: 'Aivin\u2019s prices are published on the pricing page. Vinius does not publish its pricing publicly, so we are not going to put a number against it here.'
23  },
24  binwise: {
25    name: 'BinWise',
26    kind: 'Beverage inventory platform',
27    h1: 'Aivin and BinWise do different jobs. Most houses that run one should keep running it.',
28    lede: 'BinWise counts bottles and manages purchasing. Aivin values the cellar and answers what can be poured tonight. They read the same wine and answer different questions, which is why Aivin imports from BinWise rather than replacing it.',
29    theirs: ['Bin locations and physical counts, maintained properly', 'Par levels, purchase orders and receiving', 'Reconciliation against the point of sale', 'Cost of goods and variance reporting', 'A mature product with a real support organization'],
30    gap: ['We did not find a published market-reference or per-lot valuation capability in the product information reviewed', 'We did not find a published evidence-grading capability in the product information reviewed', 'We did not find a published house-defined service-window capability in the product information reviewed', 'We did not find a published provenance-chain capability in the product information reviewed. Aivin’s own working method values a documented chain at up to 12% of adjusted market', 'We did not find a published service-coverage answer in the product information reviewed'],
31    ours: 'Where a connection is implemented, Aivin can read the relevant bin locations and counts while leaving the inventory system in place. Current availability is stated on the status page. What it adds is the valuation layer and the service layer: six bases of value with the working on every lot, and coverage before service at tonight\u2019s cover count.',
32    buyThat: 'If what you need is ordering, receiving, par levels and variance, buy BinWise and do not buy Aivin. Aivin is not an inventory system and will not become one.',
33    together: '$125 to $295 a month per property on top of what BinWise costs, depending on whether you take the service layer or only the monitoring.'
34  },
35  backbar: {
36    name: 'Backbar',
37    kind: 'Beverage inventory and ordering',
38    h1: 'Backbar runs the bar. Aivin values the cellar.',
39    lede: 'Backbar is built for beverage programs at volume — ordering, counting, costing across a whole bar. Aivin is built for the fine-dining cellar specifically: what the wine is worth on six bases, and whether tonight’s menu can be poured from it.',
40    theirs: ['Ordering and receiving across the full beverage program', 'Counting workflows designed for speed', 'Cost and margin reporting per item', 'Accessible pricing for a single room'],
41    gap: ['Beverage-wide rather than cellar-specific, so wine-only concepts are thin', 'We did not find published basis-of-value, comparable-sale or evidence-grading capabilities in the product information reviewed', 'We did not find a published appraisal output for an insurer, an executor or a bank in the product information reviewed', 'We did not find a published pairing or service-coverage layer in the product information reviewed'],
42    ours: 'Aivin reads lots, bins, counts and costs from Backbar. It adds what a beverage system has no reason to carry: a market reference per lot, six bases of value, an appraisal document, and the coverage answer before service.',
43    buyThat: 'If your problem is the whole beverage program rather than the cellar, and nobody has asked you what the wine is worth, Backbar is the better purchase and Aivin is premature.',
44    together: 'The same $125 to $295 a month per property, alongside Backbar.'
45  },
46  appraisal: {
47    name: 'an appraisal firm',
48    kind: 'Credentialed personal-property appraisers',
49    h1: 'Aivin does not replace an appraiser. It removes the fortnight of work underneath the opinion.',
50    lede: 'An appraisal is a professional judgment and no software substitutes for one — including this one. What a firm currently spends two to 
50six weeks doing is building the schedule: the references, the multipliers, the comparables by venue and date. Aivin assembles that, so the appraiser arrives at the judgment with the evidence already built.',
51    theirs: ['A signed, defensible opinion of value that carries professional liability', 'Judgment on condition, authenticity and market that no system replicates', 'Standing with insurers, executors, banks and courts', 'Experience of what survives a challenge'],
52    gap: ['Traditional engagements may require significant schedule-building before professional judgment begins', 'Reproducing last year’s figure depends on whether the firm kept the file', 'Two to six weeks of turnaround, and $2,500 to $6,000 (illustrative) per engagement', 'No continuous view between engagements — the cellar is measured when someone commissions it'],
53    ours: 'Aivin produces the schedule, the comparables and the derivation in signature-ready form, and takes an effective-dated snapshot so the figure reproduces exactly next year. The signature stays the appraiser’s — yours if you have one, or one we introduce. Unsigned, every document states on its own face that it is appraisal support rather than a certified appraisal.',
54    buyThat: 'If you need a signed appraisal this month and nobody is available to review Aivin’s output, engage a firm directly. That is the faster path and we will say so on a call.',
55    together: 'From $750 for the document, $375 to re-certify against a new effective date, plus whatever your appraiser charges to review and sign.'
56  }
57};
58function Versus2({
59  id,
60  go
61}) {
62  const v = VERSUS[id];
63  if (!v) return null;
64  return React.createElement("div", null, React.createElement("div", {
65    style: {
66      background: 'var(--gradient-hero)'
67    }
68  }, React.createElement(window.SiteNav, {
69    route: 'vs-' + id,
70    go: go
71  }), React.createElement(NW, {
72    style: {
73      padding: 'clamp(30px,6vh,60px) clamp(20px,5vw,40px) clamp(40px,7vh,70px)'
74    }
75  }, React.createElement(NEb, {
76    on: true
77  }, 'Aivin and ' + v.name), React.createElement("h1", {
78    style: {
79      fontFamily: 'var(--font-display)',
80      fontWeight: 500,
81      fontSize: 'var(--fs-display)',
82      lineHeight: 1.05,
83      letterSpacing: '-.014em',
84      color: 'var(--white)',
85      margin: '14px 0 0',
86      maxWidth: 900,
87      textWrap: 'pretty'
88    }
89  }, v.h1), React.createElement("p", {
90    style: {
91      fontSize: 'var(--fs-lead)',
92      lineHeight: 1.62,
93      color: 'rgba(255,255,255,.88)',
94      margin: '18px 0 0',
95      maxWidth: 700
96    }
97  }, v.lede), React.createElement("div", {
98    style: {
99      marginTop: 26
100    }
101  }, React.createElement(NBtn, {
102    variant: "mint",
103    href: NHref('report'),
104    onClick: () => NTrack('cta_click', {
105      cta: 'free_report',
106      place: 'vs_' + id
107    })
108  }, "Get your free cellar report")))), React.createElement(NSec, null, React.createElement("div", {
109    style: {
110      display: 'grid',
111      gridTemplateColumns: 'repeat(auto-fit,minmax(min(100%,280px),1fr))',
112      gap: 'clamp(22px,3.4vw,48px)'
113    }
114  }, React.createElement("div", null, React.createElement(NEb, null, 'What ' + v.name + ' does well'), React.createElement("div", {
115    style: {
116      marginTop: 14
117    }
118  }, v.theirs.map(t => React.createElement("div", {
119    key: t,
120    style: {
121      display: 'flex',
122      gap: 11,
123      alignItems: 'baseline',
124      padding: '11px 0',
125      borderTop: '1px solid var(--border-subtle)'
126    }
127  }, React.createElement("span", {
128    "aria-hidden": "true",
129    style: {
130      color: 'var(--text-muted)',
131      fontSize: 'var(--fs-meta)'
132    }
133  }, '\u2014'), React.createElement("span", {
134    style: {
135      fontSize: 'var(--fs-body)',
136      lineHeight: 1.6,
137      color: 'var(--text-body)'
138    }
139  }, t))))), React.createElement("div", null, React.createElement(NEb, null, "What it does not answer"), React.createElement("div", {
140    style: {
141      marginTop: 14
142    }
143  }, v.gap.map(t => React.createElement("div", {
144    key: t,
145    style: {
146      display: 'flex',
147      gap: 11,
148      alignItems: 'baseline',
149      padding: '11px 0',
150      borderTop: '1px solid var(--border-subtle)'
151    }
152  }, React.createElement("span", {
153    "aria-hidden": "true",
154    style: {
155      color: 'var(--aivin-mint)',
156      fontSize: 'var(--fs-meta)'
157    }
158  }, '\u2014'), React.createElement("span", {
159    style: {
160      fontSize: 'var(--fs-body)',
161      lineHeight: 1.6,
162      color: 'var(--text-body)'
163    }
164  }
164, t)))))), React.createElement("p", {
165    style: {
166      fontSize: 'var(--fs-note)',
167      color: 'var(--text-muted)',
168      marginTop: 22,
169      lineHeight: 1.7,
170      maxWidth: 700
171    }
172  }, v.name + ' is described by what its own published documentation says it does. Nothing here is a benchmark or a test result. If we have described it incorrectly, write to ', React.createElement("a", {
173    href: "mailto:[email protected]",
174    style: {
175      color: 'var(--text-link)'
176    }
177  }, "[email protected]"), " and this page changes.")), React.createElement(NSec, {
178    style: {
179      background: 'var(--surface-tint)'
180    }
181  }, React.createElement(NEb, null, "Where Aivin sits"), React.createElement("p", {
182    style: {
183      fontSize: 'var(--fs-lead)',
184      lineHeight: 1.66,
185      color: 'var(--text-body)',
186      marginTop: 14,
187      maxWidth: 720
188    }
189  }, v.ours), React.createElement("div", {
190    style: {
191      display: 'flex',
192      gap: 11,
193      alignItems: 'baseline',
194      marginTop: 24,
195      padding: 'clamp(14px,2vw,18px)',
196      borderRadius: 12,
197      border: '1px solid rgba(240,179,126,.26)',
198      background: 'rgba(240,179,126,.06)'
199    }
200  }, React.createElement("span", {
201    style: {
202      fontSize: 'var(--fs-micro)',
203      letterSpacing: '.13em',
204      textTransform: 'uppercase',
205      fontWeight: 600,
206      color: 'var(--signal-caution)',
207      flex: '0 0 auto'
208    }
209  }, "Buy that, not this"), React.createElement("span", {
210    style: {
211      fontSize: 'var(--fs-body)',
212      lineHeight: 1.6,
213      color: 'var(--text-body)'
214    }
215  }, v.buyThat)), React.createElement("p", {
216    style: {
217      fontSize: 'var(--fs-note)',
218      color: 'var(--text-muted)',
219      marginTop: 18,
220      lineHeight: 1.7
221    }
222  }, React.createElement("strong", {
223    style: {
224      color: 'var(--text-primary)',
225      fontWeight: 400
226    }
227  }, "Running both:"), " ", v.together)), React.createElement(NSec, null, React.createElement("div", {
228    style: {
229      display: 'flex',
230      gap: 20,
231      flexWrap: 'wrap',
232      alignItems: 'baseline',
233      justifyContent: 'space-between'
234    }
235  }, React.createElement("div", {
236    style: {
237      maxWidth: 560
238    }
239  }, React.createElement(NEb, null, "The comparison that matters more"), React.createElement(NH2, {
240    style: {
241      maxWidth: 480
242    }
243  }, "Against a spreadsheet and an appraisal every third year."), React.createElement("p", {
244    style: {
245      fontSize: 'var(--fs-note)',
246      lineHeight: 1.7,
247      color: 'var(--text-muted)',
248      marginTop: 14
249    }
250  }, "That is the real competition for most houses, and two thirds of it works. The arithmetic, and the five situations where Aivin is the wrong purchase, are on their own page.")), React.createElement("div", {
251    style: {
252      display: 'grid',
253      gap: 10,
254      justifyItems: 'start'
255    }
256  }, React.createElement(NBtn, {
257    variant: "white",
258    href: NHref('vs')
259  }, "Against what you do now"), React.createElement(NLk, {
260    to: "alternatives",
261    style: {
262      fontSize: 'var(--fs-note)',
263      color: 'var(--aivin-mint)'
264    }
265  }, 'All five alternatives \u2192')))), React.createElement("div", {
266    style: {
267      maxWidth: 1100,
268      margin: '0 auto',
269      padding: '0 clamp(20px,5vw,40px) 44px'
270    }
271  }, React.createElement("p", {
272    style: {
273      fontSize: 'var(--fs-meta)',
274      color: 'var(--text-muted)',
275      lineHeight: 1.65,
276      margin: 0,
277      borderTop: '1px solid var(--border-subtle)',
278      paddingTop: 16
279    }
280  }, "Comparison based on the product information available to us at the time of writing. Products change. If we have described a capability incorrectly, tell us and we will correct it.")), React.createElement(window.Close, {
281    go: go
282  }));
283}
284Object.assign(window, {
285  Versus2,
286  VERSUS
287});
288})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.